@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,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SqlQuery
|
|
3
|
+
} from "./chunk-WLTLSV2I.mjs";
|
|
4
|
+
import {
|
|
5
|
+
toClause
|
|
6
|
+
} from "./chunk-OKPGJD64.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ifGet
|
|
9
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
10
|
+
|
|
11
|
+
// src/sql/Update.ts
|
|
12
|
+
var Update = class extends SqlQuery {
|
|
13
|
+
constructor(table, fields) {
|
|
14
|
+
super(table);
|
|
15
|
+
this.table = table;
|
|
16
|
+
this.fields = fields;
|
|
17
|
+
}
|
|
18
|
+
toString() {
|
|
19
|
+
return `UPDATE ${this.table} SET ${Object.entries(this.fields).map(([k, v]) => toClause(k, "=", v)).join(", ")} OUTPUT INSERTED.*` + ifGet(this.clauses.length, ` WHERE ${this.clauses.join(" AND ")};`, ";");
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
Update
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-2AB6ZQHC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Update.ts"],"sourcesContent":["import { SqlQuery } from './SqlQuery';\nimport { toClause } from './Clause';\nimport { Table } from './Table';\nimport { Json } from '../types/Json';\nimport { ifGet } from '../types/Get';\n\nexport class Update extends SqlQuery {\n constructor(\n protected table: Table,\n protected fields: Json\n ) {\n super(table);\n }\n\n toString(): string {\n return (\n `UPDATE ${this.table} ` +\n `SET ${Object.entries(this.fields)\n .map(([k, v]) => toClause(k, '=', v))\n .join(', ')} ` +\n 'OUTPUT INSERTED.*' +\n ifGet(this.clauses.length, ` WHERE ${this.clauses.join(' AND ')};`, ';')\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAMO,IAAM,SAAN,cAAqB,SAAS;AAAA,EACnC,YACY,OACA,QACV;AACA,UAAM,KAAK;AAHD;AACA;AAAA,EAGZ;AAAA,EAEA,WAAmB;AACjB,WACE,UAAU,KAAK,KAAK,QACb,OAAO,QAAQ,KAAK,MAAM,EAC9B,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,EACnC,KAAK,IAAI,CAAC,uBAEb,MAAM,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,GAAG;AAAA,EAE3E;AACF;","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {
|
|
2
|
+
HttpStatus,
|
|
3
|
+
isHttpStatus
|
|
4
|
+
} from "./chunk-VBZTERRM.mjs";
|
|
5
|
+
import {
|
|
6
|
+
isResponse
|
|
7
|
+
} from "./chunk-UYDZZAEK.mjs";
|
|
8
|
+
import {
|
|
9
|
+
choose
|
|
10
|
+
} from "./chunk-LGLRWA42.mjs";
|
|
11
|
+
import {
|
|
12
|
+
isResults
|
|
13
|
+
} from "./chunk-SCVGZWV7.mjs";
|
|
14
|
+
import {
|
|
15
|
+
isResult,
|
|
16
|
+
toResult
|
|
17
|
+
} from "./chunk-RS7CT7BU.mjs";
|
|
18
|
+
import {
|
|
19
|
+
toList
|
|
20
|
+
} from "./chunk-HOVTNDHS.mjs";
|
|
21
|
+
import {
|
|
22
|
+
isDefined,
|
|
23
|
+
isError
|
|
24
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
25
|
+
|
|
26
|
+
// src/http/RestResult.ts
|
|
27
|
+
var hasErrors = (a) => isDefined(a?.error?.errors);
|
|
28
|
+
var hasItems = (a) => isDefined(a?.data.items);
|
|
29
|
+
var rest = {
|
|
30
|
+
toData: (status, items = [], totalItems, meta) => ({
|
|
31
|
+
data: {
|
|
32
|
+
code: status.status,
|
|
33
|
+
items: toList(items),
|
|
34
|
+
itemCount: items.length,
|
|
35
|
+
totalItems,
|
|
36
|
+
meta
|
|
37
|
+
}
|
|
38
|
+
}),
|
|
39
|
+
toError: (status, errors = [toResult(status.name)]) => ({
|
|
40
|
+
error: {
|
|
41
|
+
code: status.status,
|
|
42
|
+
message: status.name ?? errors[0].message ?? "Unknown",
|
|
43
|
+
errors: toList(errors),
|
|
44
|
+
errorCount: errors.length
|
|
45
|
+
}
|
|
46
|
+
}),
|
|
47
|
+
to: (payload, status) => choose(payload).is.not.defined((p) => p, void 0).type(isHttpStatus, (h) => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)])).type(isResult, (r) => rest.toError(status ?? HttpStatus.BadRequest, [r])).type(isError, (e) => rest.toError(status ?? HttpStatus.BadRequest, [e])).type(isResults, (r) => rest.toError(status ?? HttpStatus.BadRequest, r.results)).type(isResponse, (r) => rest.toError(status ?? HttpStatus.byId(r.body.error?.code), r.body.error?.errors)).type(hasErrors, (e) => rest.toError(status ?? HttpStatus.byId(e.error.code, HttpStatus.BadRequest), e.error.errors)).type(hasItems, (d) => rest.toData(status ?? HttpStatus.byId(d.data.code, HttpStatus.Ok), d.data.items, d.data.totalItems, d.data.meta)).else((p) => rest.toData(status ?? HttpStatus.Ok, toList(p)))
|
|
48
|
+
};
|
|
49
|
+
var isRestResult = (r) => isDefined(r) && (isDefined(r.data) || isDefined(r.error));
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
rest,
|
|
53
|
+
isRestResult
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=chunk-4DJUHTQO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/http/RestResult.ts"],"sourcesContent":["import { HttpStatus, isHttpStatus } from './HttpStatus';\nimport { isResponse } from './Response';\nimport { List, toList } from '../types/List';\nimport { Json } from '../types/Json';\nimport { isResult, Result, toResult } from '../types/Result';\nimport { isDefined, isError } from '../types/Is';\nimport { choose } from '../types/Case';\nimport { isResults } from '../types/Results';\nimport { Id } from '../types/Id';\n\nexport type RestResult = {\n data?: { code: number; items: List<Json>; itemCount: number; totalItems?: number; meta?: Json };\n error?: { code: number; message: string; errorCount: number; errors: List<Result> };\n};\n\nconst hasErrors = (a: any): a is { error: { code: number; errors: List<Result> } } => isDefined(a?.error?.errors);\nconst hasItems = (a: any): a is { data: { code: number; items: List<Json>; totalItems?: number; meta?: Json } } => isDefined(a?.data.items);\n\nexport const rest = {\n toData: (status: HttpStatus, items: Json[] = [], totalItems?: number, meta?: Json): RestResult => ({\n data: {\n code: status.status,\n items: toList(items),\n itemCount: items.length,\n totalItems,\n meta,\n },\n }),\n toError: (status: HttpStatus, errors: Result[] = [toResult(status.name)]): RestResult => ({\n error: {\n code: status.status,\n message: status.name ?? errors[0].message ?? 'Unknown',\n errors: toList(errors),\n errorCount: errors.length,\n },\n }),\n to: (payload?: any | any[], status?: HttpStatus): RestResult =>\n choose(payload)\n .is.not.defined(p => p, undefined as unknown as RestResult)\n .type(isHttpStatus, h => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)]))\n .type(isResult, r => rest.toError(status ?? HttpStatus.BadRequest, [r]))\n .type(isError, e => rest.toError(status ?? HttpStatus.BadRequest, [e]))\n .type(isResults, r => rest.toError(status ?? HttpStatus.BadRequest, r.results))\n .type(isResponse, r => rest.toError(status ?? HttpStatus.byId(r.body.error?.code as Id), r.body.error?.errors))\n .type(hasErrors, e => rest.toError(status ?? HttpStatus.byId(e.error.code, HttpStatus.BadRequest), e.error.errors))\n .type(hasItems, d => rest.toData(status ?? HttpStatus.byId(d.data.code, HttpStatus.Ok), d.data.items, d.data.totalItems, d.data.meta))\n .else(p => rest.toData(status ?? HttpStatus.Ok, toList(p))),\n};\n\nexport const isRestResult = (r: unknown): r is RestResult => isDefined(r) && (isDefined((r as RestResult).data) || isDefined((r as RestResult).error));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,YAAY,CAAC,MAAmE,UAAU,GAAG,OAAO,MAAM;AAChH,IAAM,WAAW,CAAC,MAAiG,UAAU,GAAG,KAAK,KAAK;AAEnI,IAAM,OAAO;AAAA,EAClB,QAAQ,CAAC,QAAoB,QAAgB,CAAC,GAAG,YAAqB,UAA6B;AAAA,IACjG,MAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,OAAO,OAAO,KAAK;AAAA,MACnB,WAAW,MAAM;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS,CAAC,QAAoB,SAAmB,CAAC,SAAS,OAAO,IAAI,CAAC,OAAmB;AAAA,IACxF,OAAO;AAAA,MACL,MAAM,OAAO;AAAA,MACb,SAAS,OAAO,QAAQ,OAAO,CAAC,EAAE,WAAW;AAAA,MAC7C,QAAQ,OAAO,MAAM;AAAA,MACrB,YAAY,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EACA,IAAI,CAAC,SAAuB,WAC1B,OAAO,OAAO,EACX,GAAG,IAAI,QAAQ,OAAK,GAAG,MAAkC,EACzD,KAAK,cAAc,OAAK,KAAK,QAAQ,KAAK,UAAU,WAAW,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EACvG,KAAK,UAAU,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,EACtE,KAAK,SAAS,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,EACrE,KAAK,WAAW,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,EAAE,OAAO,CAAC,EAC7E,KAAK,YAAY,OAAK,KAAK,QAAQ,UAAU,WAAW,KAAK,EAAE,KAAK,OAAO,IAAU,GAAG,EAAE,KAAK,OAAO,MAAM,CAAC,EAC7G,KAAK,WAAW,OAAK,KAAK,QAAQ,UAAU,WAAW,KAAK,EAAE,MAAM,MAAM,WAAW,UAAU,GAAG,EAAE,MAAM,MAAM,CAAC,EACjH,KAAK,UAAU,OAAK,KAAK,OAAO,UAAU,WAAW,KAAK,EAAE,KAAK,MAAM,WAAW,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,CAAC,EACpI,KAAK,OAAK,KAAK,OAAO,UAAU,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC;AAChE;AAEO,IAAM,eAAe,CAAC,MAAgC,UAAU,CAAC,MAAM,UAAW,EAAiB,IAAI,KAAK,UAAW,EAAiB,KAAK;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Enum
|
|
3
|
+
} from "./chunk-UXADDXCJ.mjs";
|
|
4
|
+
|
|
5
|
+
// src/http/HttpVerb.ts
|
|
6
|
+
var HttpVerb = class _HttpVerb extends Enum {
|
|
7
|
+
static Get = new _HttpVerb("Get");
|
|
8
|
+
static Put = new _HttpVerb("Put");
|
|
9
|
+
static Patch = new _HttpVerb("Patch");
|
|
10
|
+
static Post = new _HttpVerb("Post");
|
|
11
|
+
static Delete = new _HttpVerb("Delete");
|
|
12
|
+
constructor(name) {
|
|
13
|
+
super(name, name.toLowerCase(), name.toUpperCase());
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
HttpVerb
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-4HWEQEHM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/http/HttpVerb.ts"],"sourcesContent":["import { Enum } from '../types/Enum';\n\nexport class HttpVerb extends Enum {\n static Get = new HttpVerb('Get');\n static Put = new HttpVerb('Put');\n static Patch = new HttpVerb('Patch');\n static Post = new HttpVerb('Post');\n static Delete = new HttpVerb('Delete');\n\n constructor(name: string) {\n super(name, name.toLowerCase(), name.toUpperCase());\n }\n}\n"],"mappings":";;;;;AAEO,IAAM,WAAN,MAAM,kBAAiB,KAAK;AAAA,EACjC,OAAO,MAAM,IAAI,UAAS,KAAK;AAAA,EAC/B,OAAO,MAAM,IAAI,UAAS,KAAK;AAAA,EAC/B,OAAO,QAAQ,IAAI,UAAS,OAAO;AAAA,EACnC,OAAO,OAAO,IAAI,UAAS,MAAM;AAAA,EACjC,OAAO,SAAS,IAAI,UAAS,QAAQ;AAAA,EAErC,YAAY,MAAc;AACxB,UAAM,MAAM,KAAK,YAAY,GAAG,KAAK,YAAY,CAAC;AAAA,EACpD;AACF;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result)
|
|
9
|
+
__defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
__decorateClass
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=chunk-4N72FQFX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toClause
|
|
3
|
+
} from "./chunk-OKPGJD64.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Property
|
|
6
|
+
} from "./chunk-GCY5A63A.mjs";
|
|
7
|
+
import {
|
|
8
|
+
tryTo
|
|
9
|
+
} from "./chunk-LGLRWA42.mjs";
|
|
10
|
+
import {
|
|
11
|
+
ofGet
|
|
12
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
13
|
+
|
|
14
|
+
// src/sql/Column.ts
|
|
15
|
+
var Column = class extends Property {
|
|
16
|
+
constructor(owner, property, options) {
|
|
17
|
+
super(property, options);
|
|
18
|
+
this.owner = owner;
|
|
19
|
+
}
|
|
20
|
+
get count() {
|
|
21
|
+
return this.function("COUNT");
|
|
22
|
+
}
|
|
23
|
+
get max() {
|
|
24
|
+
return this.function("MAX");
|
|
25
|
+
}
|
|
26
|
+
get min() {
|
|
27
|
+
return this.function("MIN");
|
|
28
|
+
}
|
|
29
|
+
get sum() {
|
|
30
|
+
return this.function("SUM");
|
|
31
|
+
}
|
|
32
|
+
get average() {
|
|
33
|
+
return this.function("AVG");
|
|
34
|
+
}
|
|
35
|
+
get length() {
|
|
36
|
+
return this.function("LEN");
|
|
37
|
+
}
|
|
38
|
+
get asc() {
|
|
39
|
+
return this.format("$col ASC");
|
|
40
|
+
}
|
|
41
|
+
get desc() {
|
|
42
|
+
return this.format("$col DESC");
|
|
43
|
+
}
|
|
44
|
+
in = (source = {}) => tryTo(source).map((s) => s[this.property] ?? ofGet(this.options?.dflt)).map((v) => this.options?.convert?.to(v)).orElse();
|
|
45
|
+
out = (source = {}, key = "") => tryTo(source).map((s) => this.options?.convert?.from(s[key])).orElse();
|
|
46
|
+
function = (func) => this.format(`${func}($name)`);
|
|
47
|
+
format = (pattern) => new PatternColumn(this, pattern);
|
|
48
|
+
is = (value) => this.clause("=", value);
|
|
49
|
+
not = (value) => this.clause("<>", value);
|
|
50
|
+
like = (value) => this.clause("LIKE", `%${value}%`);
|
|
51
|
+
startsLike = (value) => this.clause("LIKE", `${value}%`);
|
|
52
|
+
endsLike = (value) => this.clause("LIKE", `%${value}`);
|
|
53
|
+
unlike = (value) => this.clause("NOT LIKE", `%${value}%`);
|
|
54
|
+
less = (value) => this.clause("<", value);
|
|
55
|
+
lessEqual = (value) => this.clause("<=", value);
|
|
56
|
+
greater = (value) => this.clause(">", value);
|
|
57
|
+
greaterEqual = (value) => this.clause(">=", value);
|
|
58
|
+
as = (as) => this.format(`$col AS ${as}`);
|
|
59
|
+
toString() {
|
|
60
|
+
return `${this.owner}.${this.property}`;
|
|
61
|
+
}
|
|
62
|
+
clause = (operator, value) => toClause(this, operator, value, this?.options?.convert);
|
|
63
|
+
};
|
|
64
|
+
var PatternColumn = class extends Column {
|
|
65
|
+
constructor(col, pattern) {
|
|
66
|
+
super(col.owner, col.property);
|
|
67
|
+
this.col = col;
|
|
68
|
+
this.pattern = pattern;
|
|
69
|
+
}
|
|
70
|
+
toString() {
|
|
71
|
+
return this.pattern.replace("$col", this.col.toString()).replace("$table", this.col.owner.toString).replace("$name", this.col.property);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var OrderColumn = class extends PatternColumn {
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export {
|
|
78
|
+
Column,
|
|
79
|
+
PatternColumn,
|
|
80
|
+
OrderColumn
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=chunk-4SWYJEN5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Column.ts"],"sourcesContent":["import { Clause, toClause } from './Clause';\nimport { Table } from './Table';\nimport { Property, PropertyOptions } from '../utils/Property';\nimport { Json, JsonValue } from '../types/Json';\nimport { tryTo } from '../types/Try';\nimport { ofGet } from '../types/Get';\nimport type { Text } from '../types/Text';\n\nexport class Column extends Property implements Text {\n constructor(\n readonly owner: Table,\n property: string,\n options?: PropertyOptions\n ) {\n super(property, options);\n }\n\n get count(): Column {\n return this.function('COUNT');\n }\n\n get max(): Column {\n return this.function('MAX');\n }\n\n get min(): Column {\n return this.function('MIN');\n }\n\n get sum(): Column {\n return this.function('SUM');\n }\n\n get average(): Column {\n return this.function('AVG');\n }\n\n get length(): Column {\n return this.function('LEN');\n }\n\n get asc(): OrderColumn {\n return this.format('$col ASC') as OrderColumn;\n }\n\n get desc(): OrderColumn {\n return this.format('$col DESC') as OrderColumn;\n }\n\n in = (source: Json = {}): JsonValue =>\n tryTo(source)\n .map(s => s[this.property] ?? ofGet(this.options?.dflt))\n .map(v => this.options?.convert?.to(v))\n .orElse();\n\n out = (source: Json = {}, key = ''): JsonValue =>\n tryTo(source)\n .map(s => this.options?.convert?.from(s[key]))\n .orElse();\n\n function = (func: string): Column => this.format(`${func}($name)`);\n\n format = (pattern: string): Column => new PatternColumn(this, pattern);\n\n is = (value: unknown): Clause => this.clause('=', value);\n\n not = (value: unknown): Clause => this.clause('<>', value);\n\n like = (value: unknown): Clause => this.clause('LIKE', `%${value}%`);\n\n startsLike = (value: unknown): Clause => this.clause('LIKE', `${value}%`);\n\n endsLike = (value: unknown): Clause => this.clause('LIKE', `%${value}`);\n\n unlike = (value: unknown): Clause => this.clause('NOT LIKE', `%${value}%`);\n\n less = (value: unknown): Clause => this.clause('<', value);\n\n lessEqual = (value: unknown): Clause => this.clause('<=', value);\n\n greater = (value: unknown): Clause => this.clause('>', value);\n\n greaterEqual = (value: unknown): Clause => this.clause('>=', value);\n\n as = (as: string): Column => this.format(`$col AS ${as}`);\n\n toString(): string {\n return `${this.owner}.${this.property}`;\n }\n\n protected clause = (operator: string, value: unknown): Clause => toClause(this, operator, value, this?.options?.convert);\n}\n\nexport class PatternColumn extends Column {\n constructor(\n protected col: Column,\n protected pattern: string\n ) {\n super(col.owner, col.property);\n }\n\n toString(): string {\n return this.pattern.replace('$col', this.col.toString()).replace('$table', this.col.owner.toString).replace('$name', this.col.property);\n }\n}\n\nexport class OrderColumn extends PatternColumn {}\n"],"mappings":";;;;;;;;;;;;;;AAQO,IAAM,SAAN,cAAqB,SAAyB;AAAA,EACnD,YACW,OACT,UACA,SACA;AACA,UAAM,UAAU,OAAO;AAJd;AAAA,EAKX;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,SAAS,OAAO;AAAA,EAC9B;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEA,IAAI,UAAkB;AACpB,WAAO,KAAK,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEA,IAAI,MAAmB;AACrB,WAAO,KAAK,OAAO,UAAU;AAAA,EAC/B;AAAA,EAEA,IAAI,OAAoB;AACtB,WAAO,KAAK,OAAO,WAAW;AAAA,EAChC;AAAA,EAEA,KAAK,CAAC,SAAe,CAAC,MACpB,MAAM,MAAM,EACT,IAAI,OAAK,EAAE,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,IAAI,CAAC,EACtD,IAAI,OAAK,KAAK,SAAS,SAAS,GAAG,CAAC,CAAC,EACrC,OAAO;AAAA,EAEZ,MAAM,CAAC,SAAe,CAAC,GAAG,MAAM,OAC9B,MAAM,MAAM,EACT,IAAI,OAAK,KAAK,SAAS,SAAS,KAAK,EAAE,GAAG,CAAC,CAAC,EAC5C,OAAO;AAAA,EAEZ,WAAW,CAAC,SAAyB,KAAK,OAAO,GAAG,IAAI,SAAS;AAAA,EAEjE,SAAS,CAAC,YAA4B,IAAI,cAAc,MAAM,OAAO;AAAA,EAErE,KAAK,CAAC,UAA2B,KAAK,OAAO,KAAK,KAAK;AAAA,EAEvD,MAAM,CAAC,UAA2B,KAAK,OAAO,MAAM,KAAK;AAAA,EAEzD,OAAO,CAAC,UAA2B,KAAK,OAAO,QAAQ,IAAI,KAAK,GAAG;AAAA,EAEnE,aAAa,CAAC,UAA2B,KAAK,OAAO,QAAQ,GAAG,KAAK,GAAG;AAAA,EAExE,WAAW,CAAC,UAA2B,KAAK,OAAO,QAAQ,IAAI,KAAK,EAAE;AAAA,EAEtE,SAAS,CAAC,UAA2B,KAAK,OAAO,YAAY,IAAI,KAAK,GAAG;AAAA,EAEzE,OAAO,CAAC,UAA2B,KAAK,OAAO,KAAK,KAAK;AAAA,EAEzD,YAAY,CAAC,UAA2B,KAAK,OAAO,MAAM,KAAK;AAAA,EAE/D,UAAU,CAAC,UAA2B,KAAK,OAAO,KAAK,KAAK;AAAA,EAE5D,eAAe,CAAC,UAA2B,KAAK,OAAO,MAAM,KAAK;AAAA,EAElE,KAAK,CAAC,OAAuB,KAAK,OAAO,WAAW,EAAE,EAAE;AAAA,EAExD,WAAmB;AACjB,WAAO,GAAG,KAAK,KAAK,IAAI,KAAK,QAAQ;AAAA,EACvC;AAAA,EAEU,SAAS,CAAC,UAAkB,UAA2B,SAAS,MAAM,UAAU,OAAO,MAAM,SAAS,OAAO;AACzH;AAEO,IAAM,gBAAN,cAA4B,OAAO;AAAA,EACxC,YACY,KACA,SACV;AACA,UAAM,IAAI,OAAO,IAAI,QAAQ;AAHnB;AACA;AAAA,EAGZ;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,QAAQ,QAAQ,QAAQ,KAAK,IAAI,SAAS,CAAC,EAAE,QAAQ,UAAU,KAAK,IAAI,MAAM,QAAQ,EAAE,QAAQ,SAAS,KAAK,IAAI,QAAQ;AAAA,EACxI;AACF;AAEO,IAAM,cAAN,cAA0B,cAAc;AAAC;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ifDefined,
|
|
3
|
+
toList
|
|
4
|
+
} from "./chunk-HOVTNDHS.mjs";
|
|
5
|
+
|
|
6
|
+
// src/types/Object.ts
|
|
7
|
+
function entries(subject) {
|
|
8
|
+
return ifDefined(
|
|
9
|
+
subject,
|
|
10
|
+
() => toList([...Object.entries(subject), ...Object.entries(Object.getPrototypeOf(subject))]),
|
|
11
|
+
() => toList()
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
function values(subject) {
|
|
15
|
+
return toList([...Object.values(subject), ...Object.values(Object.getPrototypeOf(subject))]);
|
|
16
|
+
}
|
|
17
|
+
function keys(subject) {
|
|
18
|
+
return toList([...Object.keys(subject), ...Object.keys(Object.getPrototypeOf(subject))]);
|
|
19
|
+
}
|
|
20
|
+
function extractKeys(obj, keys2) {
|
|
21
|
+
return keys2.filter((k) => k in obj).reduce(
|
|
22
|
+
(acc, key) => {
|
|
23
|
+
acc.keys[key] = obj[key];
|
|
24
|
+
delete acc[key];
|
|
25
|
+
return acc;
|
|
26
|
+
},
|
|
27
|
+
{ keys: {}, ...obj }
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export {
|
|
32
|
+
entries,
|
|
33
|
+
values,
|
|
34
|
+
keys,
|
|
35
|
+
extractKeys
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=chunk-4VZHB642.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Object.ts"],"sourcesContent":["import { List, toList } from './List';\nimport { ifDefined } from '../utils/If';\n\nexport type Entry<T = unknown> = [key: string, value: T];\n\nexport function entries<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<Entry<T>> {\n return ifDefined(\n subject,\n () => toList<Entry<T>>([...Object.entries(subject), ...Object.entries(Object.getPrototypeOf(subject))] as Entry<T>[]),\n () => toList<Entry<T>>()\n );\n}\n\nexport function values<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<T> {\n return toList([...Object.values<T>(subject), ...Object.values<T>(Object.getPrototypeOf(subject))]);\n}\n\nexport function keys<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<string> {\n return toList([...Object.keys(subject), ...Object.keys(Object.getPrototypeOf(subject))]);\n}\n\nexport function extractKeys<T extends Record<string | number, unknown>, K extends keyof T>(\n obj: T,\n keys: K[] | readonly (keyof T)[]\n): {\n keys: Pick<T, K>;\n} & Omit<T, K> {\n return keys\n .filter((k): k is K => k in obj)\n .reduce(\n (acc, key) => {\n (acc.keys as T)[key] = obj[key];\n delete acc[key];\n return acc;\n },\n { keys: {} as Pick<T, K>, ...obj }\n );\n}\n"],"mappings":";;;;;;AAKO,SAAS,QAAqB,SAA4D;AAC/F,SAAO;AAAA,IACL;AAAA,IACA,MAAM,OAAiB,CAAC,GAAG,OAAO,QAAQ,OAAO,GAAG,GAAG,OAAO,QAAQ,OAAO,eAAe,OAAO,CAAC,CAAC,CAAe;AAAA,IACpH,MAAM,OAAiB;AAAA,EACzB;AACF;AAEO,SAAS,OAAoB,SAAqD;AACvF,SAAO,OAAO,CAAC,GAAG,OAAO,OAAU,OAAO,GAAG,GAAG,OAAO,OAAU,OAAO,eAAe,OAAO,CAAC,CAAC,CAAC;AACnG;AAEO,SAAS,KAAkB,SAA0D;AAC1F,SAAO,OAAO,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG,GAAG,OAAO,KAAK,OAAO,eAAe,OAAO,CAAC,CAAC,CAAC;AACzF;AAEO,SAAS,YACd,KACAA,OAGa;AACb,SAAOA,MACJ,OAAO,CAAC,MAAc,KAAK,GAAG,EAC9B;AAAA,IACC,CAAC,KAAK,QAAQ;AACZ,MAAC,IAAI,KAAW,GAAG,IAAI,IAAI,GAAG;AAC9B,aAAO,IAAI,GAAG;AACd,aAAO;AAAA,IACT;AAAA,IACA,EAAE,MAAM,CAAC,GAAiB,GAAG,IAAI;AAAA,EACnC;AACJ;","names":["keys"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/types/IsDate.ts
|
|
2
|
+
var isDate = (o) => o instanceof Date && !isNaN(o.getTime());
|
|
3
|
+
var days = {
|
|
4
|
+
add: (date, days2) => {
|
|
5
|
+
date.setDate(date.getDate() + days2);
|
|
6
|
+
return date;
|
|
7
|
+
},
|
|
8
|
+
today: () => /* @__PURE__ */ new Date(),
|
|
9
|
+
yesterday: () => days.add(days.today(), -1),
|
|
10
|
+
tomorrow: () => days.add(days.today(), 1)
|
|
11
|
+
};
|
|
12
|
+
var inPast = (o) => isDate(o) && o <= days.today();
|
|
13
|
+
var inFuture = (o) => isDate(o) && o > days.today();
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
isDate,
|
|
17
|
+
days,
|
|
18
|
+
inPast,
|
|
19
|
+
inFuture
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=chunk-ADJAEGCT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/IsDate.ts"],"sourcesContent":["export const isDate = (o?: unknown): o is Date => o instanceof Date && !isNaN(o.getTime());\n\nexport const days = {\n add: (date: Date, days: number): Date => {\n date.setDate(date.getDate() + days);\n return date;\n },\n today: (): Date => new Date(),\n yesterday: (): Date => days.add(days.today(), -1),\n tomorrow: (): Date => days.add(days.today(), 1),\n};\n\nexport const inPast = (o?: unknown): boolean => isDate(o) && o <= days.today();\n\nexport const inFuture = (o?: unknown): boolean => isDate(o) && o > days.today();\n"],"mappings":";AAAO,IAAM,SAAS,CAAC,MAA2B,aAAa,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;AAElF,IAAM,OAAO;AAAA,EAClB,KAAK,CAAC,MAAYA,UAAuB;AACvC,SAAK,QAAQ,KAAK,QAAQ,IAAIA,KAAI;AAClC,WAAO;AAAA,EACT;AAAA,EACA,OAAO,MAAY,oBAAI,KAAK;AAAA,EAC5B,WAAW,MAAY,KAAK,IAAI,KAAK,MAAM,GAAG,EAAE;AAAA,EAChD,UAAU,MAAY,KAAK,IAAI,KAAK,MAAM,GAAG,CAAC;AAChD;AAEO,IAAM,SAAS,CAAC,MAAyB,OAAO,CAAC,KAAK,KAAK,KAAK,MAAM;AAEtE,IAAM,WAAW,CAAC,MAAyB,OAAO,CAAC,KAAK,IAAI,KAAK,MAAM;","names":["days"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Id.ts"],"sourcesContent":["import { toUuid } from './Uuid';\n\nexport type Id = string | number;\nexport type Key = Id;\nexport type Code = Id;\nexport type HasId = { id: Id };\n\nexport const toId = (): Id => toUuid();\n"],"mappings":";;;;;AAOO,IAAM,OAAO,MAAU,OAAO;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ofGet
|
|
3
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
4
|
+
import {
|
|
5
|
+
isFunc
|
|
6
|
+
} from "./chunk-PIRWVOO2.mjs";
|
|
7
|
+
import {
|
|
8
|
+
isDefined
|
|
9
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
10
|
+
|
|
11
|
+
// src/types/Text.ts
|
|
12
|
+
var isText = (t) => isDefined(t) && isFunc(t.toString);
|
|
13
|
+
var asString = (t, alt = "") => (isText(t) ? t : ofGet(alt)).toString();
|
|
14
|
+
var replaceAll = (origin, search, replace = "") => asString(origin).split(asString(search)).join(asString(replace));
|
|
15
|
+
var toWords = (input) => {
|
|
16
|
+
return asString(input).replace(/(\p{Lower})(\p{Upper})/gu, "$1 $2").replace(/(\p{Upper})(\p{Upper}\p{Lower})/gu, "$1 $2").split(/[_\W]+/g).filter(Boolean);
|
|
17
|
+
};
|
|
18
|
+
var kebab = (s = "") => toWords(s).join("-").toLowerCase();
|
|
19
|
+
var capitalize = (s = "") => s.charAt(0).toUpperCase() + s.slice(1);
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
isText,
|
|
23
|
+
asString,
|
|
24
|
+
replaceAll,
|
|
25
|
+
toWords,
|
|
26
|
+
kebab,
|
|
27
|
+
capitalize
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=chunk-BDA5LB4S.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Text.ts"],"sourcesContent":["import { isDefined } from './Is';\nimport { isFunc } from './Func';\nimport { Get, ofGet } from './Get';\n\nexport type Text = { toString(): string };\n\nexport const isText = (t?: unknown): t is Text => isDefined(t) && isFunc<string, any>((t as any).toString);\n\nexport const asString = (t?: unknown, alt: Get<Text> = ''): string => (isText(t) ? t : ofGet(alt)).toString();\n\nexport const replaceAll = (origin: Text, search: Text, replace: Text = ''): string => asString(origin).split(asString(search)).join(asString(replace));\n\nexport const toWords = (input: unknown): string[] => {\n return asString(input)\n .replace(/(\\p{Lower})(\\p{Upper})/gu, '$1 $2')\n .replace(/(\\p{Upper})(\\p{Upper}\\p{Lower})/gu, '$1 $2')\n .split(/[_\\W]+/g)\n .filter(Boolean);\n};\n\nexport const kebab = (s = ''): string => toWords(s).join('-').toLowerCase();\n\nexport const capitalize = (s = ''): string => s.charAt(0).toUpperCase() + s.slice(1);\n"],"mappings":";;;;;;;;;;;AAMO,IAAM,SAAS,CAAC,MAA2B,UAAU,CAAC,KAAK,OAAqB,EAAU,QAAQ;AAElG,IAAM,WAAW,CAAC,GAAa,MAAiB,QAAgB,OAAO,CAAC,IAAI,IAAI,MAAM,GAAG,GAAG,SAAS;AAErG,IAAM,aAAa,CAAC,QAAc,QAAc,UAAgB,OAAe,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAC,EAAE,KAAK,SAAS,OAAO,CAAC;AAE9I,IAAM,UAAU,CAAC,UAA6B;AACnD,SAAO,SAAS,KAAK,EAClB,QAAQ,4BAA4B,OAAO,EAC3C,QAAQ,qCAAqC,OAAO,EACpD,MAAM,SAAS,EACf,OAAO,OAAO;AACnB;AAEO,IAAM,QAAQ,CAAC,IAAI,OAAe,QAAQ,CAAC,EAAE,KAAK,GAAG,EAAE,YAAY;AAEnE,IAAM,aAAa,CAAC,IAAI,OAAe,EAAE,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC;","names":[]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import {
|
|
2
|
+
State
|
|
3
|
+
} from "./chunk-WJZFE5NE.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Property
|
|
6
|
+
} from "./chunk-GCY5A63A.mjs";
|
|
7
|
+
import {
|
|
8
|
+
json
|
|
9
|
+
} from "./chunk-LKTTPV6U.mjs";
|
|
10
|
+
import {
|
|
11
|
+
meta
|
|
12
|
+
} from "./chunk-FN7HN3YK.mjs";
|
|
13
|
+
import {
|
|
14
|
+
ifNotEmpty,
|
|
15
|
+
toList
|
|
16
|
+
} from "./chunk-HOVTNDHS.mjs";
|
|
17
|
+
import {
|
|
18
|
+
ofGet
|
|
19
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
20
|
+
import {
|
|
21
|
+
isA
|
|
22
|
+
} from "./chunk-ZHXKBOK2.mjs";
|
|
23
|
+
import {
|
|
24
|
+
ofConstruct
|
|
25
|
+
} from "./chunk-ZPNFXK7Y.mjs";
|
|
26
|
+
import {
|
|
27
|
+
isEmpty
|
|
28
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
29
|
+
|
|
30
|
+
// src/utils/Mapper.ts
|
|
31
|
+
var isMapping = (m) => isA(m, "in", "out");
|
|
32
|
+
var Mapper = class extends State {
|
|
33
|
+
constructor(options = { startFrom: "scratch" }, property = "") {
|
|
34
|
+
super();
|
|
35
|
+
this.options = options;
|
|
36
|
+
this.property = property;
|
|
37
|
+
}
|
|
38
|
+
map = mappings;
|
|
39
|
+
// All properties that are a mapping
|
|
40
|
+
get properties() {
|
|
41
|
+
return this.get(
|
|
42
|
+
"props",
|
|
43
|
+
() => meta(this).entries().filter(([, v]) => isMapping(v))
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
// All names of properties (in target) that have a Mapping
|
|
47
|
+
get keys() {
|
|
48
|
+
return this.get("keys", () => this.properties.map(([k]) => k));
|
|
49
|
+
}
|
|
50
|
+
// All names of properties (in source) that are named in a Mapping
|
|
51
|
+
get columns() {
|
|
52
|
+
return this.get("columns", () => this.properties.mapDefined(([, p]) => ifNotEmpty(p.property, p.property))).distinct();
|
|
53
|
+
}
|
|
54
|
+
// All names of properties (in source) that are NOT properties in target
|
|
55
|
+
get droppedIn() {
|
|
56
|
+
return this.get("droppedIn", () => this.columns.filter((c) => !this.keys.some((k) => k === c)));
|
|
57
|
+
}
|
|
58
|
+
// All names op properties (in target) that are NOT properties in source
|
|
59
|
+
get droppedOut() {
|
|
60
|
+
return this.get("droppedOut", () => this.properties.filter(([, p]) => !this.keys.some((k) => k === p.property)).map(([k]) => k));
|
|
61
|
+
}
|
|
62
|
+
in(from = {}) {
|
|
63
|
+
return json.omit(
|
|
64
|
+
this.properties.reduce((a, [k, p]) => json.merge(a, { [k]: p.in({ ...a, ...from }) }), this.options.startFrom === "source" ? from : {}),
|
|
65
|
+
...this.droppedIn
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
out(to = {}) {
|
|
69
|
+
return json.omit(
|
|
70
|
+
this.properties.reduce(
|
|
71
|
+
(a, [k, p]) => json.merge(a, isEmpty(p.property) ? p.out(to, k) : { [p.property ?? ""]: p.out({ ...a, ...to }, k) }),
|
|
72
|
+
this.options.startFrom === "source" ? to : {}
|
|
73
|
+
),
|
|
74
|
+
...this.droppedOut
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
toString() {
|
|
78
|
+
return this.constructor.name;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
var mappings = {
|
|
82
|
+
item: (property, options) => new Property(property, options),
|
|
83
|
+
ignore: (property = "") => ({
|
|
84
|
+
property,
|
|
85
|
+
in: () => void 0,
|
|
86
|
+
out: () => void 0
|
|
87
|
+
}),
|
|
88
|
+
skipIn: (property) => ({
|
|
89
|
+
property,
|
|
90
|
+
in: () => void 0,
|
|
91
|
+
out: (source = {}) => source[property]
|
|
92
|
+
}),
|
|
93
|
+
skipOut: (property) => ({
|
|
94
|
+
property,
|
|
95
|
+
in: (source = {}) => source[property],
|
|
96
|
+
out: () => void 0
|
|
97
|
+
}),
|
|
98
|
+
func: (property, funcIn, funcOut) => ({
|
|
99
|
+
property,
|
|
100
|
+
in: (source = {}) => ofGet(funcIn, source),
|
|
101
|
+
out: (source = {}) => ofGet(funcOut, source)
|
|
102
|
+
}),
|
|
103
|
+
add: (funcIn) => ({
|
|
104
|
+
property: "",
|
|
105
|
+
in: (source = {}) => ofGet(funcIn, source),
|
|
106
|
+
out: () => void 0
|
|
107
|
+
}),
|
|
108
|
+
map: (mapper, property = "") => ({
|
|
109
|
+
property,
|
|
110
|
+
in: (source = {}) => ofConstruct(mapper).in(isEmpty(property) ? source : source[property]),
|
|
111
|
+
out: (source = {}, key = "") => ofConstruct(mapper).out(isEmpty(key) ? source : source[key])
|
|
112
|
+
}),
|
|
113
|
+
propsToList: (...maps) => ({
|
|
114
|
+
property: "",
|
|
115
|
+
in: (source = {}) => toList(maps.map((m) => ofConstruct(m).in(source))).toJSON(),
|
|
116
|
+
out: (source = {}, key = "") => maps.reduce((a, m, i) => {
|
|
117
|
+
const res = toList(source[key])[i];
|
|
118
|
+
const out = m.out(res);
|
|
119
|
+
return { ...a, [m.property]: out ?? {} };
|
|
120
|
+
}, {})
|
|
121
|
+
}),
|
|
122
|
+
list: (mapper, property) => ({
|
|
123
|
+
property,
|
|
124
|
+
in: (source = {}) => toList(source[property]).map((v) => mapper.in(v)).toJSON(),
|
|
125
|
+
out: (source = {}, key = "") => toList(isEmpty(key) ? source : source[key]).map((v) => mapper.out(v)).toJSON()
|
|
126
|
+
})
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export {
|
|
130
|
+
isMapping,
|
|
131
|
+
Mapper,
|
|
132
|
+
mappings
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=chunk-BZOYP6X7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/Mapper.ts"],"sourcesContent":["import { Property, PropertyOptions } from './Property';\nimport { State } from './State';\nimport { ifNotEmpty } from './If';\nimport { json, Json, JsonValue } from '../types/Json';\nimport { Optional } from '../types/Types';\nimport { TypeGuard } from '../types/TypeGuard';\nimport { isA } from '../types/IsA';\nimport { List, toList } from '../types/List';\nimport { meta } from '../types/Meta';\nimport { isEmpty } from '../types/Is';\nimport { Get, ofGet } from '../types/Get';\nimport { Construct, ofConstruct } from '../types/Constructor';\n\nexport type Mapping = {\n property: string;\n in: (source?: Json, key?: string) => Optional<JsonValue>;\n out: (source?: Json, key?: string) => Optional<JsonValue>;\n};\nexport const isMapping: TypeGuard<Mapping> = (m?: unknown): m is Mapping => isA<Mapping>(m, 'in', 'out');\n\nexport type MapStartFrom = 'scratch' | 'source';\nexport type MapOptions = { startFrom: MapStartFrom };\n\nexport class Mapper extends State implements Mapping {\n protected readonly map = mappings;\n\n constructor(\n readonly options: MapOptions = { startFrom: 'scratch' },\n readonly property = ''\n ) {\n super();\n }\n\n // All properties that are a mapping\n get properties(): List<[string, Mapping]> {\n return this.get('props', () =>\n meta(this)\n .entries<Mapping>()\n .filter(([, v]) => isMapping(v))\n );\n }\n\n // All names of properties (in target) that have a Mapping\n get keys(): List<string> {\n return this.get('keys', () => this.properties.map(([k]) => k));\n }\n\n // All names of properties (in source) that are named in a Mapping\n get columns(): List<string> {\n return this.get('columns', () => this.properties.mapDefined(([, p]) => ifNotEmpty(p.property, p.property))).distinct();\n }\n\n // All names of properties (in source) that are NOT properties in target\n private get droppedIn(): List<string> {\n return this.get('droppedIn', () => this.columns.filter(c => !this.keys.some(k => k === c)));\n }\n\n // All names op properties (in target) that are NOT properties in source\n private get droppedOut(): List<string> {\n return this.get('droppedOut', () => this.properties.filter(([, p]) => !this.keys.some(k => k === p.property)).map(([k]) => k));\n }\n\n public in(from: Json = {}): Json {\n return json.omit(\n this.properties.reduce((a, [k, p]) => json.merge(a, { [k]: p.in({ ...a, ...from }) }), this.options.startFrom === 'source' ? from : {}),\n ...this.droppedIn\n );\n }\n\n public out(to: Json = {}): Json {\n return json.omit(\n this.properties.reduce(\n (a, [k, p]) => json.merge(a, isEmpty(p.property) ? p.out(to, k) : { [p.property ?? '']: p.out({ ...a, ...to }, k) }),\n this.options.startFrom === 'source' ? to : {}\n ),\n ...this.droppedOut\n );\n }\n\n toString(): string {\n return this.constructor.name;\n }\n}\n\nexport const mappings = {\n item: (property: string, options?: PropertyOptions): Property => new Property(property, options),\n ignore: (property = ''): Mapping => ({\n property,\n in: (): Optional<JsonValue> => undefined,\n out: (): Optional<JsonValue> => undefined,\n }),\n skipIn: (property: string): Mapping => ({\n property,\n in: (): Optional<JsonValue> => undefined,\n out: (source: Json = {}): JsonValue => source[property],\n }),\n skipOut: (property: string): Mapping => ({\n property,\n in: (source: Json = {}): JsonValue => source[property],\n out: (): Optional<JsonValue> => undefined,\n }),\n func: (property: string, funcIn: Get<Optional<JsonValue>, Json>, funcOut: Get<Optional<JsonValue>, Json>): Mapping => ({\n property,\n in: (source: Json = {}): Optional<JsonValue> => ofGet(funcIn, source),\n out: (source: Json = {}): Optional<JsonValue> => ofGet(funcOut, source),\n }),\n add: (funcIn: Get<JsonValue, Json>): Mapping => ({\n property: '',\n in: (source: Json = {}): JsonValue => ofGet(funcIn, source),\n out: (): Optional<JsonValue> => undefined,\n }),\n map: (mapper: Construct<Mapper>, property = ''): Mapping => ({\n property,\n in: (source: Json = {}): JsonValue => ofConstruct(mapper).in(isEmpty(property) ? source : (source[property] as Json)),\n out: (source: Json = {}, key = ''): JsonValue => ofConstruct(mapper).out(isEmpty(key) ? source : (source[key] as Json)),\n }),\n propsToList: (...maps: Mapping[]): Mapping => ({\n property: '',\n in: (source: Json = {}): JsonValue => toList(maps.map(m => ofConstruct(m).in(source))).toJSON(),\n out: (source: Json = {}, key = ''): JsonValue =>\n maps.reduce((a: Json, m, i) => {\n const res = toList(source[key])[i];\n const out = m.out(res as Json);\n return { ...a, [m.property]: out ?? {} };\n }, {}),\n }),\n list: (mapper: Mapping, property: string): Mapping => ({\n property,\n in: (source: Json = {}): JsonValue =>\n toList(source[property])\n .map((v: any) => mapper.in(v))\n .toJSON(),\n out: (source: Json = {}, key = ''): JsonValue =>\n toList(isEmpty(key) ? source : (source[key] as Json))\n .map((v: any) => mapper.out(v))\n .toJSON(),\n }),\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {
|
|
2
|
+
on,
|
|
3
|
+
use
|
|
4
|
+
} from "./chunk-ZPNFXK7Y.mjs";
|
|
5
|
+
import {
|
|
6
|
+
isArray,
|
|
7
|
+
isDefined
|
|
8
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
9
|
+
|
|
10
|
+
// src/types/Array.ts
|
|
11
|
+
var toArray = (...items) => items.length > 1 ? items : isArray(items[0]) ? items[0] : isDefined(items[0]) ? [items[0]] : [];
|
|
12
|
+
var toObject = (key, ...items) => toArray(...items).reduce((o, i) => {
|
|
13
|
+
o[i[key]] = i;
|
|
14
|
+
return o;
|
|
15
|
+
}, {});
|
|
16
|
+
var array = {
|
|
17
|
+
merge: (first = [], second = [], firstKey = "id", secondKey = "id") => first.map((f) => ({
|
|
18
|
+
...f,
|
|
19
|
+
...second.find((s) => isDefined(s[secondKey]) && isDefined(f[firstKey]) && s[secondKey] === f[firstKey])
|
|
20
|
+
})),
|
|
21
|
+
switch: (items = [], item) => use([...items], (res) => {
|
|
22
|
+
on(res.indexOf(item), (i) => i !== -1 ? res.splice(i, 1) : res.push(item));
|
|
23
|
+
return res;
|
|
24
|
+
}),
|
|
25
|
+
splitIn: (items = [], length = 2) => {
|
|
26
|
+
const res = Array.from({ length }, () => []);
|
|
27
|
+
items.forEach((i, index) => res[index % length].push(i));
|
|
28
|
+
return res;
|
|
29
|
+
},
|
|
30
|
+
chunk: (items = [], length = 2) => {
|
|
31
|
+
const chunks = Math.ceil(items.length / length);
|
|
32
|
+
const res = Array.from({ length: chunks }, () => []);
|
|
33
|
+
items.forEach((i, index) => res[Math.floor(index / chunks)].push(i));
|
|
34
|
+
return res;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
toArray,
|
|
40
|
+
toObject,
|
|
41
|
+
array
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=chunk-CO2AFYVD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Array.ts"],"sourcesContent":["import { isArray, isDefined } from './Is';\nimport { on, use } from './Constructor';\n\nexport type OneOrMore<T> = T | Array<T>;\nexport type ArrayLike<T> = OneOrMore<T>[];\n\nexport const toArray = <T>(...items: ArrayLike<T>): T[] =>\n items.length > 1 ? (items as T[]) : isArray(items[0]) ? items[0] : isDefined(items[0]) ? [items[0]] : [];\n\nexport const toObject = <T>(key: keyof T, ...items: ArrayLike<T>): Record<string | number | symbol, T> =>\n toArray(...items).reduce((o: any, i) => {\n o[i[key]] = i;\n return o;\n }, {});\n\nexport const array = {\n merge: (first: any[] = [], second: any[] = [], firstKey = 'id', secondKey = 'id'): any[] =>\n first.map(f => ({\n ...f,\n ...second.find(s => isDefined(s[secondKey]) && isDefined(f[firstKey]) && s[secondKey] === f[firstKey]),\n })),\n switch: <T>(items: T[] = [], item: T): T[] =>\n use([...items], res => {\n on(res.indexOf(item), i => (i !== -1 ? res.splice(i, 1) : res.push(item)));\n return res;\n }),\n splitIn: <T>(items: T[] = [], length = 2): T[][] => {\n const res: T[][] = Array.from({ length }, () => []);\n items.forEach((i, index) => res[index % length].push(i));\n return res;\n },\n chunk: <T>(items: T[] = [], length = 2): T[][] => {\n const chunks = Math.ceil(items.length / length);\n const res: T[][] = Array.from({ length: chunks }, () => []);\n items.forEach((i, index) => res[Math.floor(index / chunks)].push(i));\n return res;\n },\n};\n"],"mappings":";;;;;;;;;;AAMO,IAAM,UAAU,IAAO,UAC5B,MAAM,SAAS,IAAK,QAAgB,QAAQ,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;AAElG,IAAM,WAAW,CAAI,QAAiB,UAC3C,QAAQ,GAAG,KAAK,EAAE,OAAO,CAAC,GAAQ,MAAM;AACtC,IAAE,EAAE,GAAG,CAAC,IAAI;AACZ,SAAO;AACT,GAAG,CAAC,CAAC;AAEA,IAAM,QAAQ;AAAA,EACnB,OAAO,CAAC,QAAe,CAAC,GAAG,SAAgB,CAAC,GAAG,WAAW,MAAM,YAAY,SAC1E,MAAM,IAAI,QAAM;AAAA,IACd,GAAG;AAAA,IACH,GAAG,OAAO,KAAK,OAAK,UAAU,EAAE,SAAS,CAAC,KAAK,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,QAAQ,CAAC;AAAA,EACvG,EAAE;AAAA,EACJ,QAAQ,CAAI,QAAa,CAAC,GAAG,SAC3B,IAAI,CAAC,GAAG,KAAK,GAAG,SAAO;AACrB,OAAG,IAAI,QAAQ,IAAI,GAAG,OAAM,MAAM,KAAK,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAE;AACzE,WAAO;AAAA,EACT,CAAC;AAAA,EACH,SAAS,CAAI,QAAa,CAAC,GAAG,SAAS,MAAa;AAClD,UAAM,MAAa,MAAM,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAClD,UAAM,QAAQ,CAAC,GAAG,UAAU,IAAI,QAAQ,MAAM,EAAE,KAAK,CAAC,CAAC;AACvD,WAAO;AAAA,EACT;AAAA,EACA,OAAO,CAAI,QAAa,CAAC,GAAG,SAAS,MAAa;AAChD,UAAM,SAAS,KAAK,KAAK,MAAM,SAAS,MAAM;AAC9C,UAAM,MAAa,MAAM,KAAK,EAAE,QAAQ,OAAO,GAAG,MAAM,CAAC,CAAC;AAC1D,UAAM,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,MAAM,QAAQ,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;AACnE,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SqlQuery
|
|
3
|
+
} from "./chunk-WLTLSV2I.mjs";
|
|
4
|
+
import {
|
|
5
|
+
toList
|
|
6
|
+
} from "./chunk-HOVTNDHS.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ifGet
|
|
9
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
10
|
+
|
|
11
|
+
// src/sql/Select.ts
|
|
12
|
+
var Select = class extends SqlQuery {
|
|
13
|
+
constructor(table, columns = toList()) {
|
|
14
|
+
super(table);
|
|
15
|
+
this.columns = columns;
|
|
16
|
+
}
|
|
17
|
+
ordered = toList();
|
|
18
|
+
grouped = toList();
|
|
19
|
+
_top = 0;
|
|
20
|
+
_limit = 0;
|
|
21
|
+
_offset = 0;
|
|
22
|
+
from(t) {
|
|
23
|
+
this.table = t ?? this.table;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
orderBy = (...ordered) => {
|
|
27
|
+
this.ordered.add(ordered);
|
|
28
|
+
return this;
|
|
29
|
+
};
|
|
30
|
+
groupBy(...grouped) {
|
|
31
|
+
this.grouped.add(grouped);
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
top(t) {
|
|
35
|
+
this._top = t;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
limit(l) {
|
|
39
|
+
this._limit = l;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
offset(o) {
|
|
43
|
+
this._offset = o;
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
toString() {
|
|
47
|
+
return `SELECT ` + ifGet(this._top, `TOP ${this._top} `, "") + ifGet(this.columns.length, this.columns.join(", "), "*") + ` FROM ${this.table}` + ifGet(this.clauses.length, ` WHERE ${this.clauses.join(" AND ")}`, "") + ifGet(this.grouped.length, ` GROUP BY ${this.grouped.join(", ")}`, "") + ifGet(this.ordered.length, ` ORDERED BY ${this.ordered.join(", ")}`, "") + ifGet(this._limit, ` LIMIT ${this._limit}`, "") + ifGet(this._offset, ` OFFSET ${this._offset};`, ";");
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
Select
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=chunk-D7UFAVDX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Select.ts"],"sourcesContent":["import { Column, OrderColumn } from './Column';\nimport { Join } from './Join';\nimport { SqlQuery } from './SqlQuery';\nimport { Table } from './Table';\nimport { List, toList } from '../types/List';\nimport { ifGet } from '../types/Get';\n\nexport class Select extends SqlQuery {\n protected ordered: List<OrderColumn> = toList();\n protected grouped: List<Column> = toList();\n protected _top = 0;\n protected _limit = 0;\n protected _offset = 0;\n\n constructor(\n table: Table | Join,\n readonly columns: List<Column> = toList()\n ) {\n super(table);\n }\n\n from(t?: Table | Join): this {\n this.table = t ?? this.table;\n return this;\n }\n\n orderBy = (...ordered: OrderColumn[]): this => {\n this.ordered.add(ordered);\n return this;\n };\n\n groupBy(...grouped: Column[]): this {\n this.grouped.add(grouped);\n return this;\n }\n\n top(t: number): this {\n this._top = t;\n return this;\n }\n\n limit(l: number): this {\n this._limit = l;\n return this;\n }\n\n offset(o: number): this {\n this._offset = o;\n return this;\n }\n\n toString(): string {\n return (\n `SELECT ` +\n ifGet(this._top, `TOP ${this._top} `, '') +\n ifGet(this.columns.length, this.columns.join(', '), '*') +\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 ifGet(this.ordered.length, ` ORDERED BY ${this.ordered.join(', ')}`, '') +\n ifGet(this._limit, ` LIMIT ${this._limit}`, '') +\n ifGet(this._offset, ` OFFSET ${this._offset};`, ';')\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAOO,IAAM,SAAN,cAAqB,SAAS;AAAA,EAOnC,YACE,OACS,UAAwB,OAAO,GACxC;AACA,UAAM,KAAK;AAFF;AAAA,EAGX;AAAA,EAXU,UAA6B,OAAO;AAAA,EACpC,UAAwB,OAAO;AAAA,EAC/B,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EASpB,KAAK,GAAwB;AAC3B,SAAK,QAAQ,KAAK,KAAK;AACvB,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,IAAI,YAAiC;AAC7C,SAAK,QAAQ,IAAI,OAAO;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,SAAyB;AAClC,SAAK,QAAQ,IAAI,OAAO;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,GAAiB;AACnB,SAAK,OAAO;AACZ,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,GAAiB;AACrB,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,GAAiB;AACtB,SAAK,UAAU;AACf,WAAO;AAAA,EACT;AAAA,EAEA,WAAmB;AACjB,WACE,YACA,MAAM,KAAK,MAAM,OAAO,KAAK,IAAI,KAAK,EAAE,IACxC,MAAM,KAAK,QAAQ,QAAQ,KAAK,QAAQ,KAAK,IAAI,GAAG,GAAG,IACvD,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,MAAM,KAAK,QAAQ,QAAQ,eAAe,KAAK,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,IACvE,MAAM,KAAK,QAAQ,UAAU,KAAK,MAAM,IAAI,EAAE,IAC9C,MAAM,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK,GAAG;AAAA,EAEvD;AACF;","names":[]}
|