@sap/cds 8.9.4 → 9.0.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/CHANGELOG.md +121 -680
- package/LICENSE +15 -21
- package/README.md +1 -1
- package/_i18n/i18n_sl.properties +3 -3
- package/_i18n/messages.properties +1 -1
- package/app/index.js +1 -1
- package/bin/serve.js +17 -19
- package/eslint.config.mjs +7 -1
- package/lib/compile/etc/_localized.js +3 -24
- package/lib/compile/etc/yaml.js +6 -15
- package/lib/compile/for/odata.js +2 -2
- package/lib/compile/load.js +15 -4
- package/lib/compile/minify.js +1 -0
- package/lib/compile/to/edm-files.js +4 -33
- package/lib/compile/to/hdbtabledata.js +16 -3
- package/lib/compile/to/sql.js +1 -2
- package/lib/core/linked-csn.js +7 -8
- package/lib/dbs/cds-deploy.js +4 -3
- package/lib/env/cds-env.js +9 -9
- package/lib/env/cds-requires.js +23 -50
- package/lib/env/defaults.js +15 -44
- package/lib/env/schemas/cds-package.js +1 -1
- package/lib/i18n/index.js +1 -0
- package/lib/i18n/locale.js +41 -0
- package/lib/index.js +25 -15
- package/lib/log/cds-error.js +13 -3
- package/lib/log/cds-log.js +43 -18
- package/lib/log/format/aspects/als.js +2 -15
- package/lib/plugins.js +11 -11
- package/lib/ql/CREATE.js +1 -1
- package/lib/ql/DELETE.js +1 -1
- package/lib/ql/DROP.js +1 -1
- package/lib/ql/INSERT.js +9 -18
- package/lib/ql/SELECT.js +12 -19
- package/lib/ql/UPDATE.js +1 -1
- package/lib/ql/UPSERT.js +1 -0
- package/lib/ql/Whereable.js +7 -6
- package/lib/ql/cds-ql.js +0 -12
- package/lib/ql/cds.ql-Query.js +28 -68
- package/lib/ql/cds.ql-infer.js +97 -108
- package/lib/ql/resolve.js +1 -3
- package/lib/req/context.js +5 -4
- package/lib/req/request.js +46 -42
- package/lib/req/response.js +5 -9
- package/lib/req/spawn.js +38 -0
- package/lib/req/validate.js +9 -8
- package/lib/srv/bindings.js +2 -1
- package/lib/srv/cds-connect.js +5 -2
- package/lib/srv/cds-serve.js +0 -2
- package/lib/srv/cds.Service.js +146 -86
- package/lib/srv/middlewares/auth/ias-auth.js +99 -88
- package/lib/srv/middlewares/auth/jwt-auth.js +44 -57
- package/lib/srv/middlewares/cds-context.js +1 -1
- package/lib/srv/middlewares/ctx-model.js +1 -1
- package/lib/srv/middlewares/errors.js +34 -42
- package/lib/srv/protocols/hcql.js +35 -25
- package/lib/srv/protocols/index.js +0 -9
- package/lib/srv/protocols/odata-v4.js +1 -6
- package/lib/srv/srv-dispatch.js +29 -31
- package/lib/srv/srv-handlers.js +14 -46
- package/lib/srv/srv-methods.js +15 -37
- package/lib/srv/srv-tx.js +19 -25
- package/lib/test/cds-test.js +4 -263
- package/lib/utils/cds-utils.js +18 -2
- package/lib/utils/tar.js +6 -8
- package/lib/utils/unit.js +19 -0
- package/libx/_runtime/.eslintrc +1 -1
- package/libx/_runtime/cds-services/util/assert.js +2 -72
- package/libx/_runtime/cds.js +13 -6
- package/libx/_runtime/common/Service.js +33 -75
- package/libx/_runtime/common/aspects/any.js +0 -38
- package/libx/_runtime/common/constants/events.js +5 -13
- package/libx/_runtime/common/generic/auth/autoexpose.js +10 -24
- package/libx/_runtime/common/generic/auth/capabilities.js +23 -20
- package/libx/_runtime/common/generic/auth/expand.js +3 -3
- package/libx/_runtime/common/generic/auth/index.js +3 -3
- package/libx/_runtime/common/generic/auth/insertOnly.js +3 -3
- package/libx/_runtime/common/generic/auth/readOnly.js +4 -4
- package/libx/_runtime/common/generic/auth/requires.js +4 -4
- package/libx/_runtime/common/generic/auth/restrict.js +12 -29
- package/libx/_runtime/common/generic/auth/service.js +3 -3
- package/libx/_runtime/common/generic/auth/utils.js +2 -12
- package/libx/_runtime/common/generic/crud.js +22 -53
- package/libx/_runtime/common/generic/etag.js +18 -31
- package/libx/_runtime/common/generic/input.js +51 -123
- package/libx/_runtime/common/generic/paging.js +4 -4
- package/libx/_runtime/common/generic/sorting.js +8 -19
- package/libx/_runtime/common/generic/stream-only.js +26 -0
- package/libx/_runtime/common/generic/stream.js +16 -48
- package/libx/_runtime/common/generic/temporal.js +15 -7
- package/libx/_runtime/common/utils/binary.js +1 -26
- package/libx/_runtime/common/utils/compareJson.js +1 -2
- package/libx/_runtime/common/utils/cqn.js +15 -14
- package/libx/_runtime/common/utils/differ.js +121 -44
- package/libx/_runtime/common/utils/keys.js +4 -5
- package/libx/_runtime/common/utils/normalizeTimestamp.js +10 -1
- package/libx/_runtime/common/utils/postProcess.js +2 -2
- package/libx/_runtime/common/utils/propagateForeignKeys.js +21 -36
- package/libx/_runtime/common/utils/resolveView.js +105 -141
- package/libx/_runtime/common/utils/rewriteAsterisks.js +45 -12
- package/libx/_runtime/common/utils/streamProp.js +3 -9
- package/libx/_runtime/common/utils/waitingTime.js +13 -1
- package/libx/_runtime/fiori/lean-draft.js +174 -196
- package/libx/_runtime/messaging/common-utils/connections.js +1 -1
- package/libx/_runtime/messaging/enterprise-messaging-utils/EMManagement.js +1 -0
- package/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +3 -3
- package/libx/_runtime/messaging/enterprise-messaging.js +2 -2
- package/libx/_runtime/messaging/file-based.js +2 -4
- package/libx/_runtime/messaging/redis-messaging.js +1 -1
- package/libx/_runtime/messaging/service.js +5 -19
- package/libx/_runtime/remote/Service.js +20 -33
- package/libx/_runtime/remote/utils/client.js +7 -25
- package/libx/_runtime/remote/utils/cloudSdkProvider.js +8 -13
- package/libx/_runtime/remote/utils/data.js +3 -34
- package/libx/_runtime/types/api.js +0 -8
- package/libx/_runtime/ucl/Service.js +1 -9
- package/libx/common/utils/path.js +2 -3
- package/libx/common/utils/streaming.js +2 -1
- package/libx/http/HttpRequest.js +13 -0
- package/libx/{odata/middleware → http}/body-parser.js +7 -5
- package/libx/http/location.js +41 -0
- package/libx/http/put.js +36 -0
- package/libx/odata/ODataAdapter.js +25 -59
- package/libx/odata/index.js +10 -23
- package/libx/odata/middleware/batch.js +29 -20
- package/libx/odata/middleware/create.js +6 -13
- package/libx/odata/middleware/delete.js +0 -4
- package/libx/odata/middleware/error.js +83 -27
- package/libx/odata/middleware/metadata.js +14 -25
- package/libx/odata/middleware/operation.js +10 -26
- package/libx/odata/middleware/read.js +10 -18
- package/libx/odata/middleware/stream.js +14 -34
- package/libx/odata/middleware/update.js +17 -26
- package/libx/odata/parse/afterburner.js +20 -16
- package/libx/odata/parse/cqn2odata.js +3 -1
- package/libx/odata/parse/grammar.peggy +221 -114
- package/libx/odata/parse/parser.js +1 -1
- package/libx/odata/utils/index.js +10 -38
- package/libx/odata/utils/metadata.js +10 -8
- package/libx/odata/utils/normalizeTimeData.js +5 -8
- package/libx/odata/utils/readAfterWrite.js +1 -1
- package/libx/{outbox/OutboxRunner.js → queue/TaskRunner.js} +17 -22
- package/libx/queue/index.js +531 -0
- package/libx/rest/RestAdapter.js +43 -82
- package/libx/rest/middleware/create.js +35 -33
- package/libx/rest/middleware/delete.js +9 -7
- package/libx/rest/middleware/error.js +11 -18
- package/libx/rest/middleware/operation.js +44 -137
- package/libx/rest/middleware/parse.js +114 -130
- package/libx/rest/middleware/read.js +23 -21
- package/libx/rest/middleware/update.js +20 -32
- package/libx/rest/middleware/upsert.js +31 -0
- package/libx/rest/pre-processing.js +8 -18
- package/package.json +6 -7
- package/srv/outbox.cds +1 -0
- package/bin/test.js +0 -125
- package/lib/env/plugins.js +0 -18
- package/lib/req/cds-context.js +0 -52
- package/lib/req/locale.js +0 -35
- package/lib/srv/cds.ServiceClient.js +0 -96
- package/lib/srv/cds.ServiceProvider.js +0 -20
- package/lib/srv/protocols/okra.js +0 -22
- package/lib/test/axios.js +0 -63
- package/lib/test/data.js +0 -52
- package/lib/test/expect.js +0 -343
- package/lib/test/reporter.js +0 -176
- package/libx/_runtime/cds-services/adapter/odata-v4/OData.js +0 -275
- package/libx/_runtime/cds-services/adapter/odata-v4/ODataRequest.js +0 -217
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js +0 -101
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/create.js +0 -79
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/debug.js +0 -6
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/delete.js +0 -60
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +0 -161
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/language.js +0 -7
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/metadata.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/read.js +0 -602
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +0 -64
- package/libx/_runtime/cds-services/adapter/odata-v4/handlers/update.js +0 -238
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/ExpressionToCQN.js +0 -327
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/applyToCQN.js +0 -243
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/boundToCQN.js +0 -43
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/createToCQN.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/deleteToCQN.js +0 -36
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +0 -250
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/index.js +0 -81
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/orderByToCQN.js +0 -51
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/readToCQN.js +0 -389
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/searchToCQN.js +0 -43
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/selectToCQN.js +0 -35
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/updateToCQN.js +0 -38
- package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +0 -217
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FeatureSupport.js +0 -70
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FullQualifiedName.js +0 -94
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAction.js +0 -139
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlActionImport.js +0 -82
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAliasInfo.js +0 -44
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotation.js +0 -104
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotations.js +0 -71
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlComplexType.js +0 -133
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainer.js +0 -142
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainerInfo.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntitySet.js +0 -107
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityType.js +0 -177
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumMember.js +0 -61
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumType.js +0 -105
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunction.js +0 -149
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunctionImport.js +0 -105
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlInclude.js +0 -68
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlIncludeAnnotation.js +0 -71
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlJsonProvider.js +0 -1365
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationProperty.js +0 -190
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationPropertyBinding.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlOnDelete.js +0 -70
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlParameter.js +0 -227
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProperty.js +0 -250
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlPropertyRef.js +0 -49
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProvider.js +0 -190
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReference.js +0 -97
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReferentialConstraint.js +0 -60
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReturnType.js +0 -216
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSchema.js +0 -328
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSingleton.js +0 -84
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTerm.js +0 -320
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTypeDefinition.js +0 -193
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationExpression.js +0 -73
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationPathExpression.js +0 -33
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlApplyExpression.js +0 -105
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlArithmeticExpression.js +0 -72
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlBinaryExpression.js +0 -110
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCastExpression.js +0 -188
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCollectionExpression.js +0 -48
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlConstantExpression.js +0 -116
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIfExpression.js +0 -62
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIsOfExpression.js +0 -200
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementExpression.js +0 -42
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementReferenceExpression.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlModelElementPathExpression.js +0 -29
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNavigationPropertyPathExpression.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNegationExpression.js +0 -27
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNotExpression.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNullExpression.js +0 -18
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPathExpression.js +0 -32
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyPathExpression.js +0 -32
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyValueExpression.js +0 -55
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlRecordExpression.js +0 -54
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUnknownExpression.js +0 -44
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUrlRefExpression.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmBindingTarget.js +0 -163
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmFaceted.js +0 -136
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperation.js +0 -205
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperationImport.js +0 -126
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmStructuredType.js +0 -275
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Edm.js +0 -775
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAction.js +0 -15
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmActionImport.js +0 -39
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotation.js +0 -106
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotations.js +0 -57
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmComplexType.js +0 -48
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityContainer.js +0 -455
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntitySet.js +0 -43
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityType.js +0 -119
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumMember.js +0 -69
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumType.js +0 -117
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunction.js +0 -39
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunctionImport.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmInclude.js +0 -65
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmIncludeAnnotation.js +0 -48
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmKeyPropertyRef.js +0 -79
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationProperty.js +0 -182
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationPropertyBinding.js +0 -46
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmOnDelete.js +0 -44
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmParameter.js +0 -22
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveType.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveTypeKind.js +0 -70
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProperty.js +0 -39
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProvider.js +0 -399
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReference.js +0 -88
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReferentialConstraint.js +0 -71
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReturnType.js +0 -14
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSchema.js +0 -355
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSingleton.js +0 -15
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTerm.js +0 -75
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmType.js +0 -95
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeDefinition.js +0 -121
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeFactory.js +0 -28
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmVocabularyTermType.js +0 -41
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/KeyFactory.js +0 -67
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Target.js +0 -56
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/TransientStructuredType.js +0 -244
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/AnnotationExpressionFactory.js +0 -130
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationExpression.js +0 -28
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationPathExpression.js +0 -42
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmApplyExpression.js +0 -85
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmArithmeticExpression.js +0 -92
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmBinaryExpression.js +0 -96
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCastExpression.js +0 -129
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCollectionExpression.js +0 -52
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmConstantExpression.js +0 -83
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIfExpression.js +0 -103
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIsOfExpression.js +0 -125
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementExpression.js +0 -83
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementReferenceExpression.js +0 -41
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmModelElementPathExpression.js +0 -35
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNavigationPropertyPathExpression.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNegationExpression.js +0 -70
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNotExpression.js +0 -75
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNullExpression.js +0 -50
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPathExpression.js +0 -38
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyPathExpression.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyValueExpression.js +0 -72
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmRecordExpression.js +0 -100
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUnknownExpression.js +0 -72
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUrlRefExpression.js +0 -73
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/AbstractError.js +0 -82
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalArgumentError.js +0 -58
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalCallError.js +0 -21
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/NotImplementedError.js +0 -19
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriQueryOptionSemanticError.js +0 -49
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSemanticError.js +0 -48
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSyntaxError.js +0 -65
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/ContentTypeInfo.js +0 -105
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonContentTypeInfo.js +0 -83
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonFormat.js +0 -141
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/RepresentationKind.js +0 -251
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeader.js +0 -42
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeaderReader.js +0 -318
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpMethod.js +0 -25
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpStatusCode.js +0 -52
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/Preferences.js +0 -32
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/index.js +0 -69
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/logging/LoggerFacade.js +0 -183
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/AliasExpression.js +0 -47
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ApplyParser.js +0 -946
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/BinaryExpression.js +0 -124
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandItem.js +0 -76
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandParser.js +0 -384
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/Expression.js +0 -46
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpressionParser.js +0 -1988
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FilterParser.js +0 -34
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FunctionParameterParser.js +0 -106
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyPredicateParser.js +0 -155
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyValueParser.js +0 -213
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/LiteralExpression.js +0 -43
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MemberExpression.js +0 -44
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MethodExpression.js +0 -146
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByItem.js +0 -53
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByParser.js +0 -69
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ResourcePathParser.js +0 -848
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SearchParser.js +0 -127
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectItem.js +0 -80
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectParser.js +0 -294
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/TypeLiteralExpression.js +0 -28
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UnaryExpression.js +0 -64
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriHelper.js +0 -65
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriInfo.js +0 -165
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParameter.js +0 -107
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParser.js +0 -350
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriResource.js +0 -602
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriTokenizer.js +0 -1156
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateExpression.js +0 -164
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateTransformation.js +0 -38
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/BottomTopTransformation.js +0 -93
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeExpression.js +0 -52
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeTransformation.js +0 -38
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ConcatTransformation.js +0 -38
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/CustomFunctionTransformation.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ExpandTransformation.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/FilterTransformation.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByItem.js +0 -71
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByTransformation.js +0 -58
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/IdentityTransformation.js +0 -17
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/OrderByTransformation.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SearchTransformation.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SkipTransformation.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/TopTransformation.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/Transformation.js +0 -53
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/info.md +0 -116
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueDecoder.js +0 -667
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueEncoder.js +0 -349
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/ValueConverter.js +0 -545
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ParameterValidator.js +0 -124
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ValueValidator.js +0 -743
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/ServiceFactory.js +0 -234
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchContext.js +0 -351
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchErrorInfo.js +0 -61
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchExitHandler.js +0 -239
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchProcessor.js +0 -281
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchValidator.js +0 -133
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchedRequestExecutor.js +0 -92
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ComponentManager.js +0 -63
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Context.js +0 -96
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Dispatcher.js +0 -147
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequest.js +0 -458
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequestInBatch.js +0 -147
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponse.js +0 -314
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponseInBatch.js +0 -83
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpRequest.js +0 -175
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpResponse.js +0 -106
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/RequestContract.js +0 -111
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseContract.js +0 -111
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseHeaderSetter.js +0 -240
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Service.js +0 -417
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ServiceResolutions.js +0 -24
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ApplicationHttpReader.js +0 -157
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchJsonDeserializer.js +0 -171
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchRequestListBuilder.js +0 -196
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Cache.js +0 -154
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ContentDeserializer.js +0 -222
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DataReader.js +0 -220
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DeserializerFactory.js +0 -240
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/HeaderReader.js +0 -133
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/LineReader.js +0 -61
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/MultipartReader.js +0 -419
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/PartReader.js +0 -99
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Reader.js +0 -52
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ResourceJsonDeserializer.js +0 -673
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ApplicationError.js +0 -108
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/BadRequestError.js +0 -21
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ConflictError.js +0 -11
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/DeserializationError.js +0 -19
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/InternalServerError.js +0 -20
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/MethodNotAllowedError.js +0 -17
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotAcceptableError.js +0 -21
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotFoundError.js +0 -33
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionFailedError.js +0 -11
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionRequiredError.js +0 -11
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/SerializationError.js +0 -19
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/UnauthorizedError.js +0 -17
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/AcceptTypeInfo.js +0 -86
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/CharsetInfo.js +0 -76
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatDescription.js +0 -43
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatManager.js +0 -91
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/RequestContentNegotiator.js +0 -62
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/ResponseContentNegotiator.js +0 -321
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/BatchHandler.js +0 -36
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/MetadataHandler.js +0 -21
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/ServiceHandler.js +0 -25
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/CustomPreference.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HeaderInfo.js +0 -79
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeader.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeaderReader.js +0 -452
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpStatusCode.js +0 -117
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/Preferences.js +0 -222
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/PreferencesApplied.js +0 -199
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/index.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/Command.js +0 -31
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandExecutor.js +0 -94
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandFactory.js +0 -203
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestControlCommand.js +0 -52
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestPreValidationCommand.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ContentNegotiatorCommand.js +0 -70
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugContentNegotiatorCommand.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugDeserializingCommand.js +0 -44
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugSerializingCommand.js +0 -51
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DeserializingCommand.js +0 -69
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DispatcherCommand.js +0 -95
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorContentNegotiatorCommand.js +0 -44
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorSerializingCommand.js +0 -51
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/EventListenerCommand.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/LocaleNegotiatorCommand.js +0 -56
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OdataVersionValidationCommand.js +0 -41
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OperationValidationCommand.js +0 -34
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ParsePreferHeaderCommand.js +0 -47
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/PresetResponseHeadersCommand.js +0 -47
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsParserCommand.js +0 -43
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsValidationCommand.js +0 -62
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/RequestContentValidationCommand.js +0 -51
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SendResponseCommand.js +0 -37
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SerializingCommand.js +0 -159
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetResponseHeadersCommand.js +0 -90
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetStatuscodeCommand.js +0 -51
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/UriParserCommand.js +0 -47
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/logging/DebugLogger.js +0 -97
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ApplicationHttpWriter.js +0 -65
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchJsonSerializer.js +0 -46
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchMultipartSerializer.js +0 -113
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ContextURLFactory.js +0 -405
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugHtmlSerializer.js +0 -302
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugJsonSerializer.js +0 -515
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorJsonSerializer.js +0 -47
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorSerializer.js +0 -39
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorXmlSerializer.js +0 -98
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ExpressionTreeImage.js +0 -404
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MetadataXmlSerializer.js +0 -1416
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MultipartWriter.js +0 -202
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/NextLinkSerializer.js +0 -330
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ResourceJsonSerializer.js +0 -1220
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/SerializerFactory.js +0 -484
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ServiceJsonSerializer.js +0 -89
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/TrustedResourceJsonSerializer.js +0 -612
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/debugview.html +0 -157
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/BufferedWriter.js +0 -59
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/ExpandHelper.js +0 -96
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/MetadataCache.js +0 -136
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/PerformanceMonitor.js +0 -221
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/UriHelper.js +0 -157
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/ConditionalRequestValidator.js +0 -79
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/OperationValidator.js +0 -199
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/RequestValidator.js +0 -392
- package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/VersionValidator.js +0 -62
- package/libx/_runtime/cds-services/adapter/odata-v4/to.js +0 -51
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/data.js +0 -331
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/handlerUtils.js +0 -159
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/metaInfo.js +0 -404
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/oDataConfiguration.js +0 -55
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/omitValues.js +0 -86
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/readAfterWrite.js +0 -107
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/request.js +0 -64
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/result.js +0 -385
- package/libx/_runtime/cds-services/adapter/odata-v4/utils/stream.js +0 -12
- package/libx/_runtime/cds-services/util/errors.js +0 -15
- package/libx/_runtime/common/aspects/relation.js +0 -40
- package/libx/_runtime/common/composition/data.js +0 -370
- package/libx/_runtime/common/composition/delete.js +0 -313
- package/libx/_runtime/common/composition/index.js +0 -22
- package/libx/_runtime/common/composition/insert.js +0 -108
- package/libx/_runtime/common/composition/tree.js +0 -275
- package/libx/_runtime/common/composition/update.js +0 -354
- package/libx/_runtime/common/composition/utils.js +0 -95
- package/libx/_runtime/common/error/constants.js +0 -20
- package/libx/_runtime/common/error/entry.js +0 -36
- package/libx/_runtime/common/error/frontend.js +0 -199
- package/libx/_runtime/common/error/index.js +0 -12
- package/libx/_runtime/common/error/log.js +0 -35
- package/libx/_runtime/common/error/standardError.js +0 -11
- package/libx/_runtime/common/error/utils.js +0 -18
- package/libx/_runtime/common/generic/auth/constants.js +0 -17
- package/libx/_runtime/common/generic/put.js +0 -85
- package/libx/_runtime/common/utils/columns.js +0 -177
- package/libx/_runtime/common/utils/compareJsonOLD.js +0 -280
- package/libx/_runtime/common/utils/cqn2cqn4sql.js +0 -1039
- package/libx/_runtime/common/utils/data.js +0 -16
- package/libx/_runtime/common/utils/dollar.js +0 -27
- package/libx/_runtime/common/utils/generateOnCond.js +0 -127
- package/libx/_runtime/common/utils/onlyKeysRemain.js +0 -10
- package/libx/_runtime/common/utils/path.js +0 -20
- package/libx/_runtime/common/utils/quotingStyles.js +0 -29
- package/libx/_runtime/common/utils/restrictions.js +0 -67
- package/libx/_runtime/common/utils/search2cqn4sql.js +0 -37
- package/libx/_runtime/common/utils/searchToLike.js +0 -56
- package/libx/_runtime/common/utils/stream.js +0 -103
- package/libx/_runtime/common/utils/ucsn.js +0 -119
- package/libx/_runtime/common/utils/union.js +0 -31
- package/libx/_runtime/common/utils/unionCqnTemplate.js +0 -174
- package/libx/_runtime/db/Service.js +0 -93
- package/libx/_runtime/db/data-conversion/post-processing.js +0 -175
- package/libx/_runtime/db/expand/expand-v2.js +0 -147
- package/libx/_runtime/db/expand/expandCQNToJoin.js +0 -1775
- package/libx/_runtime/db/expand/index.js +0 -13
- package/libx/_runtime/db/expand/rawToExpanded.js +0 -250
- package/libx/_runtime/db/generic/create.js +0 -30
- package/libx/_runtime/db/generic/delete.js +0 -18
- package/libx/_runtime/db/generic/index.js +0 -25
- package/libx/_runtime/db/generic/input.js +0 -227
- package/libx/_runtime/db/generic/read.js +0 -16
- package/libx/_runtime/db/generic/rewrite.js +0 -68
- package/libx/_runtime/db/generic/structured.js +0 -92
- package/libx/_runtime/db/generic/update.js +0 -97
- package/libx/_runtime/db/generic/virtual.js +0 -83
- package/libx/_runtime/db/query/delete.js +0 -39
- package/libx/_runtime/db/query/index.js +0 -13
- package/libx/_runtime/db/query/insert.js +0 -21
- package/libx/_runtime/db/query/read.js +0 -97
- package/libx/_runtime/db/query/run.js +0 -30
- package/libx/_runtime/db/query/update.js +0 -94
- package/libx/_runtime/db/result/InsertResult.js +0 -87
- package/libx/_runtime/db/sql-builder/BaseBuilder.js +0 -65
- package/libx/_runtime/db/sql-builder/CreateBuilder.js +0 -212
- package/libx/_runtime/db/sql-builder/DeleteBuilder.js +0 -87
- package/libx/_runtime/db/sql-builder/DropBuilder.js +0 -63
- package/libx/_runtime/db/sql-builder/ExpressionBuilder.js +0 -345
- package/libx/_runtime/db/sql-builder/FunctionBuilder.js +0 -232
- package/libx/_runtime/db/sql-builder/InsertBuilder.js +0 -494
- package/libx/_runtime/db/sql-builder/ReferenceBuilder.js +0 -135
- package/libx/_runtime/db/sql-builder/SelectBuilder.js +0 -482
- package/libx/_runtime/db/sql-builder/UpdateBuilder.js +0 -207
- package/libx/_runtime/db/sql-builder/UpsertBuilder.js +0 -25
- package/libx/_runtime/db/sql-builder/annotations.js +0 -50
- package/libx/_runtime/db/sql-builder/arrayed.js +0 -4
- package/libx/_runtime/db/sql-builder/dataTypes.js +0 -59
- package/libx/_runtime/db/sql-builder/dollar.js +0 -37
- package/libx/_runtime/db/sql-builder/index.js +0 -28
- package/libx/_runtime/db/sql-builder/sqlFactory.js +0 -104
- package/libx/_runtime/db/utils/coloredTxCommands.js +0 -7
- package/libx/_runtime/db/utils/columns.js +0 -41
- package/libx/_runtime/db/utils/deep.js +0 -71
- package/libx/_runtime/db/utils/generateAliases.js +0 -160
- package/libx/_runtime/db/utils/localized.js +0 -77
- package/libx/_runtime/db/utils/normalizeTimeData.js +0 -98
- package/libx/_runtime/db/utils/stream.js +0 -41
- package/libx/_runtime/hana/Service.js +0 -173
- package/libx/_runtime/hana/conversion.js +0 -73
- package/libx/_runtime/hana/customBuilder/CustomCreateBuilder.js +0 -11
- package/libx/_runtime/hana/customBuilder/CustomDeleteBuilder.js +0 -17
- package/libx/_runtime/hana/customBuilder/CustomDropBuilder.js +0 -12
- package/libx/_runtime/hana/customBuilder/CustomExpressionBuilder.js +0 -23
- package/libx/_runtime/hana/customBuilder/CustomFunctionBuilder.js +0 -34
- package/libx/_runtime/hana/customBuilder/CustomReferenceBuilder.js +0 -38
- package/libx/_runtime/hana/customBuilder/CustomSelectBuilder.js +0 -90
- package/libx/_runtime/hana/customBuilder/index.js +0 -11
- package/libx/_runtime/hana/driver.js +0 -205
- package/libx/_runtime/hana/dynatrace.js +0 -130
- package/libx/_runtime/hana/execute.js +0 -429
- package/libx/_runtime/hana/localized.js +0 -39
- package/libx/_runtime/hana/pool.js +0 -186
- package/libx/_runtime/hana/search.js +0 -20
- package/libx/_runtime/hana/search2Contains.js +0 -106
- package/libx/_runtime/hana/search2cqn4sql.js +0 -98
- package/libx/_runtime/hana/streaming.js +0 -248
- package/libx/_runtime/messaging/Outbox.js +0 -15
- package/libx/_runtime/sqlite/Service.js +0 -153
- package/libx/_runtime/sqlite/conversion.js +0 -47
- package/libx/_runtime/sqlite/convertAssocToOneManaged.js +0 -60
- package/libx/_runtime/sqlite/convertDraftAdminPathExpression.js +0 -74
- package/libx/_runtime/sqlite/customBuilder/CustomExpressionBuilder.js +0 -24
- package/libx/_runtime/sqlite/customBuilder/CustomFunctionBuilder.js +0 -102
- package/libx/_runtime/sqlite/customBuilder/CustomSelectBuilder.js +0 -16
- package/libx/_runtime/sqlite/customBuilder/CustomUpsertBuilder.js +0 -47
- package/libx/_runtime/sqlite/customBuilder/index.js +0 -49
- package/libx/_runtime/sqlite/execute.js +0 -345
- package/libx/_runtime/sqlite/localized.js +0 -49
- package/libx/outbox/index.js +0 -307
package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ValueValidator.js
DELETED
|
@@ -1,743 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { big } = require('@sap/cds-foss')
|
|
4
|
-
const { isInvalidBase64string } = require('../../../../../../common/utils/binary')
|
|
5
|
-
const IllegalArgumentError = require('../errors/IllegalArgumentError')
|
|
6
|
-
|
|
7
|
-
const YEAR_RE = '(?:-?(?:(?:(?:0\\d{3})|(?:[1-9]\\d{3}))))'
|
|
8
|
-
const MONTH_RE = '(?:(?:0[1-9])|(?:1[012]))'
|
|
9
|
-
const DAY_RE = '(?:(?:0[1-9])|(?:[12]\\d)|(?:3[01]))'
|
|
10
|
-
const HOURS_RE = '(?:(?:[01]\\d)|(?:2[0-3]))'
|
|
11
|
-
const MINUTES_RE = '[0-5]\\d'
|
|
12
|
-
const SECONDS_RE = MINUTES_RE
|
|
13
|
-
const FRACT_SECONDS_RE = '(\\d{1,12})'
|
|
14
|
-
const TIME_ZONE_RE = '(?:Z|(?:[+-]' + HOURS_RE + ':' + MINUTES_RE + '))'
|
|
15
|
-
|
|
16
|
-
// RegExp for Edm.Date values
|
|
17
|
-
const DATE_REG_EXP = new RegExp('^(?:' + YEAR_RE + '-' + MONTH_RE + '-' + DAY_RE + ')$')
|
|
18
|
-
|
|
19
|
-
// RegExp for Edm.DateTimeOffset values
|
|
20
|
-
const DATETIME_OFFSET_REG_EXP = new RegExp(
|
|
21
|
-
'^(?:' +
|
|
22
|
-
YEAR_RE +
|
|
23
|
-
'-' +
|
|
24
|
-
MONTH_RE +
|
|
25
|
-
'-' +
|
|
26
|
-
DAY_RE +
|
|
27
|
-
'T' +
|
|
28
|
-
HOURS_RE +
|
|
29
|
-
':' +
|
|
30
|
-
MINUTES_RE +
|
|
31
|
-
'(?::' +
|
|
32
|
-
SECONDS_RE +
|
|
33
|
-
'(?:\\.' +
|
|
34
|
-
FRACT_SECONDS_RE +
|
|
35
|
-
')?)?' +
|
|
36
|
-
TIME_ZONE_RE +
|
|
37
|
-
')$'
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
// RegExp for Edm.TimeOfDay values
|
|
41
|
-
const TIME_OF_DAY_REG_EXP = new RegExp(
|
|
42
|
-
'^(?:' + HOURS_RE + ':' + MINUTES_RE + '(?::' + SECONDS_RE + '(?:\\.' + FRACT_SECONDS_RE + ')?)?)$'
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
const DURATION_TIME_RE =
|
|
46
|
-
'(?:T(?:(?:(?:\\d+H)(?:\\d+M)?(?:\\d+(?:\\.(\\d+))?S)?)|(?:(?:\\d+M)(?:\\d+' +
|
|
47
|
-
'(?:\\.(\\d+))?S)?)|(?:(?:\\d+(?:\\.(\\d+))?S))))'
|
|
48
|
-
|
|
49
|
-
// RegExp for Edm.Duration values
|
|
50
|
-
const DURATION_REG_EXP = new RegExp('^(?:-?P(?:(?:(?:\\d+D)' + DURATION_TIME_RE + '?)|' + DURATION_TIME_RE + '))$')
|
|
51
|
-
|
|
52
|
-
// RegExp for Edm.Guid values
|
|
53
|
-
const HEX_DIG = '[A-Fa-f0-9]'
|
|
54
|
-
const GUID_REG_EXP = new RegExp(
|
|
55
|
-
'^(?:' + HEX_DIG + '{8}-' + HEX_DIG + '{4}-' + HEX_DIG + '{4}-' + HEX_DIG + '{4}-' + HEX_DIG + '{12})$'
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
// RegExp for valid names of EPSG-defined coordinate reference systems used in geography/geometry values
|
|
59
|
-
const GEO_CRS_NAME_REG_EXP = new RegExp('^EPSG:\\d{1,8}$')
|
|
60
|
-
|
|
61
|
-
// RegExp for ETag values
|
|
62
|
-
const ETAG_VALUE_REG_EXP = new RegExp('^[!#-~\\x80-\\xFF]*$') // %x21 / %x23-7E / obs-text
|
|
63
|
-
|
|
64
|
-
// max value for Edm.Int64
|
|
65
|
-
const INT64_MAX = new big('9223372036854775807')
|
|
66
|
-
|
|
67
|
-
// min value for Edm.Int64
|
|
68
|
-
const INT64_MIN = new big('-9223372036854775808')
|
|
69
|
-
|
|
70
|
-
// min value for IEEE 754 binary32 (i.e. Edm.Single)
|
|
71
|
-
const SINGLE_MIN = 1.401298464324817e-45
|
|
72
|
-
|
|
73
|
-
// max value for IEEE 754 binary32 (i.e. Edm.Single)
|
|
74
|
-
const SINGLE_MAX = 3.4028234663852886e38
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Validator of values according to the OData ABNF Construction Rules.
|
|
78
|
-
*/
|
|
79
|
-
class ValueValidator {
|
|
80
|
-
/**
|
|
81
|
-
* Constructor
|
|
82
|
-
* @param {string} [mode] the usage mode
|
|
83
|
-
*/
|
|
84
|
-
constructor (mode) {
|
|
85
|
-
this._mode = mode
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
get property() {
|
|
89
|
-
return this._mode === 'decode' &&
|
|
90
|
-
this._valueConverter._propertyOrReturnType &&
|
|
91
|
-
this._valueConverter._propertyOrReturnType.getName()
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Validates value of Edm.Binary type.
|
|
95
|
-
* @param {Buffer} value - Edm.Binary value as base64 or base64url string
|
|
96
|
-
* @param {number} maxLength - value of MaxLength facet
|
|
97
|
-
*/
|
|
98
|
-
validateBinary (value, maxLength) {
|
|
99
|
-
// if it's a Buffer instance, just let it go. Otherwise MUST be base64 or base64url string as per OData spec for edm.Binary
|
|
100
|
-
if (isInvalidBase64string(value)) throw this._valueError(value, 'Edm.Binary', 'Buffer instance or base64/base64url string')
|
|
101
|
-
this._checkMaxLength(Buffer.isBuffer(value) ? value : Buffer.from(value, 'base64'), maxLength, 'Edm.Binary')
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Validates value of Edm.Boolean type.
|
|
106
|
-
* @param {boolean} value - Edm.Boolean value
|
|
107
|
-
*/
|
|
108
|
-
validateBoolean (value) {
|
|
109
|
-
if (typeof value !== 'boolean') throw this._valueError(value, 'Edm.Boolean', 'boolean value')
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Validates value of Edm.Byte type.
|
|
114
|
-
* @param {number} value - Edm.Byte value
|
|
115
|
-
*/
|
|
116
|
-
validateByte (value) {
|
|
117
|
-
this._validateIntegerValue(value, 'Edm.Byte', 0, 255)
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Returns true if value is of type Byte.
|
|
122
|
-
* @param {number} value the value to check
|
|
123
|
-
* @returns {boolean} true if value is Byte, else false
|
|
124
|
-
*/
|
|
125
|
-
isByte (value) {
|
|
126
|
-
return Number.isInteger(value) && value >= 0 && value <= 255
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Validates value of Edm.SByte type.
|
|
131
|
-
* @param {number} value - Edm.SByte value
|
|
132
|
-
*/
|
|
133
|
-
validateSByte (value) {
|
|
134
|
-
this._validateIntegerValue(value, 'Edm.SByte', -128, 127)
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Returns true if value is of type SByte.
|
|
139
|
-
* @param {number} value the value to check
|
|
140
|
-
* @returns {boolean} true if value is SByte, else false
|
|
141
|
-
*/
|
|
142
|
-
isSByte (value) {
|
|
143
|
-
return Number.isInteger(value) && value >= -128 && value <= 127
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Validates value of Edm.Int16 type.
|
|
148
|
-
* @param {number} value - Edm.Int16 value
|
|
149
|
-
*/
|
|
150
|
-
validateInt16 (value) {
|
|
151
|
-
this._validateIntegerValue(value, 'Edm.Int16', -32768, 32767)
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Returns true if value is of type Int16.
|
|
156
|
-
* @param {number} value the value to check
|
|
157
|
-
* @returns {boolean} true if value is Int16, else false
|
|
158
|
-
*/
|
|
159
|
-
isInt16 (value) {
|
|
160
|
-
return Number.isInteger(value) && value >= -32768 && value <= 32767
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Validates value of Edm.Int32 type.
|
|
165
|
-
* @param {number} value - Edm.Int32 value
|
|
166
|
-
*/
|
|
167
|
-
validateInt32 (value) {
|
|
168
|
-
this._validateIntegerValue(value, 'Edm.Int32', -2147483648, 2147483647)
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Returns true if value is of type Int32.
|
|
173
|
-
* @param {number} value the value to check
|
|
174
|
-
* @returns {boolean} true if value is Int32, else false
|
|
175
|
-
*/
|
|
176
|
-
isInt32 (value) {
|
|
177
|
-
return Number.isInteger(value) && value >= -2147483648 && value <= 2147483647
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Validates value of Edm.Int64 type.
|
|
182
|
-
* @param {number|string} value - Edm.Int64 value. Values in exponential notation are also supported.
|
|
183
|
-
*/
|
|
184
|
-
validateInt64 (value) {
|
|
185
|
-
if (!this.isInt64(value)) {
|
|
186
|
-
throw this._valueError(
|
|
187
|
-
value,
|
|
188
|
-
'Edm.Int64',
|
|
189
|
-
'number without decimals in the range from -9223372036854775808 to 9223372036854775807'
|
|
190
|
-
)
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Returns true if value is of type Int64.
|
|
196
|
-
* @param {number|string} value the value to check
|
|
197
|
-
* @returns {boolean} true if value is Int64, else false
|
|
198
|
-
*/
|
|
199
|
-
isInt64 (value) {
|
|
200
|
-
const bigValue = this._createBig(value)
|
|
201
|
-
return (
|
|
202
|
-
!Number.isNaN(bigValue) && bigValue.round(0).eq(bigValue) && bigValue.gte(INT64_MIN) && bigValue.lte(INT64_MAX)
|
|
203
|
-
)
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Validates, whether the value is an integer value and in the specified value range, defined via 'from'
|
|
208
|
-
* and 'to' input parameters.
|
|
209
|
-
*
|
|
210
|
-
* @param {number} value - Any value, which should be validated
|
|
211
|
-
* @param {string} edmType - name of the EDM type for which the value is validated
|
|
212
|
-
* @param {number} from - beginning of the valid value range, which the value must belong to
|
|
213
|
-
* @param {number} to - end of the valid value range, which the value must belong to
|
|
214
|
-
* @private
|
|
215
|
-
*/
|
|
216
|
-
_validateIntegerValue (value, edmType, from, to) {
|
|
217
|
-
if (!Number.isInteger(value)) throw this._valueError(value, edmType, 'number without decimals')
|
|
218
|
-
if (value < from || value > to) {
|
|
219
|
-
throw this._valueError(value, edmType, 'number in the range from ' + from + ' to ' + to)
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Create a big.js instance for a value.
|
|
225
|
-
* @param {number|string} value the value
|
|
226
|
-
* @returns {Big|number} the created big.js instance or Number.NaN in case of error
|
|
227
|
-
* @private
|
|
228
|
-
*/
|
|
229
|
-
_createBig (value) {
|
|
230
|
-
try {
|
|
231
|
-
return new big(value)
|
|
232
|
-
} catch (e) {
|
|
233
|
-
// Big constructor throws NaN if the input is not a number.
|
|
234
|
-
// Return NaN here to avoid yet another try-catch block in the calling function
|
|
235
|
-
return Number.NaN
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Validates value of Edm.String type.
|
|
241
|
-
* @param {string} value - Edm.String value
|
|
242
|
-
* @param {number} maxLength - value of MaxLength facet
|
|
243
|
-
*/
|
|
244
|
-
validateString (value, maxLength) {
|
|
245
|
-
if (typeof value !== 'string') throw this._valueError(value, 'Edm.String', 'string value')
|
|
246
|
-
this._checkMaxLength(value, maxLength, 'Edm.String')
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Checks that the value is not longer than the specified maximum length.
|
|
251
|
-
* @param {string} value value to be checked
|
|
252
|
-
* @param {number} maxLength value of the MaxLength facet for the property, which has the specified value
|
|
253
|
-
* @param {string} typeName name of the type of the value
|
|
254
|
-
* @throws {Error} if the condition is not met
|
|
255
|
-
* @private
|
|
256
|
-
*/
|
|
257
|
-
_checkMaxLength (value, maxLength, typeName) {
|
|
258
|
-
// consider only integer maxLength values, ignoring both unspecified and the special 'max' value
|
|
259
|
-
if (Number.isInteger(maxLength) && value.length > maxLength) {
|
|
260
|
-
throw new IllegalArgumentError(
|
|
261
|
-
'Invalid value ' +
|
|
262
|
-
value +
|
|
263
|
-
' (' +
|
|
264
|
-
typeof value +
|
|
265
|
-
')' +
|
|
266
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
267
|
-
'. ' +
|
|
268
|
-
'The length of the ' +
|
|
269
|
-
typeName +
|
|
270
|
-
' value must not be greater than the MaxLength facet value (' +
|
|
271
|
-
maxLength +
|
|
272
|
-
').'
|
|
273
|
-
)
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Validates value of Edm.Date type.
|
|
279
|
-
* @param {string} value - Edm.Date value
|
|
280
|
-
*/
|
|
281
|
-
validateDate (value) {
|
|
282
|
-
if (typeof value !== 'string' || !DATE_REG_EXP.test(value)) {
|
|
283
|
-
throw this._valueError(value, 'Edm.Date', 'string value in the format YYYY-MM-DD')
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* Validates value of Edm.DateTimeOffset type.
|
|
289
|
-
* @param {string} value - Edm.DateTimeOffset value
|
|
290
|
-
* @param {number|string} [precision] - value of Precision facet
|
|
291
|
-
*/
|
|
292
|
-
validateDateTimeOffset (value, precision) {
|
|
293
|
-
let result = DATETIME_OFFSET_REG_EXP.exec(value)
|
|
294
|
-
|
|
295
|
-
if (typeof value !== 'string' || !result) {
|
|
296
|
-
throw this._valueError(value, 'Edm.DateTimeOffset', 'string value in the format YYYY-MM-DDThh:mm:ss.sTZD')
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
const milliseconds = result[1]
|
|
300
|
-
this._checkMillisecondsPrecision(value, milliseconds, precision)
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Validates value of Edm.TimeOfDay type.
|
|
305
|
-
* @param {string} value - Edm.TimeOfDay value
|
|
306
|
-
* @param {number|string} [precision] - value of Precision facet
|
|
307
|
-
*/
|
|
308
|
-
validateTimeOfDay (value, precision) {
|
|
309
|
-
let result = TIME_OF_DAY_REG_EXP.exec(value)
|
|
310
|
-
|
|
311
|
-
if (typeof value !== 'string' || !result) {
|
|
312
|
-
throw this._valueError(value, 'Edm.TimeOfDay', 'string value in the format hh:mm:ss.s')
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
const milliseconds = result[1]
|
|
316
|
-
this._checkMillisecondsPrecision(value, milliseconds, precision)
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Validates value of Edm.Duration type.
|
|
321
|
-
* @param {string} value - Edm.Duration value
|
|
322
|
-
* @param {number|string} [precision] - value of Precision facet
|
|
323
|
-
*/
|
|
324
|
-
validateDuration (value, precision) {
|
|
325
|
-
let result = DURATION_REG_EXP.exec(value)
|
|
326
|
-
|
|
327
|
-
if (typeof value !== 'string' || !result) {
|
|
328
|
-
throw this._valueError(value, 'Edm.Duration', 'string value in the format PnDTnHnMn.nS')
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
// Because of the different combinations of the duration parts (HS, MS, S) we have 6 places (i.e. matching
|
|
332
|
-
// groups) in the regular expression, which match milliseconds. Therefore slice() is called on the result
|
|
333
|
-
// array to "extract" only these 6 matches and find the one that matches, i.e., is not empty.
|
|
334
|
-
const milliseconds = result.slice(1, 7).find(match => match !== undefined)
|
|
335
|
-
|
|
336
|
-
this._checkMillisecondsPrecision(value, milliseconds, precision)
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
/**
|
|
340
|
-
* Checks whether the milliseconds satisfy the specified precision for the value.
|
|
341
|
-
* @param {string} value - temporal value, which can contain milliseconds
|
|
342
|
-
* @param {string} milliseconds - part of the value, representing milliseconds
|
|
343
|
-
* @param {number} precision - value of the Precision facet for the property, which has the specified value
|
|
344
|
-
* @throws {Error} if the conditions are not met
|
|
345
|
-
* @private
|
|
346
|
-
*/
|
|
347
|
-
_checkMillisecondsPrecision (value, milliseconds, precision) {
|
|
348
|
-
// milliseconds is a string value, so just check its length
|
|
349
|
-
if (milliseconds && precision !== null && precision !== undefined && milliseconds.length > precision) {
|
|
350
|
-
throw new IllegalArgumentError(
|
|
351
|
-
'Invalid value ' +
|
|
352
|
-
value +
|
|
353
|
-
' (' +
|
|
354
|
-
typeof value +
|
|
355
|
-
')' +
|
|
356
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
357
|
-
'. ' +
|
|
358
|
-
'The number of milliseconds does not correspond to the Precision facet value (' +
|
|
359
|
-
precision +
|
|
360
|
-
').'
|
|
361
|
-
)
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* Validates value of Edm.Decimal type.
|
|
367
|
-
* @param {number|string} value - Edm.Decimal value. Values in exponential notation are also supported.
|
|
368
|
-
* @param {number|string} [precision] - value of Precision facet
|
|
369
|
-
* @param {number|string} [scale] - value of Scale facet
|
|
370
|
-
*/
|
|
371
|
-
validateDecimal (value, precision, scale) {
|
|
372
|
-
// Precision and scale values are not validated assuming that the metadata validation is done before calling
|
|
373
|
-
// the serializer.
|
|
374
|
-
|
|
375
|
-
const bigValue = this._createBig(value)
|
|
376
|
-
|
|
377
|
-
// Check that the value represents a number.
|
|
378
|
-
if (Number.isNaN(bigValue)) {
|
|
379
|
-
throw this._valueError(value, 'Edm.Decimal', 'number or a string representing a number')
|
|
380
|
-
}
|
|
381
|
-
// check that the value has no more digits than specified for precision
|
|
382
|
-
if (precision !== null && precision !== undefined && bigValue.c.length > precision) {
|
|
383
|
-
throw new IllegalArgumentError(
|
|
384
|
-
'Invalid value ' +
|
|
385
|
-
value +
|
|
386
|
-
' (' +
|
|
387
|
-
typeof value +
|
|
388
|
-
')' +
|
|
389
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
390
|
-
'. ' +
|
|
391
|
-
'The specified Edm.Decimal value does not correspond to the Precision facet value (' +
|
|
392
|
-
precision +
|
|
393
|
-
').'
|
|
394
|
-
)
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
if (scale === null || scale === undefined || scale === 'variable') {
|
|
398
|
-
return
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
// Specify 0 as the rounding mode to simply truncate the number wihout any sort of rounding.
|
|
402
|
-
const integerPart = bigValue.round(0, 0)
|
|
403
|
-
|
|
404
|
-
if (precision === scale) {
|
|
405
|
-
if (!integerPart.eq(0)) {
|
|
406
|
-
throw new IllegalArgumentError(
|
|
407
|
-
'Invalid value ' +
|
|
408
|
-
value +
|
|
409
|
-
' (' +
|
|
410
|
-
typeof value +
|
|
411
|
-
')' +
|
|
412
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
413
|
-
'. ' +
|
|
414
|
-
'If Precision is equal to Scale, a single zero must precede the decimal point ' +
|
|
415
|
-
'in the Edm.Decimal value.'
|
|
416
|
-
)
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
return
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
// Validate number of digits in the integer (i.e., left) part of the value.
|
|
423
|
-
if (precision !== null && precision !== undefined && integerPart.c.length > precision - scale) {
|
|
424
|
-
throw new IllegalArgumentError(
|
|
425
|
-
'Invalid value ' +
|
|
426
|
-
value +
|
|
427
|
-
' (' +
|
|
428
|
-
typeof value +
|
|
429
|
-
')' +
|
|
430
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
431
|
-
'. ' +
|
|
432
|
-
'The number of digits to the left of the decimal point must not be greater than ' +
|
|
433
|
-
'Precision minus Scale, i.e., ' +
|
|
434
|
-
(precision - scale) +
|
|
435
|
-
'.'
|
|
436
|
-
)
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
// Validate number of digits in the decimal (i.e., right) part of the value.
|
|
440
|
-
const decimalPart = bigValue.minus(integerPart)
|
|
441
|
-
if (decimalPart.c.length > scale && !decimalPart.eq(0)) {
|
|
442
|
-
throw new IllegalArgumentError(
|
|
443
|
-
'Invalid value ' +
|
|
444
|
-
value +
|
|
445
|
-
' (' +
|
|
446
|
-
typeof value +
|
|
447
|
-
')' +
|
|
448
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
449
|
-
'. ' +
|
|
450
|
-
'The specified Edm.Decimal value has more digits to the right of the decimal point ' +
|
|
451
|
-
'than allowed by the Scale facet value (' +
|
|
452
|
-
scale +
|
|
453
|
-
').'
|
|
454
|
-
)
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Validates value of Edm.Single type.
|
|
460
|
-
* @param {number} value - Edm.Single value
|
|
461
|
-
*/
|
|
462
|
-
validateSingle (value) {
|
|
463
|
-
if (!this.isSingle(value)) {
|
|
464
|
-
throw this._valueError(
|
|
465
|
-
value,
|
|
466
|
-
'Edm.Single',
|
|
467
|
-
'number having absolute value in the range from ' + SINGLE_MIN + ' to ' + SINGLE_MAX
|
|
468
|
-
)
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
/**
|
|
473
|
-
* Returns true if the provided value is a single precision float number
|
|
474
|
-
* @param {number} value - Any value to check
|
|
475
|
-
* @returns {boolean} True if the value is a valid single precision float number, else false
|
|
476
|
-
*/
|
|
477
|
-
isSingle (value) {
|
|
478
|
-
if (typeof value === 'number') {
|
|
479
|
-
const absValue = Math.abs(value)
|
|
480
|
-
return absValue === 0 || (absValue >= SINGLE_MIN && absValue <= SINGLE_MAX)
|
|
481
|
-
}
|
|
482
|
-
return false
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
/**
|
|
486
|
-
* Validates value of Edm.Double type.
|
|
487
|
-
* @param {number} value - Edm.Double value
|
|
488
|
-
*/
|
|
489
|
-
validateDouble (value) {
|
|
490
|
-
if (typeof value !== 'number') throw this._valueError(value, 'Edm.Double', 'number value')
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
/**
|
|
494
|
-
* Validates value of Edm.Guid type.
|
|
495
|
-
* @param {string} value - Edm.Guid value
|
|
496
|
-
*/
|
|
497
|
-
validateGuid (value) {
|
|
498
|
-
if (typeof value !== 'string' || !GUID_REG_EXP.test(value)) {
|
|
499
|
-
throw this._valueError(value, 'Edm.Guid', 'string value in the format 8HEXDIG-4HEXDIG-4HEXDIG-4HEXDIG-12HEXDIG')
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* Validates value of Edm.GeographyPoint or Edm.GeometryPoint type.
|
|
505
|
-
* @param {{ type: string, coordinates: number[] }} value the value
|
|
506
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
507
|
-
*/
|
|
508
|
-
validateGeoPoint (value, srid) {
|
|
509
|
-
if (!this._isGeoJsonObject('Point', 'coordinates', value, srid) || !this._isGeoPosition(value.coordinates)) {
|
|
510
|
-
throw this._valueError(
|
|
511
|
-
value,
|
|
512
|
-
'Edm.GeographyPoint or Edm.GeometryPoint',
|
|
513
|
-
'Object with type and coordinates'
|
|
514
|
-
)
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Validates value of Edm.GeographyLineString or Edm.GeometryLineString type.
|
|
520
|
-
* @param {{ type: string, coordinates: Array.<number[]> }} value the value
|
|
521
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
522
|
-
*/
|
|
523
|
-
validateGeoLineString (value, srid) {
|
|
524
|
-
if (
|
|
525
|
-
!this._isGeoJsonObject('LineString', 'coordinates', value, srid) ||
|
|
526
|
-
!value.coordinates.every(this._isGeoPosition, this)
|
|
527
|
-
) {
|
|
528
|
-
throw this._valueError(
|
|
529
|
-
value,
|
|
530
|
-
'Edm.GeographyLineString or Edm.GeometryLineString',
|
|
531
|
-
'Object with type and coordinates'
|
|
532
|
-
)
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
/**
|
|
537
|
-
* Validates value of Edm.GeographyPolygon or Edm.GeometryPolygon type.
|
|
538
|
-
* @param {{ type: string, coordinates: Array.<Array.<number[]>> }} value the value
|
|
539
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
540
|
-
*/
|
|
541
|
-
validateGeoPolygon (value, srid) {
|
|
542
|
-
if (!this._isGeoJsonObject('Polygon', 'coordinates', value, srid) || !this._isGeoPolygon(value.coordinates)) {
|
|
543
|
-
throw this._valueError(
|
|
544
|
-
value,
|
|
545
|
-
'Edm.GeographyPolygon or Edm.GeometryPolygon',
|
|
546
|
-
'Object with type and coordinates'
|
|
547
|
-
)
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
/**
|
|
552
|
-
* Validates value of Edm.GeographyMultiPoint or Edm.GeometryMultiPoint type.
|
|
553
|
-
* @param {{ type: string, coordinates: Array.<number[]> }} value the value
|
|
554
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
555
|
-
*/
|
|
556
|
-
validateGeoMultiPoint (value, srid) {
|
|
557
|
-
if (
|
|
558
|
-
!this._isGeoJsonObject('MultiPoint', 'coordinates', value, srid) ||
|
|
559
|
-
!value.coordinates.every(this._isGeoPosition, this)
|
|
560
|
-
) {
|
|
561
|
-
throw this._valueError(
|
|
562
|
-
value,
|
|
563
|
-
'Edm.GeographyMultiPoint or Edm.GeometryMultiPoint',
|
|
564
|
-
'Object with type and coordinates'
|
|
565
|
-
)
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
/**
|
|
570
|
-
* Validates value of Edm.GeographyMultiLineString or Edm.GeometryMultiLineString type.
|
|
571
|
-
* @param {{ type: string, coordinates: Array.<Array.<number[]>> }} value the value
|
|
572
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
573
|
-
*/
|
|
574
|
-
validateGeoMultiLineString (value, srid) {
|
|
575
|
-
if (
|
|
576
|
-
!this._isGeoJsonObject('MultiLineString', 'coordinates', value, srid) ||
|
|
577
|
-
!value.coordinates.every(linestring => Array.isArray(linestring) && linestring.every(this._isGeoPosition, this))
|
|
578
|
-
) {
|
|
579
|
-
throw this._valueError(
|
|
580
|
-
value,
|
|
581
|
-
'Edm.GeographyMultiLineString or Edm.GeometryMultiLineString',
|
|
582
|
-
'Object with type and coordinates'
|
|
583
|
-
)
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
/**
|
|
588
|
-
* Validates value of Edm.GeographyMultiPolygon or Edm.GeometryMultiPolygon type.
|
|
589
|
-
* @param {{ type: string, coordinates: Array.<Array.<Array.<number[]>>> }} value the value
|
|
590
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
591
|
-
*/
|
|
592
|
-
validateGeoMultiPolygon (value, srid) {
|
|
593
|
-
if (
|
|
594
|
-
!this._isGeoJsonObject('MultiPolygon', 'coordinates', value, srid) ||
|
|
595
|
-
!value.coordinates.every(this._isGeoPolygon, this)
|
|
596
|
-
) {
|
|
597
|
-
throw this._valueError(
|
|
598
|
-
value,
|
|
599
|
-
'Edm.GeographyMultiPolygon or Edm.GeometryMultiPolygon',
|
|
600
|
-
'Object with type and coordinates'
|
|
601
|
-
)
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* Validates value of Edm.GeographyCollection or Edm.GeometryCollection type.
|
|
607
|
-
* @param {{ type: string, geometries: Array.<Object> }} value the value
|
|
608
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
609
|
-
*/
|
|
610
|
-
validateGeoCollection (value, srid) {
|
|
611
|
-
if (
|
|
612
|
-
!this._isGeoJsonObject('GeometryCollection', 'geometries', value, srid) ||
|
|
613
|
-
!value.geometries.every(
|
|
614
|
-
geoObject =>
|
|
615
|
-
(this._isGeoJsonObject('Point', 'coordinates', geoObject) && this._isGeoPosition(geoObject.coordinates)) ||
|
|
616
|
-
(this._isGeoJsonObject('LineString', 'coordinates', geoObject) &&
|
|
617
|
-
geoObject.coordinates.every(this._isGeoPosition, this)) ||
|
|
618
|
-
(this._isGeoJsonObject('Polygon', 'coordinates', geoObject) && this._isGeoPolygon(geoObject.coordinates)) ||
|
|
619
|
-
(this._isGeoJsonObject('MultiPoint', 'coordinates', geoObject) &&
|
|
620
|
-
geoObject.coordinates.every(this._isGeoPosition, this)) ||
|
|
621
|
-
(this._isGeoJsonObject('MultiLineString', 'coordinates', geoObject) &&
|
|
622
|
-
geoObject.coordinates.every(
|
|
623
|
-
linestring => Array.isArray(linestring) && linestring.every(this._isGeoPosition, this)
|
|
624
|
-
)) ||
|
|
625
|
-
(this._isGeoJsonObject('MultiPolygon', 'coordinates', geoObject) &&
|
|
626
|
-
geoObject.coordinates.every(this._isGeoPolygon, this))
|
|
627
|
-
)
|
|
628
|
-
) {
|
|
629
|
-
throw this._valueError(
|
|
630
|
-
value,
|
|
631
|
-
'Edm.GeographyCollection or Edm.GeometryCollection',
|
|
632
|
-
'Object with type and geometries'
|
|
633
|
-
)
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
/**
|
|
638
|
-
* Returns true if the value is a GeoJSON object of the correct type, otherwise false.
|
|
639
|
-
* @param {string} type name of the type
|
|
640
|
-
* @param {string} content the name of the property with content ("coordinates" or "geometries")
|
|
641
|
-
* @param {Object} value the value to be checked
|
|
642
|
-
* @param {?(number|string)} [srid] value of SRID facet
|
|
643
|
-
* @returns {boolean} whether the value is a GeoJSON object of the correct type
|
|
644
|
-
* @private
|
|
645
|
-
*/
|
|
646
|
-
_isGeoJsonObject (type, content, value, srid) {
|
|
647
|
-
return (
|
|
648
|
-
typeof value === 'object' &&
|
|
649
|
-
Object.keys(value).length === (srid === 'variable' ? 3 : 2) &&
|
|
650
|
-
value.type === type &&
|
|
651
|
-
Array.isArray(value[content]) &&
|
|
652
|
-
(srid !== 'variable' ||
|
|
653
|
-
(value.crs &&
|
|
654
|
-
value.crs.type === 'name' &&
|
|
655
|
-
value.crs.properties &&
|
|
656
|
-
typeof value.crs.properties.name === 'string' &&
|
|
657
|
-
GEO_CRS_NAME_REG_EXP.test(value.crs.properties.name)))
|
|
658
|
-
)
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
/**
|
|
662
|
-
* Returns true if the position is a GeoJSON position array, otherwise false.
|
|
663
|
-
* @param {number[]} position the value to be checked
|
|
664
|
-
* @returns {boolean} whether the position is a GeoJSON position array
|
|
665
|
-
* @private
|
|
666
|
-
*/
|
|
667
|
-
_isGeoPosition (position) {
|
|
668
|
-
return (
|
|
669
|
-
Array.isArray(position) &&
|
|
670
|
-
(position.length === 2 || position.length === 3) &&
|
|
671
|
-
typeof position[0] === 'number' &&
|
|
672
|
-
typeof position[1] === 'number' &&
|
|
673
|
-
(position[2] === undefined || typeof position[2] === 'number')
|
|
674
|
-
)
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* Returns true if the value is an array of coordinates for a GeoJSON polygon, otherwise false.
|
|
679
|
-
* @param {Array.<Array.<number[]>>} polygon the value to be checked
|
|
680
|
-
* @returns {boolean} whether the value is an array of coordinates for a GeoJSON polygon
|
|
681
|
-
* @private
|
|
682
|
-
*/
|
|
683
|
-
_isGeoPolygon (polygon) {
|
|
684
|
-
return (
|
|
685
|
-
polygon.length &&
|
|
686
|
-
polygon.every(
|
|
687
|
-
ring =>
|
|
688
|
-
Array.isArray(ring) &&
|
|
689
|
-
ring.length >= 4 &&
|
|
690
|
-
ring.every(this._isGeoPosition, this) &&
|
|
691
|
-
ring[ring.length - 1][0] === ring[0][0] &&
|
|
692
|
-
ring[ring.length - 1][1] === ring[0][1] &&
|
|
693
|
-
ring[ring.length - 1][2] === ring[0][2]
|
|
694
|
-
)
|
|
695
|
-
)
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
/**
|
|
699
|
-
* Validates if the provided ETag value matches the expected format.
|
|
700
|
-
* The value must be a string of allowed characters as described in RFC 7232
|
|
701
|
-
* (see https://tools.ietf.org/html/rfc7232#section-2.3 for details).
|
|
702
|
-
*
|
|
703
|
-
* @param {string} value the provided etag value to validate
|
|
704
|
-
* @returns {string} the provided value
|
|
705
|
-
* @throws {IllegalArgumentError} if the etag value doesn't match the required format
|
|
706
|
-
*/
|
|
707
|
-
validateEtagValue (value) {
|
|
708
|
-
if (value === undefined) throw new IllegalArgumentError('Invalid undefined ETag value')
|
|
709
|
-
if (value === null) throw new IllegalArgumentError('Invalid null ETag value')
|
|
710
|
-
if (typeof value !== 'string') throw new IllegalArgumentError('Invalid ETag value; it must be type of string')
|
|
711
|
-
if (!ETAG_VALUE_REG_EXP.test(value)) throw new IllegalArgumentError('Invalid ETag value')
|
|
712
|
-
|
|
713
|
-
return value
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
/**
|
|
717
|
-
* Returns an error instance describing the failed value validation.
|
|
718
|
-
* @param {?(string|number|boolean|Buffer|Object)} value the wrong value
|
|
719
|
-
* @param {string} typeName the name of the EDM type
|
|
720
|
-
* @param {string} requiredText the text describing the requirements for the value
|
|
721
|
-
* @returns {IllegalArgumentError} the error instance
|
|
722
|
-
* @private
|
|
723
|
-
*/
|
|
724
|
-
_valueError (value, typeName, requiredText) {
|
|
725
|
-
const msg =
|
|
726
|
-
'Invalid value ' +
|
|
727
|
-
(typeName.includes('Geo') ? JSON.stringify(value) : value) +
|
|
728
|
-
' (' +
|
|
729
|
-
typeof value +
|
|
730
|
-
')' +
|
|
731
|
-
(this.property ? ' for property "' + this.property + '"' : '') +
|
|
732
|
-
'. ' +
|
|
733
|
-
'A ' +
|
|
734
|
-
requiredText +
|
|
735
|
-
' must be specified as value for type ' +
|
|
736
|
-
typeName +
|
|
737
|
-
'.'
|
|
738
|
-
|
|
739
|
-
return new IllegalArgumentError(msg)
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
module.exports = ValueValidator
|