@thisisagile/easy 17.26.1 → 17.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-27MBNT3X.mjs +25 -0
- package/dist/chunk-27MBNT3X.mjs.map +1 -0
- package/dist/chunk-35SXXNQO.mjs +20 -0
- package/dist/chunk-35SXXNQO.mjs.map +1 -0
- package/dist/chunk-3M6NLHSO.mjs +18 -0
- package/dist/chunk-3M6NLHSO.mjs.map +1 -0
- package/dist/chunk-4CRBLF44.mjs +56 -0
- package/dist/chunk-4CRBLF44.mjs.map +1 -0
- package/dist/chunk-4K4X43SV.mjs +164 -0
- package/dist/chunk-4K4X43SV.mjs.map +1 -0
- package/dist/chunk-4LVZOQ6O.mjs +58 -0
- package/dist/chunk-4LVZOQ6O.mjs.map +1 -0
- package/dist/chunk-4N72FQFX.mjs +16 -0
- package/dist/chunk-4N72FQFX.mjs.map +1 -0
- package/dist/chunk-5AV36UKS.mjs +20 -0
- package/dist/chunk-5AV36UKS.mjs.map +1 -0
- package/dist/chunk-5DJPREIN.mjs +142 -0
- package/dist/chunk-5DJPREIN.mjs.map +1 -0
- package/dist/chunk-5ZHEIMZ7.mjs +79 -0
- package/dist/chunk-5ZHEIMZ7.mjs.map +1 -0
- package/dist/chunk-6QFV73AS.mjs +55 -0
- package/dist/chunk-6QFV73AS.mjs.map +1 -0
- package/dist/chunk-6UDAYZAZ.mjs +53 -0
- package/dist/chunk-6UDAYZAZ.mjs.map +1 -0
- package/dist/chunk-7HTKPMTI.mjs +72 -0
- package/dist/chunk-7HTKPMTI.mjs.map +1 -0
- package/dist/chunk-ABGKS4KE.mjs +297 -0
- package/dist/chunk-ABGKS4KE.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-AINW2476.mjs +90 -0
- package/dist/chunk-AINW2476.mjs.map +1 -0
- package/dist/chunk-BDA5LB4S.mjs +29 -0
- package/dist/chunk-BDA5LB4S.mjs.map +1 -0
- package/dist/chunk-BIEWRRM7.mjs +26 -0
- package/dist/chunk-BIEWRRM7.mjs.map +1 -0
- package/dist/chunk-BIHKQLEE.mjs +40 -0
- package/dist/chunk-BIHKQLEE.mjs.map +1 -0
- package/dist/chunk-CO2AFYVD.mjs +43 -0
- package/dist/chunk-CO2AFYVD.mjs.map +1 -0
- package/dist/chunk-CSAPGLC7.mjs +94 -0
- package/dist/chunk-CSAPGLC7.mjs.map +1 -0
- package/dist/chunk-CSHFNF34.mjs +35 -0
- package/dist/chunk-CSHFNF34.mjs.map +1 -0
- package/dist/chunk-CWWAGBYB.mjs +46 -0
- package/dist/chunk-CWWAGBYB.mjs.map +1 -0
- package/dist/chunk-DEJ7A5PY.mjs +43 -0
- package/dist/chunk-DEJ7A5PY.mjs.map +1 -0
- package/dist/chunk-DRABNNX2.mjs +107 -0
- package/dist/chunk-DRABNNX2.mjs.map +1 -0
- package/dist/chunk-DXQSIBC7.mjs +13 -0
- package/dist/chunk-DXQSIBC7.mjs.map +1 -0
- package/dist/chunk-F34HSIZ5.mjs +68 -0
- package/dist/chunk-F34HSIZ5.mjs.map +1 -0
- package/dist/chunk-GADZDWP3.mjs +20 -0
- package/dist/chunk-GADZDWP3.mjs.map +1 -0
- package/dist/chunk-GB2P3UEO.mjs +82 -0
- package/dist/chunk-GB2P3UEO.mjs.map +1 -0
- package/dist/chunk-GCY5A63A.mjs +25 -0
- package/dist/chunk-GCY5A63A.mjs.map +1 -0
- package/dist/chunk-HL2BC7Z2.mjs +76 -0
- package/dist/chunk-HL2BC7Z2.mjs.map +1 -0
- package/dist/chunk-HULI73W2.mjs +37 -0
- package/dist/chunk-HULI73W2.mjs.map +1 -0
- package/dist/chunk-J3DYDXXF.mjs +175 -0
- package/dist/chunk-J3DYDXXF.mjs.map +1 -0
- package/dist/chunk-JMIXHXWM.mjs +23 -0
- package/dist/chunk-JMIXHXWM.mjs.map +1 -0
- package/dist/chunk-KJVTSC6I.mjs +24 -0
- package/dist/chunk-KJVTSC6I.mjs.map +1 -0
- package/dist/chunk-L63NPT4K.mjs +39 -0
- package/dist/chunk-L63NPT4K.mjs.map +1 -0
- package/dist/chunk-LYRXR6GZ.mjs +54 -0
- package/dist/chunk-LYRXR6GZ.mjs.map +1 -0
- package/dist/chunk-MBRLKMEQ.mjs +54 -0
- package/dist/chunk-MBRLKMEQ.mjs.map +1 -0
- package/dist/chunk-MDXL65W4.mjs +49 -0
- package/dist/chunk-MDXL65W4.mjs.map +1 -0
- package/dist/chunk-OFGI5FLG.mjs +11 -0
- package/dist/chunk-OFGI5FLG.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-PIQ5Z4RB.mjs +18 -0
- package/dist/chunk-PIQ5Z4RB.mjs.map +1 -0
- package/dist/chunk-PIRWVOO2.mjs +7 -0
- package/dist/chunk-PIRWVOO2.mjs.map +1 -0
- package/dist/chunk-QBHHLIZY.mjs +51 -0
- package/dist/chunk-QBHHLIZY.mjs.map +1 -0
- package/dist/chunk-RNLFG4YX.mjs +20 -0
- package/dist/chunk-RNLFG4YX.mjs.map +1 -0
- package/dist/chunk-S6WR4MXU.mjs +324 -0
- package/dist/chunk-S6WR4MXU.mjs.map +1 -0
- package/dist/chunk-SDO3B3BQ.mjs +45 -0
- package/dist/chunk-SDO3B3BQ.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-SPMDDHVK.mjs +40 -0
- package/dist/chunk-SPMDDHVK.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-TCQRHKGS.mjs +20 -0
- package/dist/chunk-TCQRHKGS.mjs.map +1 -0
- package/dist/chunk-TNHYFGFF.mjs +60 -0
- package/dist/chunk-TNHYFGFF.mjs.map +1 -0
- package/dist/chunk-TYODLVCG.mjs +23 -0
- package/dist/chunk-TYODLVCG.mjs.map +1 -0
- package/dist/chunk-U5VBBUQ2.mjs +48 -0
- package/dist/chunk-U5VBBUQ2.mjs.map +1 -0
- package/dist/chunk-UYDZZAEK.mjs +11 -0
- package/dist/chunk-UYDZZAEK.mjs.map +1 -0
- package/dist/chunk-WJZFE5NE.mjs +17 -0
- package/dist/chunk-WJZFE5NE.mjs.map +1 -0
- package/dist/chunk-WSBULPUZ.mjs +30 -0
- package/dist/chunk-WSBULPUZ.mjs.map +1 -0
- package/dist/chunk-WSG55HKA.mjs +94 -0
- package/dist/chunk-WSG55HKA.mjs.map +1 -0
- package/dist/chunk-XL5IRJ2H.mjs +134 -0
- package/dist/chunk-XL5IRJ2H.mjs.map +1 -0
- package/dist/chunk-XUBQQUTS.mjs +50 -0
- package/dist/chunk-XUBQQUTS.mjs.map +1 -0
- package/dist/chunk-YPVIK4SP.mjs +57 -0
- package/dist/chunk-YPVIK4SP.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/chunk-ZSLYORET.mjs +31 -0
- package/dist/chunk-ZSLYORET.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.js +3 -0
- package/dist/index.js.map +1 -1
- 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.d.ts +1 -0
- package/dist/types/Json.mjs +31 -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
- package/src/types/Json.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json as typesJson } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { DontInfer } from '../types/Types';\nimport { EnumConstructor, isEnumConstructor } from '../types/Enum';\nimport { Id } from '../types/Id';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;\ntype ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\nconst json = Symbol('view.json');\nconst spread = 'view.spread';\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .equals(json, { key, f: (a: any) => asJson(traverse(a, key)) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isEnumConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? c.byIds(v) : c.byId(v as Id))),\n }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => ifDefined(traverse(a, key), v => f.from(v)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = any> {\n constructor(\n private views = {} as ViewRecord<V>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views)\n ) {}\n\n get fromSource(): View<V> {\n return new View(this.views, 'source', this.viewers);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source.options\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src =>\n this.viewers.reduce(\n (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : typesJson.set(acc, v.key, v.f(src, v.key))),\n this.startsFrom === 'scratch' ? {} : src\n )\n );\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any>(views: ViewRecord<DontInfer<V>>): View<V> => new View<V>(views);\n\nexport const views = {\n ignore,\n keep,\n json,\n spread,\n skip: ignore,\n value: (value: unknown) => () => value,\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n};\n\n// spread: (a: any, key: string) => ({...a, ...(use(traverse(a, key), v => isObject(v) ? v : ({[key]: v})))}),\n"],"mappings":"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","names":["json","key","views"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isIn
|
|
3
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
4
|
+
|
|
5
|
+
// src/types/Primitive.ts
|
|
6
|
+
var isPrimitive = (v) => {
|
|
7
|
+
return v === null || v === void 0 || isIn(typeof v, ["string", "number", "bigint", "boolean", "symbol"]);
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
isPrimitive
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=chunk-DXQSIBC7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Primitive.ts"],"sourcesContent":["import { isIn } from './Is';\n\nexport type Primitive = string | number | bigint | boolean | symbol | null | undefined;\n\nexport const isPrimitive = (v?: unknown): v is Primitive => {\n return v === null || v === undefined || isIn(typeof v, ['string', 'number', 'bigint', 'boolean', 'symbol']);\n};\n"],"mappings":";;;;;AAIO,IAAM,cAAc,CAAC,MAAgC;AAC1D,SAAO,MAAM,QAAQ,MAAM,UAAa,KAAK,OAAO,GAAG,CAAC,UAAU,UAAU,UAAU,WAAW,QAAQ,CAAC;AAC5G;","names":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-4LVZOQ6O.mjs";
|
|
4
|
+
import {
|
|
5
|
+
toList
|
|
6
|
+
} from "./chunk-ABGKS4KE.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ofGet
|
|
9
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
10
|
+
import {
|
|
11
|
+
isAn
|
|
12
|
+
} from "./chunk-ZHXKBOK2.mjs";
|
|
13
|
+
import {
|
|
14
|
+
isDefined,
|
|
15
|
+
isFunction
|
|
16
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
17
|
+
|
|
18
|
+
// src/types/Enum.ts
|
|
19
|
+
var isEnumConstructor = (c) => isFunction(c) && c.isEnum;
|
|
20
|
+
var Enum = class {
|
|
21
|
+
constructor(name, id = name.toLowerCase(), code = id.toString()) {
|
|
22
|
+
this.name = name;
|
|
23
|
+
this.id = id;
|
|
24
|
+
this.code = code;
|
|
25
|
+
}
|
|
26
|
+
static isEnum = true;
|
|
27
|
+
get isValid() {
|
|
28
|
+
return isDefined(this.id);
|
|
29
|
+
}
|
|
30
|
+
static all() {
|
|
31
|
+
return meta(this.allTuple()).values();
|
|
32
|
+
}
|
|
33
|
+
static filter(p, params) {
|
|
34
|
+
return this.all().filter(p, params);
|
|
35
|
+
}
|
|
36
|
+
static first(p, params) {
|
|
37
|
+
return this.all().first(p, params);
|
|
38
|
+
}
|
|
39
|
+
static byIds(ids = []) {
|
|
40
|
+
return toList(ids).mapDefined((id) => this.byId(id)).distinct();
|
|
41
|
+
}
|
|
42
|
+
static byId(id, alt) {
|
|
43
|
+
return this.allTuple()[id] ?? ofGet(alt);
|
|
44
|
+
}
|
|
45
|
+
static allTuple() {
|
|
46
|
+
return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values().filter(isEnum).toObject("id"));
|
|
47
|
+
}
|
|
48
|
+
equals(other) {
|
|
49
|
+
return this.id === (isEnum(other) ? other.id : other);
|
|
50
|
+
}
|
|
51
|
+
isIn(...items) {
|
|
52
|
+
return items.some((i) => this.equals(i));
|
|
53
|
+
}
|
|
54
|
+
toJSON() {
|
|
55
|
+
return this.id;
|
|
56
|
+
}
|
|
57
|
+
toString() {
|
|
58
|
+
return this.id.toString();
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
var isEnum = (e) => isDefined(e) && e instanceof Enum && isAn(e, "name", "id", "code");
|
|
62
|
+
|
|
63
|
+
export {
|
|
64
|
+
isEnumConstructor,
|
|
65
|
+
Enum,
|
|
66
|
+
isEnum
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=chunk-F34HSIZ5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Enum.ts"],"sourcesContent":["import { Id } from './Id';\nimport { List, toList } from './List';\nimport { isAn } from './IsA';\nimport { meta } from './Meta';\nimport { isDefined, isFunction } from './Is';\nimport { Validatable } from './Validatable';\nimport { JsonValue } from './Json';\nimport { Get, ofGet } from './Get';\nimport { TypeGuard } from './TypeGuard';\n\nexport type EnumConstructor<E = unknown> = {\n byIds<E extends Enum>(ids: Id[]): List<E>;\n byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E;\n isEnum: boolean;\n};\n\nexport const isEnumConstructor = <E = unknown>(c: unknown): c is EnumConstructor<E> => isFunction(c) && (c as any).isEnum;\n\nexport abstract class Enum implements Validatable {\n static isEnum = true;\n\n protected constructor(\n readonly name: string,\n readonly id: Id = name.toLowerCase(),\n readonly code: string = id.toString()\n ) {}\n\n get isValid(): boolean {\n return isDefined(this.id);\n }\n\n static all<E extends Enum>(): List<E> {\n return meta(this.allTuple<E>()).values<E>();\n }\n\n static filter<E extends Enum>(p: (value: E, index: number, array: E[]) => unknown, params?: unknown): List<E> {\n return this.all<E>().filter(p, params);\n }\n\n static first<E extends Enum>(p?: (value: E, index: number, array: E[]) => unknown, params?: unknown): E {\n return this.all<E>().first(p, params);\n }\n\n static byIds<E extends Enum>(ids: Id[] = []): List<E> {\n return toList(ids)\n .mapDefined(id => this.byId<E>(id))\n .distinct();\n }\n\n static byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E {\n return this.allTuple<E>()[id] ?? ofGet(alt);\n }\n\n protected static allTuple<E extends Enum>(): Record<Id, E> {\n return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values<E>().filter(isEnum).toObject('id'));\n }\n\n equals<E extends Enum>(other: E | Id): other is E {\n return this.id === (isEnum(other) ? other.id : other);\n }\n\n isIn<E extends Enum>(...items: E[] | Id[]): boolean {\n return items.some(i => this.equals(i));\n }\n\n toJSON(): JsonValue {\n return this.id;\n }\n\n toString(): string {\n return this.id.toString();\n }\n}\n\nexport const isEnum: TypeGuard<Enum> = (e?: unknown): e is Enum => isDefined(e) && e instanceof Enum && isAn<Enum>(e, 'name', 'id', 'code');\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBO,IAAM,oBAAoB,CAAc,MAAwC,WAAW,CAAC,KAAM,EAAU;AAE5G,IAAe,OAAf,MAA2C;AAAA,EAGtC,YACC,MACA,KAAS,KAAK,YAAY,GAC1B,OAAe,GAAG,SAAS,GACpC;AAHS;AACA;AACA;AAAA,EACR;AAAA,EANH,OAAO,SAAS;AAAA,EAQhB,IAAI,UAAmB;AACrB,WAAO,UAAU,KAAK,EAAE;AAAA,EAC1B;AAAA,EAEA,OAAO,MAA+B;AACpC,WAAO,KAAK,KAAK,SAAY,CAAC,EAAE,OAAU;AAAA,EAC5C;AAAA,EAEA,OAAO,OAAuB,GAAqD,QAA2B;AAC5G,WAAO,KAAK,IAAO,EAAE,OAAO,GAAG,MAAM;AAAA,EACvC;AAAA,EAEA,OAAO,MAAsB,GAAsD,QAAqB;AACtG,WAAO,KAAK,IAAO,EAAE,MAAM,GAAG,MAAM;AAAA,EACtC;AAAA,EAEA,OAAO,MAAsB,MAAY,CAAC,GAAY;AACpD,WAAO,OAAO,GAAG,EACd,WAAW,QAAM,KAAK,KAAQ,EAAE,CAAC,EACjC,SAAS;AAAA,EACd;AAAA,EAEA,OAAO,KAAqB,IAAQ,KAA0B;AAC5D,WAAO,KAAK,SAAY,EAAE,EAAE,KAAK,MAAM,GAAG;AAAA,EAC5C;AAAA,EAEA,OAAiB,WAA0C;AACzD,WAAO,KAAK,IAAI,EAAE,IAAI,OAAO,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE,OAAU,EAAE,OAAO,MAAM,EAAE,SAAS,IAAI,CAAC;AAAA,EACtI;AAAA,EAEA,OAAuB,OAA2B;AAChD,WAAO,KAAK,QAAQ,OAAO,KAAK,IAAI,MAAM,KAAK;AAAA,EACjD;AAAA,EAEA,QAAwB,OAA4B;AAClD,WAAO,MAAM,KAAK,OAAK,KAAK,OAAO,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,SAAoB;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,GAAG,SAAS;AAAA,EAC1B;AACF;AAEO,IAAM,SAA0B,CAAC,MAA2B,UAAU,CAAC,KAAK,aAAa,QAAQ,KAAW,GAAG,QAAQ,MAAM,MAAM;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
tryTo
|
|
3
|
+
} from "./chunk-S6WR4MXU.mjs";
|
|
4
|
+
import {
|
|
5
|
+
asString
|
|
6
|
+
} from "./chunk-BDA5LB4S.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ofGet
|
|
9
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
10
|
+
import {
|
|
11
|
+
isNumber
|
|
12
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
13
|
+
|
|
14
|
+
// src/types/Number.ts
|
|
15
|
+
var asNumber = (n, alt) => tryTo(() => asString(n)).map((s) => parseInt(s)).filter((n2) => isNumber(n2)).or(ofGet(alt) ?? NaN);
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
asNumber
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-GADZDWP3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Number.ts"],"sourcesContent":["import { Get, ofGet } from './Get';\nimport { tryTo } from './Try';\nimport { isNumber } from './Is';\nimport { asString } from './Text';\n\nexport const asNumber = (n: unknown, alt?: Get<number>): number =>\n tryTo(() => asString(n))\n .map(s => parseInt(s))\n .filter(n => isNumber(n))\n .or(ofGet(alt) ?? NaN);\n"],"mappings":";;;;;;;;;;;;;;AAKO,IAAM,WAAW,CAAC,GAAY,QACnC,MAAM,MAAM,SAAS,CAAC,CAAC,EACpB,IAAI,OAAK,SAAS,CAAC,CAAC,EACpB,OAAO,CAAAA,OAAK,SAASA,EAAC,CAAC,EACvB,GAAG,MAAM,GAAG,KAAK,GAAG;","names":["n"]}
|
|
@@ -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-S6WR4MXU.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-GB2P3UEO.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,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
convert
|
|
3
|
+
} from "./chunk-MDXL65W4.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ofGet
|
|
6
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
7
|
+
|
|
8
|
+
// src/utils/Property.ts
|
|
9
|
+
var Property = class {
|
|
10
|
+
constructor(property, options) {
|
|
11
|
+
this.property = property;
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.options = { ...options, convert: options?.convert ?? convert.default };
|
|
14
|
+
}
|
|
15
|
+
in = (source = {}) => this.options?.convert?.to(source[this.property] ?? ofGet(this.options?.dflt));
|
|
16
|
+
out = (source = {}, key = "") => this.options?.convert?.from(source[key]);
|
|
17
|
+
toString() {
|
|
18
|
+
return this.property;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
Property
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-GCY5A63A.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/Property.ts"],"sourcesContent":["import { convert, Convert } from './Convert';\nimport { Mapping } from './Mapper';\nimport { Get, ofGet } from '../types/Get';\nimport { Json, JsonValue } from '../types/Json';\n\nexport type PropertyOptions<T = unknown> = {\n convert?: Convert<any, any>;\n dflt?: Get<T>;\n format?: string;\n};\n\nexport class Property<T = unknown> implements Mapping {\n constructor(\n readonly property: string,\n readonly options?: PropertyOptions\n ) {\n this.options = { ...options, convert: options?.convert ?? convert.default };\n }\n\n in = (source: Json = {}): JsonValue => this.options?.convert?.to(source[this.property] ?? ofGet(this.options?.dflt));\n out = (source: Json = {}, key = ''): JsonValue => this.options?.convert?.from(source[key]);\n\n toString() {\n return this.property;\n }\n}\n"],"mappings":";;;;;;;;AAWO,IAAM,WAAN,MAA+C;AAAA,EACpD,YACW,UACA,SACT;AAFS;AACA;AAET,SAAK,UAAU,EAAE,GAAG,SAAS,SAAS,SAAS,WAAW,QAAQ,QAAQ;AAAA,EAC5E;AAAA,EAEA,KAAK,CAAC,SAAe,CAAC,MAAiB,KAAK,SAAS,SAAS,GAAG,OAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,IAAI,CAAC;AAAA,EACnH,MAAM,CAAC,SAAe,CAAC,GAAG,MAAM,OAAkB,KAAK,SAAS,SAAS,KAAK,OAAO,GAAG,CAAC;AAAA,EAEzF,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import {
|
|
2
|
+
inFuture,
|
|
3
|
+
inPast
|
|
4
|
+
} from "./chunk-ADJAEGCT.mjs";
|
|
5
|
+
import {
|
|
6
|
+
tryTo,
|
|
7
|
+
validate
|
|
8
|
+
} from "./chunk-S6WR4MXU.mjs";
|
|
9
|
+
import {
|
|
10
|
+
text
|
|
11
|
+
} from "./chunk-4K4X43SV.mjs";
|
|
12
|
+
import {
|
|
13
|
+
meta
|
|
14
|
+
} from "./chunk-4LVZOQ6O.mjs";
|
|
15
|
+
import {
|
|
16
|
+
toList
|
|
17
|
+
} from "./chunk-ABGKS4KE.mjs";
|
|
18
|
+
import {
|
|
19
|
+
isBoolean,
|
|
20
|
+
isDefined,
|
|
21
|
+
isFunction,
|
|
22
|
+
isIn,
|
|
23
|
+
isNotEmpty,
|
|
24
|
+
isString
|
|
25
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
26
|
+
|
|
27
|
+
// src/validation/Contraints.ts
|
|
28
|
+
var constraint = (c, message) => (subject, property) => {
|
|
29
|
+
const cs = meta(subject).property(property).get("constraint") ?? toList();
|
|
30
|
+
meta(subject).property(property).set("constraint", cs.add({ property, constraint: c, text: message }));
|
|
31
|
+
};
|
|
32
|
+
var defined = (message) => constraint((v) => isDefined(v), message ?? "Property {property} must be defined.");
|
|
33
|
+
var required = (message) => constraint((v) => isNotEmpty(v), message ?? "Property {property} is required, and may not be empty.");
|
|
34
|
+
var notEmpty = (message) => constraint((v) => isNotEmpty(v), message ?? "Property {property} may not be empty.");
|
|
35
|
+
var valid = () => constraint((v) => validate(v), "");
|
|
36
|
+
var optional = () => constraint((v) => !isDefined(v) || validate(v), "");
|
|
37
|
+
var includes = (sub, message) => constraint((s) => isDefined(s) && isString(s) && s.includes(sub), message ?? `Value {actual} must include '${sub}'.`);
|
|
38
|
+
var inList = (values, message) => constraint((v) => isDefined(v) && isIn(v, values), message ?? "Value {actual} must appear in list.");
|
|
39
|
+
var inOptionalList = (values, message) => constraint((v) => !isDefined(v) || isIn(v, values), message ?? "Value {actual} must appear in list.");
|
|
40
|
+
var gt = (limit, message) => constraint((v) => v > limit, message ?? `Value {actual} must be larger than '${limit}'.`);
|
|
41
|
+
var gte = (limit, message) => constraint((v) => v >= limit, message ?? `Value {actual} must be larger than or equal to ${limit}.`);
|
|
42
|
+
var lt = (limit, message) => constraint((v) => v < limit, message ?? `Value {actual} must be smaller than ${limit}.`);
|
|
43
|
+
var lte = (limit, message) => constraint((v) => v <= limit, message ?? `Value {actual} must be smaller than or equal to ${limit}.`);
|
|
44
|
+
var past = (message) => constraint((v) => inPast(v), message ?? "Value {actual} must lay in the past.");
|
|
45
|
+
var future = (message) => constraint((v) => inFuture(v), message ?? "Value {actual} must lay in the future.");
|
|
46
|
+
var minLength = (length, message) => constraint(
|
|
47
|
+
(v) => tryTo(() => v).is.defined().map((v2) => text(v2).toString().length >= length).orElse(true),
|
|
48
|
+
message ?? `Value {actual} must be at least '${length}' characters long.`
|
|
49
|
+
);
|
|
50
|
+
var maxLength = (length, message) => constraint(
|
|
51
|
+
(v) => tryTo(() => v).is.defined().map((v2) => text(v2).toString().length <= length).orElse(true),
|
|
52
|
+
message ?? `Value {actual} cannot be longer than '${length}' characters.`
|
|
53
|
+
);
|
|
54
|
+
var rule = (message) => constraint((v) => isFunction(v) ? v() : isBoolean(v) ? v : false, message ?? `Value {actual} must be true`);
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
constraint,
|
|
58
|
+
defined,
|
|
59
|
+
required,
|
|
60
|
+
notEmpty,
|
|
61
|
+
valid,
|
|
62
|
+
optional,
|
|
63
|
+
includes,
|
|
64
|
+
inList,
|
|
65
|
+
inOptionalList,
|
|
66
|
+
gt,
|
|
67
|
+
gte,
|
|
68
|
+
lt,
|
|
69
|
+
lte,
|
|
70
|
+
past,
|
|
71
|
+
future,
|
|
72
|
+
minLength,
|
|
73
|
+
maxLength,
|
|
74
|
+
rule
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=chunk-HL2BC7Z2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/validation/Contraints.ts"],"sourcesContent":["import { validate, Validator } from './Validate';\nimport { Func } from '../types/Func';\nimport { Results } from '../types/Results';\nimport { meta } from '../types/Meta';\nimport { List, toList } from '../types/List';\nimport { isBoolean, isDefined, isFunction, isIn, isNotEmpty, isString } from '../types/Is';\nimport { tryTo } from '../types/Try';\nimport { inFuture, inPast } from '../types/IsDate';\nimport type { Text } from '../types/Text';\nimport { text } from '../types/ToText';\n\nexport type Constraint = Func<boolean | Results, any>;\n\nexport const constraint =\n <T>(c: Constraint, message: Text): PropertyDecorator =>\n (subject: unknown, property: string | symbol): void => {\n const cs = meta(subject).property(property).get<List<Validator>>('constraint') ?? toList<Validator>();\n meta(subject)\n .property(property)\n .set('constraint', cs.add({ property, constraint: c, text: message }));\n };\n\nexport const defined = (message?: Text): PropertyDecorator => constraint(v => isDefined(v), message ?? 'Property {property} must be defined.');\n\nexport const required = (message?: Text): PropertyDecorator =>\n constraint(v => isNotEmpty(v), message ?? 'Property {property} is required, and may not be empty.');\n\nexport const notEmpty = (message?: Text): PropertyDecorator => constraint(v => isNotEmpty(v), message ?? 'Property {property} may not be empty.');\n\nexport const valid = (): PropertyDecorator => constraint(v => validate(v), '');\n\nexport const optional = (): PropertyDecorator => constraint(v => !isDefined(v) || validate(v), '');\n\nexport const includes = (sub: string, message?: string): PropertyDecorator =>\n constraint(s => isDefined(s) && isString(s) && s.includes(sub), message ?? `Value {actual} must include '${sub}'.`);\n\nexport const inList = (values: unknown[], message?: Text): PropertyDecorator =>\n constraint(v => isDefined(v) && isIn(v, values), message ?? 'Value {actual} must appear in list.');\n\nexport const inOptionalList = (values: unknown[], message?: Text): PropertyDecorator =>\n constraint(v => !isDefined(v) || isIn(v, values), message ?? 'Value {actual} must appear in list.');\n\nexport const gt = (limit: number, message?: Text): PropertyDecorator => constraint(v => v > limit, message ?? `Value {actual} must be larger than '${limit}'.`);\n\nexport const gte = (limit: number, message?: Text): PropertyDecorator =>\n constraint(v => v >= limit, message ?? `Value {actual} must be larger than or equal to ${limit}.`);\n\nexport const lt = (limit: number, message?: Text): PropertyDecorator => constraint(v => v < limit, message ?? `Value {actual} must be smaller than ${limit}.`);\n\nexport const lte = (limit: number, message?: Text): PropertyDecorator =>\n constraint(v => v <= limit, message ?? `Value {actual} must be smaller than or equal to ${limit}.`);\n\nexport const past = (message?: Text): PropertyDecorator => constraint(v => inPast(v), message ?? 'Value {actual} must lay in the past.');\n\nexport const future = (message?: Text): PropertyDecorator => constraint(v => inFuture(v), message ?? 'Value {actual} must lay in the future.');\n\nexport const minLength = (length: number, message?: Text): PropertyDecorator =>\n constraint(\n v =>\n tryTo(() => v)\n .is.defined()\n .map(v => text(v).toString().length >= length)\n .orElse(true) as boolean,\n message ?? `Value {actual} must be at least '${length}' characters long.`\n );\n\nexport const maxLength = (length: number, message?: Text): PropertyDecorator =>\n constraint(\n v =>\n tryTo(() => v)\n .is.defined()\n .map(v => text(v).toString().length <= length)\n .orElse(true) as boolean,\n message ?? `Value {actual} cannot be longer than '${length}' characters.`\n );\n\nexport const rule = (message?: Text): PropertyDecorator =>\n constraint(v => (isFunction(v) ? (v() as boolean | Results) : isBoolean(v) ? v : false), message ?? `Value {actual} must be true`);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,IAAM,aACX,CAAI,GAAe,YACnB,CAAC,SAAkB,aAAoC;AACrD,QAAM,KAAK,KAAK,OAAO,EAAE,SAAS,QAAQ,EAAE,IAAqB,YAAY,KAAK,OAAkB;AACpG,OAAK,OAAO,EACT,SAAS,QAAQ,EACjB,IAAI,cAAc,GAAG,IAAI,EAAE,UAAU,YAAY,GAAG,MAAM,QAAQ,CAAC,CAAC;AACzE;AAEK,IAAM,UAAU,CAAC,YAAsC,WAAW,OAAK,UAAU,CAAC,GAAG,WAAW,sCAAsC;AAEtI,IAAM,WAAW,CAAC,YACvB,WAAW,OAAK,WAAW,CAAC,GAAG,WAAW,wDAAwD;AAE7F,IAAM,WAAW,CAAC,YAAsC,WAAW,OAAK,WAAW,CAAC,GAAG,WAAW,uCAAuC;AAEzI,IAAM,QAAQ,MAAyB,WAAW,OAAK,SAAS,CAAC,GAAG,EAAE;AAEtE,IAAM,WAAW,MAAyB,WAAW,OAAK,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE;AAE1F,IAAM,WAAW,CAAC,KAAa,YACpC,WAAW,OAAK,UAAU,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,WAAW,gCAAgC,GAAG,IAAI;AAE7G,IAAM,SAAS,CAAC,QAAmB,YACxC,WAAW,OAAK,UAAU,CAAC,KAAK,KAAK,GAAG,MAAM,GAAG,WAAW,qCAAqC;AAE5F,IAAM,iBAAiB,CAAC,QAAmB,YAChD,WAAW,OAAK,CAAC,UAAU,CAAC,KAAK,KAAK,GAAG,MAAM,GAAG,WAAW,qCAAqC;AAE7F,IAAM,KAAK,CAAC,OAAe,YAAsC,WAAW,OAAK,IAAI,OAAO,WAAW,uCAAuC,KAAK,IAAI;AAEvJ,IAAM,MAAM,CAAC,OAAe,YACjC,WAAW,OAAK,KAAK,OAAO,WAAW,kDAAkD,KAAK,GAAG;AAE5F,IAAM,KAAK,CAAC,OAAe,YAAsC,WAAW,OAAK,IAAI,OAAO,WAAW,uCAAuC,KAAK,GAAG;AAEtJ,IAAM,MAAM,CAAC,OAAe,YACjC,WAAW,OAAK,KAAK,OAAO,WAAW,mDAAmD,KAAK,GAAG;AAE7F,IAAM,OAAO,CAAC,YAAsC,WAAW,OAAK,OAAO,CAAC,GAAG,WAAW,sCAAsC;AAEhI,IAAM,SAAS,CAAC,YAAsC,WAAW,OAAK,SAAS,CAAC,GAAG,WAAW,wCAAwC;AAEtI,IAAM,YAAY,CAAC,QAAgB,YACxC;AAAA,EACE,OACE,MAAM,MAAM,CAAC,EACV,GAAG,QAAQ,EACX,IAAI,CAAAA,OAAK,KAAKA,EAAC,EAAE,SAAS,EAAE,UAAU,MAAM,EAC5C,OAAO,IAAI;AAAA,EAChB,WAAW,oCAAoC,MAAM;AACvD;AAEK,IAAM,YAAY,CAAC,QAAgB,YACxC;AAAA,EACE,OACE,MAAM,MAAM,CAAC,EACV,GAAG,QAAQ,EACX,IAAI,CAAAA,OAAK,KAAKA,EAAC,EAAE,SAAS,EAAE,UAAU,MAAM,EAC5C,OAAO,IAAI;AAAA,EAChB,WAAW,yCAAyC,MAAM;AAC5D;AAEK,IAAM,OAAO,CAAC,YACnB,WAAW,OAAM,WAAW,CAAC,IAAK,EAAE,IAA0B,UAAU,CAAC,IAAI,IAAI,OAAQ,WAAW,6BAA6B;","names":["v"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ifDefined,
|
|
3
|
+
toList
|
|
4
|
+
} from "./chunk-ABGKS4KE.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-HULI73W2.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,175 @@
|
|
|
1
|
+
import {
|
|
2
|
+
choose
|
|
3
|
+
} from "./chunk-S6WR4MXU.mjs";
|
|
4
|
+
import {
|
|
5
|
+
List,
|
|
6
|
+
isList,
|
|
7
|
+
toList
|
|
8
|
+
} from "./chunk-ABGKS4KE.mjs";
|
|
9
|
+
import {
|
|
10
|
+
isA
|
|
11
|
+
} from "./chunk-ZHXKBOK2.mjs";
|
|
12
|
+
import {
|
|
13
|
+
ofConstruct
|
|
14
|
+
} from "./chunk-ZPNFXK7Y.mjs";
|
|
15
|
+
import {
|
|
16
|
+
isNumber
|
|
17
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
18
|
+
|
|
19
|
+
// src/types/PageList.ts
|
|
20
|
+
var toFilter = (field, value) => toShortFilter(field, field, value);
|
|
21
|
+
var toShortFilter = (field, shortField, value) => ({
|
|
22
|
+
field,
|
|
23
|
+
shortField,
|
|
24
|
+
values: [{ value }]
|
|
25
|
+
});
|
|
26
|
+
var PageList = class extends List {
|
|
27
|
+
_options;
|
|
28
|
+
get options() {
|
|
29
|
+
return this._options;
|
|
30
|
+
}
|
|
31
|
+
get take() {
|
|
32
|
+
return this._options?.take ?? 250;
|
|
33
|
+
}
|
|
34
|
+
get skip() {
|
|
35
|
+
return this._options?.skip ?? 0;
|
|
36
|
+
}
|
|
37
|
+
get total() {
|
|
38
|
+
return this._options?.total;
|
|
39
|
+
}
|
|
40
|
+
get sorts() {
|
|
41
|
+
return this._options?.sorts;
|
|
42
|
+
}
|
|
43
|
+
get filters() {
|
|
44
|
+
return this._options?.filters;
|
|
45
|
+
}
|
|
46
|
+
get meta() {
|
|
47
|
+
return {
|
|
48
|
+
take: this.take,
|
|
49
|
+
skip: this.skip,
|
|
50
|
+
total: this.total,
|
|
51
|
+
sorts: this.sorts,
|
|
52
|
+
filters: this.filters
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
get ids() {
|
|
56
|
+
return this.mapDefined((i) => i.id);
|
|
57
|
+
}
|
|
58
|
+
asc(p) {
|
|
59
|
+
return toPageList(super.asc(p), this);
|
|
60
|
+
}
|
|
61
|
+
desc(p) {
|
|
62
|
+
return toPageList(super.desc(p), this);
|
|
63
|
+
}
|
|
64
|
+
diff(others) {
|
|
65
|
+
return toPageList(super.diff(others), this);
|
|
66
|
+
}
|
|
67
|
+
diffByKey(others, key) {
|
|
68
|
+
return toPageList(super.diffByKey(others, key), this);
|
|
69
|
+
}
|
|
70
|
+
symmetricDiff(others) {
|
|
71
|
+
return toPageList(super.symmetricDiff(others), this);
|
|
72
|
+
}
|
|
73
|
+
symmetricDiffByKey(others, key) {
|
|
74
|
+
return toPageList(super.symmetricDiffByKey(others, key), this);
|
|
75
|
+
}
|
|
76
|
+
intersect(others) {
|
|
77
|
+
return toPageList(super.intersect(others), this);
|
|
78
|
+
}
|
|
79
|
+
intersectByKey(others, key) {
|
|
80
|
+
return toPageList(super.intersectByKey(others, key), this);
|
|
81
|
+
}
|
|
82
|
+
map(f, params) {
|
|
83
|
+
const items = super.map(f, params);
|
|
84
|
+
return toPageList(items, this);
|
|
85
|
+
}
|
|
86
|
+
flatMap(f, params) {
|
|
87
|
+
return toPageList(super.flatMap(f, params), this);
|
|
88
|
+
}
|
|
89
|
+
mapDefined(f, params) {
|
|
90
|
+
return toPageList(super.mapDefined(f, params), this);
|
|
91
|
+
}
|
|
92
|
+
mapAsync(f) {
|
|
93
|
+
return super.mapAsync(f).then((r) => toPageList(r, this));
|
|
94
|
+
}
|
|
95
|
+
areEqual(...items) {
|
|
96
|
+
return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);
|
|
97
|
+
}
|
|
98
|
+
distinct() {
|
|
99
|
+
return toPageList(super.distinct(), this);
|
|
100
|
+
}
|
|
101
|
+
distinctByKey(key) {
|
|
102
|
+
return toPageList(super.distinctByKey(key), this);
|
|
103
|
+
}
|
|
104
|
+
distinctByValue() {
|
|
105
|
+
return toPageList(super.distinctByValue(), this);
|
|
106
|
+
}
|
|
107
|
+
filter(p, params) {
|
|
108
|
+
return toPageList(super.filter(p, params), this);
|
|
109
|
+
}
|
|
110
|
+
accumulate(...keys) {
|
|
111
|
+
return toPageList(super.accumulate(...keys), this);
|
|
112
|
+
}
|
|
113
|
+
concat(...items) {
|
|
114
|
+
return toPageList(super.concat(...items), this);
|
|
115
|
+
}
|
|
116
|
+
reverse() {
|
|
117
|
+
return toPageList(super.reverse(), this);
|
|
118
|
+
}
|
|
119
|
+
splice(start, deleteCount, ...items) {
|
|
120
|
+
return toPageList(super.splice(start, deleteCount, ...items), this);
|
|
121
|
+
}
|
|
122
|
+
remove(item) {
|
|
123
|
+
return toPageList(super.remove(item), this);
|
|
124
|
+
}
|
|
125
|
+
replace(key, item) {
|
|
126
|
+
return toPageList(super.replace(key, item), this);
|
|
127
|
+
}
|
|
128
|
+
switch(item) {
|
|
129
|
+
return toPageList(super.switch(item), this);
|
|
130
|
+
}
|
|
131
|
+
defined() {
|
|
132
|
+
return toPageList(super.defined(), this);
|
|
133
|
+
}
|
|
134
|
+
orElse(...alt) {
|
|
135
|
+
return toPageList(super.orElse(...alt), this);
|
|
136
|
+
}
|
|
137
|
+
slice(start, end) {
|
|
138
|
+
return toPageList(super.slice(start, end), this);
|
|
139
|
+
}
|
|
140
|
+
//we needed to add U because of a Typescript issue with generics
|
|
141
|
+
update(p, val) {
|
|
142
|
+
return toPageList(super.update(p, val), this);
|
|
143
|
+
}
|
|
144
|
+
updateFirst(p, val) {
|
|
145
|
+
return toPageList(super.updateFirst(p, val), this);
|
|
146
|
+
}
|
|
147
|
+
updateFirstById(id, val) {
|
|
148
|
+
return toPageList(super.updateFirstById(id, val), this);
|
|
149
|
+
}
|
|
150
|
+
updateById(id, val) {
|
|
151
|
+
return toPageList(super.updateById(id, val), this);
|
|
152
|
+
}
|
|
153
|
+
setPageOptions(options) {
|
|
154
|
+
this._options = options;
|
|
155
|
+
return this;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
var isPageList = (l) => isList(l) && isA(l, "total");
|
|
159
|
+
var toPageList = (items = [], options) => {
|
|
160
|
+
return choose(items).case(
|
|
161
|
+
(i) => i.length === 1 && isNumber(i[0]),
|
|
162
|
+
(i) => new PageList().add(...i)
|
|
163
|
+
).else((i) => new PageList(...i)).setPageOptions(isPageList(options) ? options.options : options);
|
|
164
|
+
};
|
|
165
|
+
var asPageList = (c, items = toPageList()) => items.map((i) => ofConstruct(c, i));
|
|
166
|
+
|
|
167
|
+
export {
|
|
168
|
+
toFilter,
|
|
169
|
+
toShortFilter,
|
|
170
|
+
PageList,
|
|
171
|
+
isPageList,
|
|
172
|
+
toPageList,
|
|
173
|
+
asPageList
|
|
174
|
+
};
|
|
175
|
+
//# sourceMappingURL=chunk-J3DYDXXF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/PageList.ts"],"sourcesContent":["import { isList, List, toList } from './List';\nimport { Construct, ofConstruct } from './Constructor';\nimport { isA } from './IsA';\nimport { PlainSort, Sort } from './Sort';\nimport { GetProperty } from './Get';\nimport { ArrayLike } from './Array';\nimport { Optional } from './Types';\nimport { isNumber } from './Is';\nimport { choose } from './Case';\nimport type { Id } from './Id';\n\nexport type FilterValue = { label?: string; value: any; count?: number };\nexport type Filter = { label?: string; field: string; shortField?: string; values: FilterValue[] };\n\nexport const toFilter = (field: string, value: any): Filter => toShortFilter(field, field, value);\nexport const toShortFilter = (field: string, shortField: string, value: any): Filter => ({\n field,\n shortField,\n values: [{ value }],\n});\n\nexport type PageOptions = { take?: number; skip?: number; sort?: Sort[]; sorts?: PlainSort; filters?: Filter[] };\nexport type PageListOptions = Exclude<PageOptions, 'sort'> & { total?: number };\n\nexport class PageList<T = unknown> extends List<T> {\n private _options?: PageListOptions;\n\n get options(): Optional<PageListOptions> {\n return this._options;\n }\n\n get take(): number {\n return this._options?.take ?? 250;\n }\n\n get skip(): number {\n return this._options?.skip ?? 0;\n }\n\n get total(): Optional<number> {\n return this._options?.total;\n }\n\n get sorts(): Optional<PlainSort> {\n return this._options?.sorts;\n }\n\n get filters(): Optional<Filter[]> {\n return this._options?.filters;\n }\n\n get meta(): PageListOptions {\n return {\n take: this.take,\n skip: this.skip,\n total: this.total,\n sorts: this.sorts,\n filters: this.filters,\n };\n }\n\n get ids(): PageList<Id> {\n return this.mapDefined(i => (i as any).id as Id);\n }\n\n asc(p: GetProperty<T, any>): PageList<T> {\n return toPageList(super.asc(p), this);\n }\n\n desc(p: GetProperty<T, any>): PageList<T> {\n return toPageList(super.desc(p), this);\n }\n\n diff(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.diff(others), this);\n }\n\n diffByKey<U = T>(others: ArrayLike<U>, key: keyof T & keyof U): PageList<T> {\n return toPageList(super.diffByKey(others, key), this);\n }\n\n symmetricDiff(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.symmetricDiff(others), this);\n }\n\n symmetricDiffByKey(others: ArrayLike<T>, key: keyof T): PageList<T> {\n return toPageList(super.symmetricDiffByKey(others, key), this);\n }\n\n intersect(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.intersect(others), this);\n }\n\n intersectByKey<U>(others: ArrayLike<U>, key: keyof T & keyof U): PageList<T> {\n return toPageList(super.intersectByKey(others, key), this);\n }\n\n map<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): PageList<U> {\n const items = super.map(f, params);\n return toPageList(items, this);\n }\n\n flatMap<U, This = unknown>(f: (this: This, value: T, index: number, array: T[]) => ReadonlyArray<U> | U, params?: This): PageList<U> {\n return toPageList(super.flatMap(f, params), this);\n }\n\n mapDefined<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): PageList<NonNullable<U>> {\n return toPageList(super.mapDefined(f, params), this);\n }\n\n mapAsync(f: (i: T) => Promise<T>): Promise<PageList<T>> {\n return super.mapAsync(f).then(r => toPageList(r, this));\n }\n\n areEqual(...items: ArrayLike<T>): boolean {\n return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);\n }\n\n distinct(): PageList<T> {\n return toPageList(super.distinct(), this);\n }\n\n distinctByKey(key: keyof T): PageList<T> {\n return toPageList(super.distinctByKey(key), this);\n }\n\n distinctByValue(): PageList<T> {\n return toPageList(super.distinctByValue(), this);\n }\n\n filter(p: (value: T, index: number, array: T[]) => unknown, params?: unknown): PageList<T> {\n return toPageList(super.filter(p, params), this);\n }\n\n accumulate(...keys: (keyof T)[]): PageList<T> {\n return toPageList(super.accumulate(...keys), this);\n }\n\n concat(...items: ConcatArray<T>[]): PageList<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): PageList<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): PageList<T> {\n return toPageList(super.concat(...items), this);\n }\n\n reverse(): PageList<T> {\n return toPageList(super.reverse(), this);\n }\n\n splice(start: number, deleteCount?: number): PageList<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): PageList<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): PageList<T> {\n return toPageList(super.splice(start, deleteCount, ...items), this);\n }\n\n remove(item: T): PageList<T> {\n return toPageList(super.remove(item), this);\n }\n\n replace(key: keyof T, item: T): PageList<T> {\n return toPageList(super.replace(key, item), this);\n }\n\n switch(item: T): PageList<T> {\n return toPageList(super.switch(item), this);\n }\n\n defined(): PageList<NonNullable<T>> {\n return toPageList(super.defined(), this);\n }\n\n orElse(...alt: ArrayLike<T>): Optional<PageList<T>> {\n return toPageList(super.orElse(...alt), this);\n }\n\n slice(start?: number, end?: number): PageList<T> {\n return toPageList(super.slice(start, end), this);\n }\n\n //we needed to add U because of a Typescript issue with generics\n update<U = T>(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.update(p, val), this);\n }\n\n updateFirst<U = T>(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateFirst(p, val), this);\n }\n\n updateFirstById<U = T>(id: Id, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateFirstById(id, val), this);\n }\n\n updateById<U = T>(id: Id, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateById(id, val), this);\n }\n\n private setPageOptions(options?: PageListOptions): this {\n this._options = options;\n return this;\n }\n}\n\nexport const isPageList = <T>(l?: unknown): l is PageList<T> => isList<T>(l) && isA(l, 'total');\n\nexport const toPageList = <T>(items: T[] = [], options?: PageListOptions | PageList): PageList<T> => {\n return (\n choose(items)\n .case(\n i => i.length === 1 && isNumber(i[0]),\n i => new PageList<T>().add(...i)\n )\n .else(i => new PageList<T>(...i)) as any\n ).setPageOptions(isPageList(options) ? options.options : options);\n};\n\n/* @deprecated No longer needed as the PageList is now a class that extends from List, use the map function */\nexport const asPageList = <T, U>(c: Construct<T>, items = toPageList<U>()): PageList<T> => items.map(i => ofConstruct(c, i));\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SqlQuery
|
|
3
|
+
} from "./chunk-TCQRHKGS.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-JMIXHXWM.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,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ifTrue,
|
|
3
|
+
toList
|
|
4
|
+
} from "./chunk-ABGKS4KE.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-KJVTSC6I.mjs.map
|