@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
|
@@ -1,667 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const cds = require('../../../../../../cds')
|
|
4
|
-
|
|
5
|
-
const EdmTypeKind = require('../edm/EdmType').TypeKind
|
|
6
|
-
const EdmPrimitiveTypeKind = require('../edm/EdmPrimitiveTypeKind')
|
|
7
|
-
const ValueConverter = require('./ValueConverter')
|
|
8
|
-
const ValueValidator = require('../validator/ValueValidator')
|
|
9
|
-
const JsonContentTypeInfo = require('../format/JsonContentTypeInfo')
|
|
10
|
-
const IllegalArgumentError = require('../errors/IllegalArgumentError')
|
|
11
|
-
const { isInvalidBase64string } = require('../../../../../../common/utils/binary')
|
|
12
|
-
|
|
13
|
-
const V2_DATE_TIME_OFFSET_REGEXP = new RegExp('^/Date\\((-?\\d{1,15})(?:(\\+|-)(\\d{4}))?\\)/$')
|
|
14
|
-
const V2_TIME_OF_DAY_REGEXP = new RegExp('^PT(?:(\\d{1,2})H)?(?:(\\d{1,4})M)?(?:(\\d{1,5})(\\.\\d+)?S)?$')
|
|
15
|
-
const V2_DOUBLE_REGEXP = new RegExp('^-?(?:\\d{1,17}|\\d\\.\\d{1,16}(?:[Ee]-?\\d{1,3})?)$')
|
|
16
|
-
|
|
17
|
-
const INTEGER_VALIDATION = new RegExp('^[-+]?\\d{1,10}$')
|
|
18
|
-
const NUMBER = '[-+]?\\d+(?:\\.\\d+)?(?:[Ee][-+]?\\d+)?'
|
|
19
|
-
const NUMBER_VALIDATION = new RegExp('^' + NUMBER + '$')
|
|
20
|
-
|
|
21
|
-
// Definitions for geo well-known-text literals
|
|
22
|
-
const SRID = 'SRID=(\\d{1,8});'
|
|
23
|
-
// A geo position is given by two space-separated numbers, like "1.23 4.56E-1".
|
|
24
|
-
const POSITION = '(?:' + NUMBER + ' ' + NUMBER + ')'
|
|
25
|
-
// A geo line is a comma-separated list of positions, like "1 2,3 4,5 6".
|
|
26
|
-
const LINE = '(?:' + POSITION + '?(?:,' + POSITION + ')*)'
|
|
27
|
-
// A geo multiposition is a comma-separated list of positions, each in parentheses, like "(1 2),(3 4),(5 6)".
|
|
28
|
-
const MULTI_POSITION = '(?:(?:\\(' + POSITION + '\\))?(?:,\\(' + POSITION + '\\))*)'
|
|
29
|
-
// A geo multiline is a comma-separated list of lines, each in parentheses, like "(1 1,2 2),(3 3,4 4)".
|
|
30
|
-
// A geo polygon has exactly the same coordinate representation as a geo multiline.
|
|
31
|
-
const MULTI_LINE = '(?:(?:\\(' + LINE + '\\))?(?:,\\(' + LINE + '\\))*)'
|
|
32
|
-
// A geo multipolygon is a comma-separated list of multilines, each in parentheses, like
|
|
33
|
-
// "((-1 -2,1 -2,1 2,-1 2,-1 -2),(-5 -10,-5 10,5 10,5 -10,-5 -10)),((-1 -2,-3 -4,-5 -6,-1 -2))".
|
|
34
|
-
const MULTI_POLYGON = '(?:(?:\\(' + MULTI_LINE + '\\))?(?:,\\(' + MULTI_LINE + '\\))*)'
|
|
35
|
-
// A geo literal is one of position, line, multiposition, multiline, multipolygon,
|
|
36
|
-
// enclosed in parentheses and prefixed with a type name.
|
|
37
|
-
const GEO_LITERAL =
|
|
38
|
-
'(?:(?:Point\\(' +
|
|
39
|
-
POSITION +
|
|
40
|
-
'\\))' +
|
|
41
|
-
'|(?:LineString\\(' +
|
|
42
|
-
LINE +
|
|
43
|
-
'\\))' +
|
|
44
|
-
'|(?:Polygon\\(' +
|
|
45
|
-
MULTI_LINE +
|
|
46
|
-
'\\))' +
|
|
47
|
-
'|(?:MultiPoint\\(' +
|
|
48
|
-
MULTI_POSITION +
|
|
49
|
-
'\\))' +
|
|
50
|
-
'|(?:MultiLineString\\(' +
|
|
51
|
-
MULTI_LINE +
|
|
52
|
-
'\\))' +
|
|
53
|
-
'|(?:MultiPolygon\\(' +
|
|
54
|
-
MULTI_POLYGON +
|
|
55
|
-
'\\)))'
|
|
56
|
-
// A multigeoliteral (used for a collection) is a comma-separated list of geo literals.
|
|
57
|
-
const MULTI_GEO_LITERAL = '(?:' + GEO_LITERAL + '?(?:,' + GEO_LITERAL + ')*)'
|
|
58
|
-
|
|
59
|
-
// The validation regular expressions for geo literals must be all case-insensitive.
|
|
60
|
-
// They are built as sequence of an SRID definition, a type name, and the coordinates;
|
|
61
|
-
// the coordinates are enclosed in parentheses.
|
|
62
|
-
// Only the coordinates are grouped with a RegExp group; the code below relies on this fact.
|
|
63
|
-
const POINT_VALIDATION = new RegExp('^' + SRID + 'Point\\((' + POSITION + ')\\)$', 'i')
|
|
64
|
-
const LINE_STRING_VALIDATION = new RegExp('^' + SRID + 'LineString\\((' + LINE + ')\\)$', 'i')
|
|
65
|
-
const POLYGON_VALIDATION = new RegExp('^' + SRID + 'Polygon\\((' + MULTI_LINE + ')\\)$', 'i')
|
|
66
|
-
const MULTI_POINT_VALIDATION = new RegExp('^' + SRID + 'MultiPoint\\((' + MULTI_POSITION + ')\\)$', 'i')
|
|
67
|
-
const MULTI_LINE_STRING_VALIDATION = new RegExp('^' + SRID + 'MultiLineString\\((' + MULTI_LINE + ')\\)$', 'i')
|
|
68
|
-
const MULTI_POLYGON_VALIDATION = new RegExp('^' + SRID + 'MultiPolygon\\((' + MULTI_POLYGON + ')\\)$', 'i')
|
|
69
|
-
const COLLECTION_VALIDATION = new RegExp('^' + SRID + 'Collection\\((' + MULTI_GEO_LITERAL + ')\\)$', 'i')
|
|
70
|
-
|
|
71
|
-
function _getBase64(val) {
|
|
72
|
-
if (isInvalidBase64string(val)) return
|
|
73
|
-
// convert url-safe to standard base64
|
|
74
|
-
return Buffer.from(val, 'base64').toString('base64')
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* The primitive-value decoder decodes primitive values, using OData V4 primitive types.
|
|
79
|
-
* The following mapping of V2 and V4 primitive types is assumed:
|
|
80
|
-
* V4 | V2
|
|
81
|
-
* ------------------|------------------
|
|
82
|
-
* Date | DateTime
|
|
83
|
-
* DateTimeOffset | DateTimeOffset
|
|
84
|
-
* Duration | String
|
|
85
|
-
* TimeOfDay | Time
|
|
86
|
-
*/
|
|
87
|
-
class PrimitiveValueDecoder {
|
|
88
|
-
/**
|
|
89
|
-
* Constructor
|
|
90
|
-
* @param {string} [version = '4.0'] the OData version
|
|
91
|
-
*/
|
|
92
|
-
constructor (version = '4.0') {
|
|
93
|
-
this._version = version
|
|
94
|
-
this._formatParameters =
|
|
95
|
-
version === '2.0'
|
|
96
|
-
? new JsonContentTypeInfo().addParameter(JsonContentTypeInfo.FormatParameter.IEEE754, 'true')
|
|
97
|
-
: null
|
|
98
|
-
this._validator = new ValueValidator('decode')
|
|
99
|
-
this._converter = new ValueConverter(this._validator, this._formatParameters)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Set optional JSON formatting parameters.
|
|
104
|
-
* @param {?JsonContentTypeInfo} formatParameters JSON serializing options
|
|
105
|
-
* @returns {PrimitiveValueEncoder} this instance
|
|
106
|
-
*/
|
|
107
|
-
setJsonFormatParameters (formatParameters) {
|
|
108
|
-
this._formatParameters = formatParameters
|
|
109
|
-
this._converter = new ValueConverter(this._validator, formatParameters)
|
|
110
|
-
return this
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Decode an OData JSON representation of a primitive-type value into its JavaScript value.
|
|
115
|
-
* @param {?(string|number|boolean|Object)} value the JSON value
|
|
116
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the EDM property, return type, or term
|
|
117
|
-
* @returns {?(string|number|boolean|Buffer|Object)} the JavaScript value
|
|
118
|
-
*/
|
|
119
|
-
decodeJson (value, propertyOrReturnType) {
|
|
120
|
-
if (value === undefined) throw new IllegalArgumentError('Missing value')
|
|
121
|
-
if (value === null) {
|
|
122
|
-
if (propertyOrReturnType.isNullable()) return null
|
|
123
|
-
throw new IllegalArgumentError(
|
|
124
|
-
'Value ' +
|
|
125
|
-
(propertyOrReturnType.getName ? "for '" + propertyOrReturnType.getName() + "' " : '') +
|
|
126
|
-
'must not be null'
|
|
127
|
-
)
|
|
128
|
-
}
|
|
129
|
-
return this._version === '2.0'
|
|
130
|
-
? this._decodeV2Json(propertyOrReturnType, value)
|
|
131
|
-
: this._decodeV4Json(propertyOrReturnType, value)
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Decode an OData plain-text representation of a primitive-type value into its JavaScript value.
|
|
136
|
-
* @param {string} value the plain-text value
|
|
137
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the EDM property, return type, or term
|
|
138
|
-
* @returns {?(string|number|boolean|Buffer|Object)} the JavaScript value
|
|
139
|
-
*/
|
|
140
|
-
decodeText (value, propertyOrReturnType) {
|
|
141
|
-
if (value === null || value === undefined) throw new IllegalArgumentError('Missing value')
|
|
142
|
-
return this._version === '2.0'
|
|
143
|
-
? this._decodeV2Text(propertyOrReturnType, value)
|
|
144
|
-
: this._decodeV4Text(propertyOrReturnType, value)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Decode an OData V2 JSON representation of a primitive-type value into its JavaScript value.
|
|
149
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the EDM property, return type, or term
|
|
150
|
-
* @param {string|number|boolean} jsonValue the JSON value
|
|
151
|
-
* @returns {string|number|boolean|Buffer} the JavaScript value
|
|
152
|
-
* @private
|
|
153
|
-
*/
|
|
154
|
-
_decodeV2Json (propertyOrReturnType, jsonValue) {
|
|
155
|
-
const type = propertyOrReturnType.getType()
|
|
156
|
-
|
|
157
|
-
if (type === EdmPrimitiveTypeKind.Binary) {
|
|
158
|
-
const val = _getBase64(jsonValue)
|
|
159
|
-
if (!val) throw new IllegalArgumentError('The value for Edm.Binary is not valid base64 content.')
|
|
160
|
-
return val
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
let value = jsonValue
|
|
164
|
-
if (type === EdmPrimitiveTypeKind.Int64 || type === EdmPrimitiveTypeKind.Decimal) {
|
|
165
|
-
if (typeof value !== 'string') {
|
|
166
|
-
throw new IllegalArgumentError(
|
|
167
|
-
'Invalid value ' +
|
|
168
|
-
value +
|
|
169
|
-
' (' +
|
|
170
|
-
typeof value +
|
|
171
|
-
'). ' +
|
|
172
|
-
'A JSON string must be specified as value for type ' +
|
|
173
|
-
type.getFullQualifiedName() +
|
|
174
|
-
'.'
|
|
175
|
-
)
|
|
176
|
-
}
|
|
177
|
-
} else if (type === EdmPrimitiveTypeKind.DateTimeOffset) {
|
|
178
|
-
const match = V2_DATE_TIME_OFFSET_REGEXP.exec(value)
|
|
179
|
-
if (!match) {
|
|
180
|
-
throw new IllegalArgumentError(
|
|
181
|
-
'Invalid value ' +
|
|
182
|
-
value +
|
|
183
|
-
' (' +
|
|
184
|
-
typeof value +
|
|
185
|
-
') ' +
|
|
186
|
-
'as value for type ' +
|
|
187
|
-
type.getFullQualifiedName() +
|
|
188
|
-
'.'
|
|
189
|
-
)
|
|
190
|
-
}
|
|
191
|
-
value = new Date(0)
|
|
192
|
-
value.setUTCMilliseconds(parseInt(match[1], 10))
|
|
193
|
-
value = value.toISOString().replace(new RegExp('\\.?0*Z'), '')
|
|
194
|
-
if (match[2]) {
|
|
195
|
-
const offsetMinutes = parseInt(match[3], 10)
|
|
196
|
-
value +=
|
|
197
|
-
match[2] +
|
|
198
|
-
Math.trunc(offsetMinutes / 600) +
|
|
199
|
-
Math.trunc((offsetMinutes % 600) / 60) +
|
|
200
|
-
':' +
|
|
201
|
-
Math.trunc((offsetMinutes % 60) / 10) +
|
|
202
|
-
(offsetMinutes % 10)
|
|
203
|
-
} else {
|
|
204
|
-
value += 'Z'
|
|
205
|
-
}
|
|
206
|
-
} else if (type === EdmPrimitiveTypeKind.Date) {
|
|
207
|
-
const match = V2_DATE_TIME_OFFSET_REGEXP.exec(value)
|
|
208
|
-
if (!match || parseInt(match[1], 10) % (24 * 60 * 60 * 1000) !== 0) {
|
|
209
|
-
throw new IllegalArgumentError(
|
|
210
|
-
'Invalid value ' +
|
|
211
|
-
value +
|
|
212
|
-
' (' +
|
|
213
|
-
typeof value +
|
|
214
|
-
') ' +
|
|
215
|
-
'as value for type ' +
|
|
216
|
-
type.getFullQualifiedName() +
|
|
217
|
-
'.'
|
|
218
|
-
)
|
|
219
|
-
}
|
|
220
|
-
value = new Date(0)
|
|
221
|
-
value.setUTCMilliseconds(parseInt(match[1], 10))
|
|
222
|
-
value = value.toISOString().substring(0, 10)
|
|
223
|
-
} else if (type === EdmPrimitiveTypeKind.TimeOfDay) {
|
|
224
|
-
const match = V2_TIME_OF_DAY_REGEXP.exec(value)
|
|
225
|
-
if (!match) {
|
|
226
|
-
throw new IllegalArgumentError(
|
|
227
|
-
'Invalid value ' +
|
|
228
|
-
value +
|
|
229
|
-
' (' +
|
|
230
|
-
typeof value +
|
|
231
|
-
') ' +
|
|
232
|
-
'as value for type ' +
|
|
233
|
-
type.getFullQualifiedName() +
|
|
234
|
-
'.'
|
|
235
|
-
)
|
|
236
|
-
}
|
|
237
|
-
value = new Date(0)
|
|
238
|
-
value.setUTCMilliseconds(
|
|
239
|
-
(match[1] ? parseInt(match[1], 10) : 0) * 3600000 +
|
|
240
|
-
(match[2] ? parseInt(match[2], 10) : 0) * 60000 +
|
|
241
|
-
(match[3] ? parseInt(match[3], 10) : 0) * 1000
|
|
242
|
-
)
|
|
243
|
-
// Remove '1970-01-01T' from the front and '.000Z' from the end; add fractional seconds.
|
|
244
|
-
value = value.toISOString().substr(11, 8) + (match[4] || '')
|
|
245
|
-
} else if (type === EdmPrimitiveTypeKind.Single || type === EdmPrimitiveTypeKind.Double) {
|
|
246
|
-
if (typeof value !== 'string') {
|
|
247
|
-
throw new IllegalArgumentError(
|
|
248
|
-
'Invalid value ' +
|
|
249
|
-
value +
|
|
250
|
-
' (' +
|
|
251
|
-
typeof value +
|
|
252
|
-
'). A JSON string must be specified ' +
|
|
253
|
-
'as value for type ' +
|
|
254
|
-
type.getFullQualifiedName() +
|
|
255
|
-
'.'
|
|
256
|
-
)
|
|
257
|
-
}
|
|
258
|
-
if (value === 'INF') return Number.POSITIVE_INFINITY
|
|
259
|
-
if (value === '-INF') return Number.NEGATIVE_INFINITY
|
|
260
|
-
if (value === 'Nan') return Number.NaN
|
|
261
|
-
if (!V2_DOUBLE_REGEXP.test(value)) {
|
|
262
|
-
throw new IllegalArgumentError(
|
|
263
|
-
'Invalid value ' +
|
|
264
|
-
value +
|
|
265
|
-
' (' +
|
|
266
|
-
typeof value +
|
|
267
|
-
') ' +
|
|
268
|
-
'as value for type ' +
|
|
269
|
-
type.getFullQualifiedName() +
|
|
270
|
-
'.'
|
|
271
|
-
)
|
|
272
|
-
}
|
|
273
|
-
value = Number(value)
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// The value converter also asserts maxLength, scale, precision, srid facets.
|
|
277
|
-
return this._converter.convert(propertyOrReturnType, value)
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Decode an OData V4 JSON representation of a primitive-type value into its JavaScript value.
|
|
282
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the EDM property, return type, or term
|
|
283
|
-
* @param {string|number|boolean|Object} value the JSON value
|
|
284
|
-
* @returns {string|number|boolean|Buffer|Object} the JavaScript value
|
|
285
|
-
* @private
|
|
286
|
-
*/
|
|
287
|
-
_decodeV4Json (propertyOrReturnType, value) {
|
|
288
|
-
let type = propertyOrReturnType.getType()
|
|
289
|
-
if (type.getKind() === EdmTypeKind.DEFINITION) type = type.getUnderlyingType()
|
|
290
|
-
|
|
291
|
-
if (type === EdmPrimitiveTypeKind.Stream) {
|
|
292
|
-
throw new IllegalArgumentError('Stream properties do not have a JSON representation.')
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
if (type === EdmPrimitiveTypeKind.Binary) {
|
|
296
|
-
const val = _getBase64(value)
|
|
297
|
-
if (!val) throw new IllegalArgumentError('The value for Edm.Binary is not valid base64 content.')
|
|
298
|
-
return val
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
if (type === EdmPrimitiveTypeKind.Int64 || type === EdmPrimitiveTypeKind.Decimal) {
|
|
302
|
-
if (cds.env.features.strict_numbers) {
|
|
303
|
-
const kind = this._formatParameters.getIEEE754Setting() ? 'string' : 'number'
|
|
304
|
-
// We don't allow JSON numbers as decimal values because there is no way to tell how
|
|
305
|
-
// they looked like originally; JSON.parse() rounds all numbers to 64-bit floating-point numbers.
|
|
306
|
-
if (type === EdmPrimitiveTypeKind.Decimal && kind === 'number') {
|
|
307
|
-
throw new IllegalArgumentError('A JSON number is not supported as Edm.Decimal value.')
|
|
308
|
-
}
|
|
309
|
-
// eslint-disable-next-line valid-typeof
|
|
310
|
-
if (kind !== typeof value) {
|
|
311
|
-
throw new IllegalArgumentError(
|
|
312
|
-
'Invalid value ' +
|
|
313
|
-
value +
|
|
314
|
-
' (' +
|
|
315
|
-
typeof value +
|
|
316
|
-
'). A JSON ' +
|
|
317
|
-
kind +
|
|
318
|
-
' must be specified as value.'
|
|
319
|
-
)
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
return String(this._converter.convert(propertyOrReturnType, value))
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
if (type.getKind() === EdmTypeKind.ENUM) {
|
|
326
|
-
if (typeof value !== 'string') {
|
|
327
|
-
throw new IllegalArgumentError('A JSON string must be specified as value for an enumeration type.')
|
|
328
|
-
}
|
|
329
|
-
let enumValue = null
|
|
330
|
-
for (const flagValue of value.split(',')) {
|
|
331
|
-
let memberValue = null
|
|
332
|
-
for (const [name, member] of type.getMembers()) {
|
|
333
|
-
if (flagValue === name || flagValue === member.getValue().toString()) {
|
|
334
|
-
memberValue = member.getValue()
|
|
335
|
-
break
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
if (memberValue === null || (enumValue !== null && !type.isFlags())) {
|
|
339
|
-
throw new IllegalArgumentError(
|
|
340
|
-
'Invalid value ' +
|
|
341
|
-
value +
|
|
342
|
-
' (' +
|
|
343
|
-
typeof value +
|
|
344
|
-
') for enumeration type ' +
|
|
345
|
-
type.getFullQualifiedName() +
|
|
346
|
-
'.'
|
|
347
|
-
)
|
|
348
|
-
}
|
|
349
|
-
// Use bitwise OR operator to set the member-value bits in the enumeration value.
|
|
350
|
-
enumValue = enumValue === null ? memberValue : enumValue | memberValue
|
|
351
|
-
}
|
|
352
|
-
return enumValue
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
// The value converter also asserts maxLength, scale, precision, srid facets.
|
|
356
|
-
return this._converter.convert(propertyOrReturnType, value)
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
/**
|
|
360
|
-
* Decode an OData V4 plain-text representation of a primitive-type value into its JavaScript value.
|
|
361
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the EDM property, return type, or term
|
|
362
|
-
* @param {string} valueString the string value of the EDM property or of the return type
|
|
363
|
-
* @returns {string|number|boolean|Buffer|Object} the JavaScript value
|
|
364
|
-
* @private
|
|
365
|
-
*/
|
|
366
|
-
_decodeV4Text (propertyOrReturnType, valueString) {
|
|
367
|
-
let type = propertyOrReturnType.getType()
|
|
368
|
-
if (type.getKind() === EdmTypeKind.DEFINITION) type = type.getUnderlyingType()
|
|
369
|
-
|
|
370
|
-
if (type === EdmPrimitiveTypeKind.Binary) {
|
|
371
|
-
const val = _getBase64(valueString)
|
|
372
|
-
if (!val) throw new IllegalArgumentError('The value for Edm.Binary is not valid base64 content.')
|
|
373
|
-
return val
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
let decoded
|
|
377
|
-
let value
|
|
378
|
-
switch (type) {
|
|
379
|
-
case EdmPrimitiveTypeKind.Boolean:
|
|
380
|
-
if (valueString === 'true') value = true
|
|
381
|
-
if (valueString === 'false') value = false
|
|
382
|
-
break
|
|
383
|
-
|
|
384
|
-
case EdmPrimitiveTypeKind.Int16:
|
|
385
|
-
case EdmPrimitiveTypeKind.Int32:
|
|
386
|
-
case EdmPrimitiveTypeKind.Byte:
|
|
387
|
-
case EdmPrimitiveTypeKind.SByte:
|
|
388
|
-
if (!INTEGER_VALIDATION.test(valueString)) {
|
|
389
|
-
throw new IllegalArgumentError(
|
|
390
|
-
'Wrong value' + (propertyOrReturnType.getName ? " for '" + propertyOrReturnType.getName() + "'" : '')
|
|
391
|
-
)
|
|
392
|
-
}
|
|
393
|
-
value = Number(valueString)
|
|
394
|
-
break
|
|
395
|
-
|
|
396
|
-
case EdmPrimitiveTypeKind.Single:
|
|
397
|
-
case EdmPrimitiveTypeKind.Double:
|
|
398
|
-
if (valueString === 'NaN') return Number.NaN
|
|
399
|
-
if (valueString === '-INF') return Number.NEGATIVE_INFINITY
|
|
400
|
-
if (valueString === 'INF') return Number.POSITIVE_INFINITY
|
|
401
|
-
if (!NUMBER_VALIDATION.test(valueString)) {
|
|
402
|
-
throw new IllegalArgumentError(
|
|
403
|
-
'Wrong value' + (propertyOrReturnType.getName ? " for '" + propertyOrReturnType.getName() + "'" : '')
|
|
404
|
-
)
|
|
405
|
-
}
|
|
406
|
-
value = Number(valueString)
|
|
407
|
-
break
|
|
408
|
-
|
|
409
|
-
case EdmPrimitiveTypeKind.GeographyPoint:
|
|
410
|
-
case EdmPrimitiveTypeKind.GeometryPoint:
|
|
411
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, POINT_VALIDATION)
|
|
412
|
-
value = this._decodePoint(decoded.values)
|
|
413
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
414
|
-
break
|
|
415
|
-
|
|
416
|
-
case EdmPrimitiveTypeKind.GeographyLineString:
|
|
417
|
-
case EdmPrimitiveTypeKind.GeometryLineString:
|
|
418
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, LINE_STRING_VALIDATION)
|
|
419
|
-
value = this._decodeLineString(decoded.values)
|
|
420
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
421
|
-
break
|
|
422
|
-
|
|
423
|
-
case EdmPrimitiveTypeKind.GeographyPolygon:
|
|
424
|
-
case EdmPrimitiveTypeKind.GeometryPolygon:
|
|
425
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, POLYGON_VALIDATION)
|
|
426
|
-
value = this._decodePolygon(decoded.values)
|
|
427
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
428
|
-
break
|
|
429
|
-
|
|
430
|
-
case EdmPrimitiveTypeKind.GeographyMultiPoint:
|
|
431
|
-
case EdmPrimitiveTypeKind.GeometryMultiPoint:
|
|
432
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, MULTI_POINT_VALIDATION)
|
|
433
|
-
value = this._decodeMultiPoint(decoded.values)
|
|
434
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
435
|
-
break
|
|
436
|
-
|
|
437
|
-
case EdmPrimitiveTypeKind.GeographyMultiLineString:
|
|
438
|
-
case EdmPrimitiveTypeKind.GeometryMultiLineString:
|
|
439
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, MULTI_LINE_STRING_VALIDATION)
|
|
440
|
-
value = this._decodeMultiLineString(decoded.values)
|
|
441
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
442
|
-
break
|
|
443
|
-
|
|
444
|
-
case EdmPrimitiveTypeKind.GeographyMultiPolygon:
|
|
445
|
-
case EdmPrimitiveTypeKind.GeometryMultiPolygon:
|
|
446
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, MULTI_POLYGON_VALIDATION)
|
|
447
|
-
value = this._decodeMultiPolygon(decoded.values)
|
|
448
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
449
|
-
break
|
|
450
|
-
|
|
451
|
-
case EdmPrimitiveTypeKind.GeographyCollection:
|
|
452
|
-
case EdmPrimitiveTypeKind.GeometryCollection:
|
|
453
|
-
decoded = this._decodeGeoValue(propertyOrReturnType, valueString, COLLECTION_VALIDATION)
|
|
454
|
-
value = { type: 'GeometryCollection' }
|
|
455
|
-
// Split at commas that are followed by first letters of type names.
|
|
456
|
-
value.geometries = decoded.values.split(/,(?=[LMP])/i).map(geoLiteral => {
|
|
457
|
-
const content = geoLiteral.slice(geoLiteral.indexOf('(') + 1, -1)
|
|
458
|
-
if (/^Point/i.test(geoLiteral)) return this._decodePoint(content)
|
|
459
|
-
if (/^LineString/i.test(geoLiteral)) return this._decodeLineString(content)
|
|
460
|
-
if (/^Polygon/i.test(geoLiteral)) return this._decodePolygon(content)
|
|
461
|
-
if (/^MultiPoint/i.test(geoLiteral)) return this._decodeMultiPoint(content)
|
|
462
|
-
if (/^MultiLineString/i.test(geoLiteral)) return this._decodeMultiLineString(content)
|
|
463
|
-
if (/^MultiPolygon/i.test(geoLiteral)) return this._decodeMultiPolygon(content)
|
|
464
|
-
throw new IllegalArgumentError('Unknown content in geometry collection ' + geoLiteral)
|
|
465
|
-
})
|
|
466
|
-
if (decoded.crs) value.crs = decoded.crs
|
|
467
|
-
break
|
|
468
|
-
|
|
469
|
-
default:
|
|
470
|
-
value = valueString
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
// The value converter asserts maxLength, scale, precision facets and performs additional checks for geo types.
|
|
474
|
-
try {
|
|
475
|
-
// The input is a string, so the parameter to expect the format according to IEEE754
|
|
476
|
-
// can be set unconditionally. This is needed, e.g., for large Int64 values.
|
|
477
|
-
return new ValueConverter(
|
|
478
|
-
this._validator,
|
|
479
|
-
new JsonContentTypeInfo().addParameter(JsonContentTypeInfo.FormatParameter.IEEE754, 'true')
|
|
480
|
-
).convert(propertyOrReturnType, value)
|
|
481
|
-
} catch (error) {
|
|
482
|
-
throw new IllegalArgumentError(
|
|
483
|
-
'Wrong value' + (propertyOrReturnType.getName ? " for '" + propertyOrReturnType.getName() + "'" : ''),
|
|
484
|
-
error
|
|
485
|
-
)
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
/**
|
|
490
|
-
* Decode an OData V2 plain-text representation of a primitive-type value into its JavaScript value.
|
|
491
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the EDM property, return type, or term
|
|
492
|
-
* @param {string} valueString the string value of the EDM property or of the return type
|
|
493
|
-
* @returns {string|number|boolean|Buffer} the JavaScript value
|
|
494
|
-
* @private
|
|
495
|
-
*/
|
|
496
|
-
_decodeV2Text (propertyOrReturnType, valueString) {
|
|
497
|
-
switch (propertyOrReturnType.getType()) {
|
|
498
|
-
case EdmPrimitiveTypeKind.Single:
|
|
499
|
-
case EdmPrimitiveTypeKind.Double:
|
|
500
|
-
if (valueString === 'Nan') return Number.NaN
|
|
501
|
-
if (valueString === 'NaN') {
|
|
502
|
-
throw new IllegalArgumentError(
|
|
503
|
-
'Wrong value' + (propertyOrReturnType.getName ? " for '" + propertyOrReturnType.getName() + "'" : '')
|
|
504
|
-
)
|
|
505
|
-
}
|
|
506
|
-
return this._decodeV4Text(propertyOrReturnType, valueString) // This also checks the value.
|
|
507
|
-
|
|
508
|
-
case EdmPrimitiveTypeKind.Date:
|
|
509
|
-
return this._decodeV4Text(
|
|
510
|
-
propertyOrReturnType, // This also checks the value.
|
|
511
|
-
valueString.endsWith('T00:00:00') ? valueString.substring(0, valueString.length - 9) : valueString
|
|
512
|
-
)
|
|
513
|
-
|
|
514
|
-
case EdmPrimitiveTypeKind.TimeOfDay: {
|
|
515
|
-
this._validator.validateDuration(valueString, propertyOrReturnType.getPrecision())
|
|
516
|
-
if (!valueString.startsWith('PT')) {
|
|
517
|
-
throw new IllegalArgumentError(
|
|
518
|
-
'Wrong value' + (propertyOrReturnType.getName ? " for '" + propertyOrReturnType.getName() + "'" : '')
|
|
519
|
-
)
|
|
520
|
-
}
|
|
521
|
-
const result =
|
|
522
|
-
valueString.substring(2, valueString.indexOf('H')) +
|
|
523
|
-
':' +
|
|
524
|
-
valueString.substring(valueString.indexOf('H') + 1, valueString.indexOf('M')) +
|
|
525
|
-
':' +
|
|
526
|
-
valueString.substring(valueString.indexOf('M') + 1, valueString.indexOf('S'))
|
|
527
|
-
this._validator.validateTimeOfDay(result, propertyOrReturnType.getPrecision())
|
|
528
|
-
return result
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
default:
|
|
532
|
-
return this._decodeV4Text(propertyOrReturnType, valueString) // This also checks the value.
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
/**
|
|
537
|
-
* Decodes a geo value.
|
|
538
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType the corresponding EDM property or return type
|
|
539
|
-
* @param {string} valueString the string value of the EDM property or of the return type
|
|
540
|
-
* @param {RegExp} validationRegExp regular expression that must match
|
|
541
|
-
* @returns {{ values: string, crs: ?Object }} a JavaScript object with values as string and CRS information
|
|
542
|
-
* @throws {IllegalArgumentError} if parsing was not successful
|
|
543
|
-
* @private
|
|
544
|
-
*/
|
|
545
|
-
_decodeGeoValue (propertyOrReturnType, valueString, validationRegExp) {
|
|
546
|
-
const edmSrid = this._determineSrid(propertyOrReturnType)
|
|
547
|
-
const match = validationRegExp.exec(valueString)
|
|
548
|
-
if (match && (edmSrid === 'variable' || match[1] === String(edmSrid))) {
|
|
549
|
-
let value = { values: match[2] }
|
|
550
|
-
if (edmSrid === 'variable') value.crs = { type: 'name', properties: { name: 'EPSG:' + match[1] } }
|
|
551
|
-
return value
|
|
552
|
-
}
|
|
553
|
-
throw new IllegalArgumentError(
|
|
554
|
-
'Wrong value' + (propertyOrReturnType.getName ? " for '" + propertyOrReturnType.getName() + "'" : '')
|
|
555
|
-
)
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
/**
|
|
559
|
-
* Returns value of the SRID facet or the default value (4326 for geography, 0 for geometry).
|
|
560
|
-
* If the specified type is a TypeDefinition, then take also the type definition's facet into account.
|
|
561
|
-
*
|
|
562
|
-
* @param {EdmProperty|EdmReturnType|EdmTerm} propertyOrReturnType object containing SRID facet
|
|
563
|
-
* @returns {?(number|string)} value of SRID facet
|
|
564
|
-
* @private
|
|
565
|
-
*/
|
|
566
|
-
_determineSrid (propertyOrReturnType) {
|
|
567
|
-
let srid = propertyOrReturnType.getSrid()
|
|
568
|
-
let type = propertyOrReturnType.getType()
|
|
569
|
-
if (srid === null && type.getKind() === EdmTypeKind.DEFINITION) {
|
|
570
|
-
srid = type.getSrid()
|
|
571
|
-
type = type.getUnderlyingType()
|
|
572
|
-
}
|
|
573
|
-
if (srid === null) srid = type.getName().startsWith('Geography') ? 4326 : 0
|
|
574
|
-
return srid
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* Decodes point values into a GeoJSON point object.
|
|
579
|
-
* @param {string} content point values in well-known text format
|
|
580
|
-
* @returns {{ type: string, coordinates: number[] }} a GeoJSON point object
|
|
581
|
-
* @private
|
|
582
|
-
*/
|
|
583
|
-
_decodePoint (content) {
|
|
584
|
-
return { type: 'Point', coordinates: content.split(' ').map(Number) }
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
/**
|
|
588
|
-
* Decodes linestring values into a GeoJSON linestring object.
|
|
589
|
-
* @param {string} content linestring values in well-known text format
|
|
590
|
-
* @returns {{ type: string, coordinates: Array.<number[]> }} a GeoJSON linestring object
|
|
591
|
-
* @private
|
|
592
|
-
*/
|
|
593
|
-
_decodeLineString (content) {
|
|
594
|
-
return {
|
|
595
|
-
type: 'LineString',
|
|
596
|
-
coordinates: content.split(',').map(position => position.split(' ').map(Number))
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
/**
|
|
601
|
-
* Decodes polygon values into a GeoJSON polygon object.
|
|
602
|
-
* @param {string} content polygon values in well-known text format
|
|
603
|
-
* @returns {{ type: string, coordinates: Array.<Array.<number[]>> }} a GeoJSON polygon object
|
|
604
|
-
* @private
|
|
605
|
-
*/
|
|
606
|
-
_decodePolygon (content) {
|
|
607
|
-
return {
|
|
608
|
-
type: 'Polygon',
|
|
609
|
-
coordinates: content
|
|
610
|
-
.slice(1, -1)
|
|
611
|
-
.split('),(')
|
|
612
|
-
.map(ring => ring.split(',').map(position => position.split(' ').map(Number)))
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
/**
|
|
617
|
-
* Decodes multipoint values into a GeoJSON multipoint object.
|
|
618
|
-
* @param {string} content multipoint values in well-known text format
|
|
619
|
-
* @returns {{ type: string, coordinates: Array.<number[]> }} a GeoJSON multipoint object
|
|
620
|
-
* @private
|
|
621
|
-
*/
|
|
622
|
-
_decodeMultiPoint (content) {
|
|
623
|
-
return {
|
|
624
|
-
type: 'MultiPoint',
|
|
625
|
-
coordinates: content
|
|
626
|
-
.slice(1, -1)
|
|
627
|
-
.split('),(')
|
|
628
|
-
.map(position => position.split(' ').map(Number))
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
/**
|
|
633
|
-
* Decodes multilinestring values into a GeoJSON multilinestring object.
|
|
634
|
-
* @param {string} content multilinestring values in well-known text format
|
|
635
|
-
* @returns {{ type: string, coordinates: Array.<Array.<number[]>> }} a GeoJSON multilinestring object
|
|
636
|
-
* @private
|
|
637
|
-
*/
|
|
638
|
-
_decodeMultiLineString (content) {
|
|
639
|
-
return {
|
|
640
|
-
type: 'MultiLineString',
|
|
641
|
-
coordinates: content
|
|
642
|
-
.slice(1, -1)
|
|
643
|
-
.split('),(')
|
|
644
|
-
.map(line => line.split(',').map(position => position.split(' ').map(Number)))
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* Decodes multipolygon values into a GeoJSON multipolygon object.
|
|
650
|
-
* @param {string} content multipolygon values in well-known text format
|
|
651
|
-
* @returns {{ type: string, coordinates: Array.<Array.<Array.<number[]>>> }} a GeoJSON multipolygon object
|
|
652
|
-
* @private
|
|
653
|
-
*/
|
|
654
|
-
_decodeMultiPolygon (content) {
|
|
655
|
-
return {
|
|
656
|
-
type: 'MultiPolygon',
|
|
657
|
-
coordinates: content
|
|
658
|
-
.slice(2, -2)
|
|
659
|
-
.split(')),((')
|
|
660
|
-
.map(polygon =>
|
|
661
|
-
polygon.split('),(').map(line => line.split(',').map(position => position.split(' ').map(Number)))
|
|
662
|
-
)
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
module.exports = PrimitiveValueDecoder
|