@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-server/batch/BatchExitHandler.js
DELETED
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const commons = require('../../odata-commons')
|
|
4
|
-
|
|
5
|
-
const ComponentManager = require('../core/ComponentManager')
|
|
6
|
-
const ContentTypes = commons.format.ContentTypeInfo.ContentTypes
|
|
7
|
-
const PlainHttpResponse = require('../core/PlainHttpResponse')
|
|
8
|
-
const RepresentationKinds = commons.format.RepresentationKind.Kinds
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Class containing methods to handle application exit handlers.
|
|
12
|
-
* @hideconstructor
|
|
13
|
-
*/
|
|
14
|
-
class BatchExitHandler {
|
|
15
|
-
/**
|
|
16
|
-
* Call the batch-start handler.
|
|
17
|
-
* @param {Function} handler the handler function
|
|
18
|
-
* @param {BatchContext} batchContext Batch context
|
|
19
|
-
* @param {Object} data the custom application data
|
|
20
|
-
* @returns {Promise} a promise
|
|
21
|
-
*/
|
|
22
|
-
static handleBatchStart (handler, batchContext, data) {
|
|
23
|
-
return new Promise((resolve, reject) => {
|
|
24
|
-
try {
|
|
25
|
-
handler({ applicationData: data }, error => {
|
|
26
|
-
if (error) {
|
|
27
|
-
batchContext.setFrameworkError(error)
|
|
28
|
-
return reject(error)
|
|
29
|
-
}
|
|
30
|
-
return resolve()
|
|
31
|
-
})
|
|
32
|
-
} catch (error) {
|
|
33
|
-
batchContext.setFrameworkError(error)
|
|
34
|
-
reject(error)
|
|
35
|
-
}
|
|
36
|
-
})
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Call the batch-end handler.
|
|
41
|
-
* @param {Function} handler the handler function
|
|
42
|
-
* @param {BatchContext} batchContext Batch context
|
|
43
|
-
* @param {Error} error a previously occurred error
|
|
44
|
-
* @param {Object} data the custom application data
|
|
45
|
-
* @param {BatchErrorInfo[]} failedRequests batched requests with an error status code
|
|
46
|
-
* @returns {Promise} a promise
|
|
47
|
-
*/
|
|
48
|
-
static handleBatchEnd (handler, batchContext, error, data, failedRequests) {
|
|
49
|
-
return new Promise((resolve, reject) => {
|
|
50
|
-
try {
|
|
51
|
-
handler(error, { applicationData: data, failedRequests: failedRequests }, applicationError => {
|
|
52
|
-
if (applicationError || error) {
|
|
53
|
-
batchContext.setFrameworkError(applicationError || error)
|
|
54
|
-
return reject(applicationError || error)
|
|
55
|
-
}
|
|
56
|
-
return resolve()
|
|
57
|
-
})
|
|
58
|
-
} catch (applicationError) {
|
|
59
|
-
batchContext.setFrameworkError(error)
|
|
60
|
-
reject(applicationError)
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Call the atomicity-group-start handler.
|
|
67
|
-
* @param {Function} handler the handler function
|
|
68
|
-
* @param {Object} data the custom application data
|
|
69
|
-
* @param {string} id atomicity-group ID
|
|
70
|
-
* @returns {Promise} a promise
|
|
71
|
-
*/
|
|
72
|
-
static handleGroupStart (handler, data, id) {
|
|
73
|
-
return new Promise((resolve, reject) => {
|
|
74
|
-
try {
|
|
75
|
-
handler({ applicationData: data, id: id }, error => (error ? reject(error) : resolve()))
|
|
76
|
-
} catch (applicationError) {
|
|
77
|
-
reject(applicationError)
|
|
78
|
-
}
|
|
79
|
-
})
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Overwrites some responses of an atomicity group with an given error message
|
|
84
|
-
* @param {BatchContext} batchContext Batch context
|
|
85
|
-
* @param {Array<string>} options Options object
|
|
86
|
-
* @param {Array<string>} options.failedRequests Request ids of requests to be overwritten
|
|
87
|
-
* @param {string} atomicityGroupId Atomicity group id
|
|
88
|
-
* @param {Error}applicationError Application error, e.g the root causes might be an additional constrains check which triggers an rollback
|
|
89
|
-
*/
|
|
90
|
-
static handleApplicationError (batchContext, options, atomicityGroupId, applicationError) {
|
|
91
|
-
const negotiator = batchContext._incomingODataRequest._service._componentManager.getComponent(
|
|
92
|
-
ComponentManager.Components.CONTENT_NEGOTIATOR
|
|
93
|
-
)
|
|
94
|
-
for (const req of batchContext._requests) {
|
|
95
|
-
if (req.getAtomicityGroupId() === atomicityGroupId) {
|
|
96
|
-
const requestId = req.getOdataRequestId()
|
|
97
|
-
const response = batchContext.getResponses().get(requestId)
|
|
98
|
-
// override error response
|
|
99
|
-
|
|
100
|
-
if (options && requestId in options.failedRequests) {
|
|
101
|
-
// root causes which lead to the rollback (e.g. due to additional constrains check)
|
|
102
|
-
const incomingResponse = new PlainHttpResponse()
|
|
103
|
-
response.setInResponse(incomingResponse)
|
|
104
|
-
const contentTypeInfo = negotiator.negotiateContentType(
|
|
105
|
-
batchContext._incomingODataRequest._service._formatManager,
|
|
106
|
-
RepresentationKinds.ERROR,
|
|
107
|
-
ContentTypes.JSON
|
|
108
|
-
)
|
|
109
|
-
const serializer = contentTypeInfo.getSerializerFunction()
|
|
110
|
-
|
|
111
|
-
serializer(
|
|
112
|
-
options.failedRequests[requestId],
|
|
113
|
-
null,
|
|
114
|
-
// eslint-disable-next-line handle-callback-err
|
|
115
|
-
(error, payload) => {
|
|
116
|
-
incomingResponse.setHeader('content-type', ContentTypes.JSON)
|
|
117
|
-
|
|
118
|
-
incomingResponse.write(payload, 'utf8')
|
|
119
|
-
incomingResponse.statusCode = options.failedRequests[requestId].statusCode
|
|
120
|
-
}
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
// set response options.failedRequests[requestId]
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// mark request as failed in atomicity group
|
|
127
|
-
batchContext.markRequestAsFailed(requestId, req, response, applicationError)
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Call the atomicity-group-end handler.
|
|
134
|
-
* @param {Function} handler the handler function
|
|
135
|
-
* @param {BatchContext} batchContext Batch context
|
|
136
|
-
* @param {Object} data the custom application data
|
|
137
|
-
* @param {string} id Atomicity group id
|
|
138
|
-
* @returns {Promise.<boolean>} a promise resolving to true if the group has to be repeated, otherwise to false
|
|
139
|
-
*/
|
|
140
|
-
static handleGroupEnd (handler, batchContext, data, id) {
|
|
141
|
-
const atomicityGroupError = batchContext.getFailedAtomicityGroups().get(id)
|
|
142
|
-
const failedRequests = batchContext.getFailedRequestsOfAtomicityGroup(id)
|
|
143
|
-
return new Promise((resolve, reject) => {
|
|
144
|
-
try {
|
|
145
|
-
handler(
|
|
146
|
-
atomicityGroupError,
|
|
147
|
-
{ applicationData: data, failedRequests: failedRequests, id: id },
|
|
148
|
-
(applicationError, options) => {
|
|
149
|
-
if (options && options.repeat) {
|
|
150
|
-
resolve(true)
|
|
151
|
-
} else if (applicationError) {
|
|
152
|
-
// mark als responses of atomicity group as error
|
|
153
|
-
BatchExitHandler.handleApplicationError(batchContext, options, id, applicationError)
|
|
154
|
-
resolve(false)
|
|
155
|
-
} else if (atomicityGroupError) {
|
|
156
|
-
reject(atomicityGroupError)
|
|
157
|
-
} else {
|
|
158
|
-
resolve(false)
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
)
|
|
162
|
-
} catch (applicationError) {
|
|
163
|
-
reject(applicationError)
|
|
164
|
-
}
|
|
165
|
-
})
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* @callback BatchExitHandler~next
|
|
171
|
-
*/
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* The BatchStartHandler can be registered for batch processing,
|
|
175
|
-
* it is called before the processing of batched requests starts.
|
|
176
|
-
* - If the application returns or throws an error to the {@see BatchExitHandler~next} callback
|
|
177
|
-
* no batched request is executed and the BatchEndHandler {@see BatchEndHandler} is called with that error.
|
|
178
|
-
*
|
|
179
|
-
* @callback BatchStartHandler
|
|
180
|
-
* @memberOf BatchExitHandler
|
|
181
|
-
* @param {Object} context
|
|
182
|
-
* @param {string} context.applicationData Application data, can be set on the OdataRequest via setApplicationData(...), e.g. within the request event of the $batch request
|
|
183
|
-
* @param {BatchExitHandler~next} done - Callback to be called after transaction start
|
|
184
|
-
*/
|
|
185
|
-
BatchExitHandler.BATCH_START = 'batch-start'
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* The BatchEndHandler can be registered for batch processing, it is called after the batched requests are executed.
|
|
189
|
-
* - If the application returns or throws an error to the {@see BatchExitHandler~next} callback this error triggers the
|
|
190
|
-
* error handling of the incoming HTTP request.
|
|
191
|
-
*
|
|
192
|
-
* @callback BatchEndHandler
|
|
193
|
-
* @memberOf BatchExitHandler
|
|
194
|
-
* @param {Error} error Error object which is set in case of runtime errors and errors in previous exit handlers, but
|
|
195
|
-
* not case of failed batched requests (whose error message is caught and written to a batched response)
|
|
196
|
-
* @param {Object} context
|
|
197
|
-
* @param {string} context.applicationData Application data, can be set on the OdataRequest via setApplicationData(...), e.g. within the request event
|
|
198
|
-
* @param {BatchErrorInfo[]} context.failedRequests List of batched requests which returned with an error status code
|
|
199
|
-
* @param {BatchExitHandler~next} done - Callback to be called after transaction start
|
|
200
|
-
*/
|
|
201
|
-
BatchExitHandler.BATCH_END = 'batch-end'
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* The AtomicityGroupStartHandler can be registered for batch processing, it is called before the first request of an
|
|
205
|
-
* atomicity group /change set is processed.
|
|
206
|
-
* - If the application returns or throws an error to the {@see BatchExitHandler~next} callback
|
|
207
|
-
* the atomicity group is marked as not executed and further batched requests are executed if continue-on-error is true.
|
|
208
|
-
* This error is also forwarded to the {@see AtomicityGroupEndHandler} handler.
|
|
209
|
-
*
|
|
210
|
-
* @callback AtomicityGroupStartHandler
|
|
211
|
-
* @memberOf BatchExitHandler
|
|
212
|
-
* @param {Object} context
|
|
213
|
-
* @param {string} context.applicationData Application data, can be set on the OdataRequest via setApplicationData(...), e.g. within the request event
|
|
214
|
-
* @param {string} context.id Atomicity group id
|
|
215
|
-
* @param {BatchExitHandler~next} done - Callback to be called after transaction start
|
|
216
|
-
*/
|
|
217
|
-
BatchExitHandler.ATOMICITY_GROUP_START = 'atomicity-group-start'
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* The AtomicityGroupEndHandler can be registered for batch processing it is called after all batched requests of an
|
|
221
|
-
* atomicity group / change set are processed
|
|
222
|
-
* - If the application returns or throws an error to the BatchExitHandler~next callback
|
|
223
|
-
* the atomicity group is marked as not executed and further batched requests are executed if continue-on-error is true.
|
|
224
|
-
* - AtomicityGroupEndHandler is called in both cases, error and non error.
|
|
225
|
-
*
|
|
226
|
-
* @callback AtomicityGroupEndHandler
|
|
227
|
-
* @memberOf BatchExitHandler
|
|
228
|
-
* @param {Error} error Error object which is set in case of runtime errors and errors in previous exit handlers, but
|
|
229
|
-
* not case of failed batched requests (whose error message is catched and written to a batched response)
|
|
230
|
-
* @param {Object} context
|
|
231
|
-
* @param {string} context.applicationData Application data, can be set on the OdataRequest via setApplicationData(...), e.g. within the request event
|
|
232
|
-
* @param {Error[]} context.failedRequests List of batch requests which failed and whose error message is written to a batched response. This list
|
|
233
|
-
* may be used to implement some kind of transaction handling
|
|
234
|
-
* @param {string} context.id Atomicity group id
|
|
235
|
-
* @param {BatchExitHandler~next} done - Callback to be called after transaction start
|
|
236
|
-
*/
|
|
237
|
-
BatchExitHandler.ATOMICITY_GROUP_END = 'atomicity-group-end'
|
|
238
|
-
|
|
239
|
-
module.exports = BatchExitHandler
|
package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchProcessor.js
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const commons = require('../../odata-commons')
|
|
4
|
-
const HttpStatusCode = commons.http.HttpStatusCode
|
|
5
|
-
const HttpStatusCodes = HttpStatusCode.StatusCodes
|
|
6
|
-
const HttpStatusCodesText = HttpStatusCode.Texts
|
|
7
|
-
const OdataResponseInBatch = require('../core/OdataResponseInBatch')
|
|
8
|
-
const PlainHttpResponse = require('../core/PlainHttpResponse')
|
|
9
|
-
const BatchExitHandler = require('./BatchExitHandler')
|
|
10
|
-
const BatchedRequestExecutor = require('./BatchedRequestExecutor')
|
|
11
|
-
const BatchContext = require('./BatchContext')
|
|
12
|
-
const cds = require('../../../../../../cds')
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The BatchProcessor executes the batched requests and handles possible errors.
|
|
16
|
-
* The error handling respects the $batch error specifications.
|
|
17
|
-
*/
|
|
18
|
-
class BatchProcessor {
|
|
19
|
-
/**
|
|
20
|
-
* Creates an instance of BatchProcessor.
|
|
21
|
-
* @param {BatchContext} batchContext the batch context
|
|
22
|
-
*/
|
|
23
|
-
constructor (batchContext) {
|
|
24
|
-
/**
|
|
25
|
-
* Batch context
|
|
26
|
-
* @type {BatchContext}
|
|
27
|
-
* @private
|
|
28
|
-
*/
|
|
29
|
-
this._batchContext = batchContext
|
|
30
|
-
|
|
31
|
-
this._logger = batchContext.getRequest().getLogger()
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Process the requests contained in the batch request.
|
|
36
|
-
* @returns {Promise} the overall result
|
|
37
|
-
*/
|
|
38
|
-
process () {
|
|
39
|
-
if(cds.env.odata.batch_limit < this._batchContext.getRequestList().length) return Promise.reject({statusCode: 429, code: 'BATCH_TOO_MANY_REQ'})
|
|
40
|
-
const request = this._batchContext.getRequest()
|
|
41
|
-
const componentManager = request.getService().getComponentManager()
|
|
42
|
-
|
|
43
|
-
let result
|
|
44
|
-
const batchStartHandler = componentManager.getComponent(BatchExitHandler.BATCH_START)
|
|
45
|
-
if (batchStartHandler) {
|
|
46
|
-
result = BatchExitHandler.handleBatchStart(batchStartHandler, this._batchContext, request.getApplicationData())
|
|
47
|
-
} else {
|
|
48
|
-
result = Promise.resolve()
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
this._requests = new Map(this._batchContext.getRequestList().map(req => [req.getOdataRequestId(), req]))
|
|
52
|
-
this._openRequestIds = new Set(this._requests.keys())
|
|
53
|
-
this._finishedRequestIds = new Set()
|
|
54
|
-
this._openGroups = new Map()
|
|
55
|
-
this._finishedGroups = new Set()
|
|
56
|
-
result = result
|
|
57
|
-
.then(() => this._executeOpenRequests())
|
|
58
|
-
// Discard previous useless return values.
|
|
59
|
-
.then(() => {
|
|
60
|
-
if (this._batchContext.isContinueOnError() && this._batchContext.getFailedAtomicityGroups().size > 0) {
|
|
61
|
-
// Continue execution -> Preference continue-on-error was applied.
|
|
62
|
-
this._batchContext
|
|
63
|
-
.getResponse()
|
|
64
|
-
.getPreferencesApplied()
|
|
65
|
-
.setOdataContinueOnErrorApplied(true)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return Promise.resolve(this._batchContext.getFrameworkError())
|
|
69
|
-
})
|
|
70
|
-
.catch(frameworkError => {
|
|
71
|
-
return Promise.resolve(frameworkError)
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
const batchEndHandler = componentManager.getComponent(BatchExitHandler.BATCH_END)
|
|
75
|
-
if (batchEndHandler) {
|
|
76
|
-
result = result.then(frameworkError => {
|
|
77
|
-
const failedRequests = this._batchContext.getFailedRequestsOfAtomicityGroup(null)
|
|
78
|
-
return BatchExitHandler.handleBatchEnd(
|
|
79
|
-
batchEndHandler,
|
|
80
|
-
this._batchContext,
|
|
81
|
-
frameworkError,
|
|
82
|
-
request.getApplicationData(),
|
|
83
|
-
failedRequests
|
|
84
|
-
)
|
|
85
|
-
})
|
|
86
|
-
} else {
|
|
87
|
-
// Resurrect error.
|
|
88
|
-
result = result.then(error => (error ? Promise.reject(error) : Promise.resolve()))
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return result
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Executes the open requests contained in the batch request, calling itself as long as requests are still open.
|
|
96
|
-
* @returns {Promise} the overall result
|
|
97
|
-
* @private
|
|
98
|
-
*/
|
|
99
|
-
_executeOpenRequests () {
|
|
100
|
-
const batchRequest = this._batchContext.getRequest()
|
|
101
|
-
const groupStartHandler = batchRequest
|
|
102
|
-
.getService()
|
|
103
|
-
.getComponentManager()
|
|
104
|
-
.getComponent(BatchExitHandler.ATOMICITY_GROUP_START)
|
|
105
|
-
let promises = []
|
|
106
|
-
for (const id of this._openRequestIds) {
|
|
107
|
-
const request = this._requests.get(id)
|
|
108
|
-
if (this._isRequestStartable(request)) {
|
|
109
|
-
const groupId = request.getAtomicityGroupId()
|
|
110
|
-
|
|
111
|
-
if (groupId === null || this._openGroups.get(groupId)) {
|
|
112
|
-
this._openRequestIds.delete(id)
|
|
113
|
-
promises.push(
|
|
114
|
-
new BatchedRequestExecutor(this._batchContext, request)
|
|
115
|
-
.execute()
|
|
116
|
-
.catch(frameworkError => {
|
|
117
|
-
// This framework Error here is NOT caused by an request execution, because those errors
|
|
118
|
-
// would be serialised into the response of the sub request.
|
|
119
|
-
this._batchContext.setFrameworkError(frameworkError)
|
|
120
|
-
this._handleFrameworkError(frameworkError, groupId)
|
|
121
|
-
})
|
|
122
|
-
.then(() => {
|
|
123
|
-
this._finishedRequestIds.add(id)
|
|
124
|
-
return this._executeOpenRequests()
|
|
125
|
-
})
|
|
126
|
-
)
|
|
127
|
-
} else if (!this._openGroups.has(groupId) && !this._finishedGroups.has(groupId)) {
|
|
128
|
-
if (groupStartHandler) {
|
|
129
|
-
this._openGroups.set(groupId, false)
|
|
130
|
-
promises.push(
|
|
131
|
-
BatchExitHandler.handleGroupStart(groupStartHandler, batchRequest.getApplicationData(), groupId)
|
|
132
|
-
.then(() => this._openGroups.set(groupId, true))
|
|
133
|
-
.catch(frameworkError => {
|
|
134
|
-
this._handleFrameworkError(frameworkError, groupId)
|
|
135
|
-
})
|
|
136
|
-
.then(() => this._executeOpenRequests())
|
|
137
|
-
)
|
|
138
|
-
} else {
|
|
139
|
-
this._openGroups.set(groupId, true)
|
|
140
|
-
promises.push(this._executeOpenRequests())
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
} else {
|
|
144
|
-
this._checkFailedDependency(id, request)
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const groupEndHandler = batchRequest
|
|
149
|
-
.getService()
|
|
150
|
-
.getComponentManager()
|
|
151
|
-
.getComponent(BatchExitHandler.ATOMICITY_GROUP_END)
|
|
152
|
-
for (const [groupId, isStarted] of this._openGroups) {
|
|
153
|
-
const groupRequestIds = Array.from(this._requests.keys()).filter(
|
|
154
|
-
id => this._requests.get(id).getAtomicityGroupId() === groupId
|
|
155
|
-
)
|
|
156
|
-
// Either the group is completely finished, or it has at least one failed request and no request is running.
|
|
157
|
-
if (
|
|
158
|
-
(isStarted && groupRequestIds.every(id => this._finishedRequestIds.has(id))) ||
|
|
159
|
-
(this._batchContext.getFailedAtomicityGroups().has(groupId) &&
|
|
160
|
-
!groupRequestIds.some(id => !this._openRequestIds.has(id) && !this._finishedRequestIds.has(id)))
|
|
161
|
-
) {
|
|
162
|
-
this._openGroups.delete(groupId)
|
|
163
|
-
if (groupEndHandler) {
|
|
164
|
-
promises.push(
|
|
165
|
-
BatchExitHandler.handleGroupEnd(
|
|
166
|
-
groupEndHandler,
|
|
167
|
-
this._batchContext,
|
|
168
|
-
batchRequest.getApplicationData(),
|
|
169
|
-
groupId
|
|
170
|
-
)
|
|
171
|
-
.then(repeat => {
|
|
172
|
-
if (repeat) {
|
|
173
|
-
for (const [id, request] of this._requests) {
|
|
174
|
-
if (request.getAtomicityGroupId() === groupId) {
|
|
175
|
-
this._finishedRequestIds.delete(id)
|
|
176
|
-
this._openRequestIds.add(id)
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
this._batchContext.removeAtomicityGroup(groupId)
|
|
180
|
-
} else {
|
|
181
|
-
this._finishedGroups.add(groupId)
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const failedRequests = this._batchContext.getFailedRequestsOfAtomicityGroup(groupId)
|
|
185
|
-
if (failedRequests.length > 0 && !this._batchContext.isContinueOnError()) {
|
|
186
|
-
// stop processing
|
|
187
|
-
for (const id of this._openRequestIds) this._finishedRequestIds.add(id)
|
|
188
|
-
this._openRequestIds.clear()
|
|
189
|
-
}
|
|
190
|
-
})
|
|
191
|
-
.catch(frameworkError => {
|
|
192
|
-
this._handleFrameworkError(frameworkError, groupId)
|
|
193
|
-
})
|
|
194
|
-
.then(() => this._executeOpenRequests())
|
|
195
|
-
)
|
|
196
|
-
} else {
|
|
197
|
-
this._finishedGroups.add(groupId)
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
return Promise.all(promises)
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Determines whether a request can be started by looking at its dependencies and the general state.
|
|
207
|
-
* @param {OdataRequestInBatch} request the request
|
|
208
|
-
* @returns {boolean} whether the request can be started
|
|
209
|
-
* @private
|
|
210
|
-
*/
|
|
211
|
-
_isRequestStartable (request) {
|
|
212
|
-
const continueOnError = this._batchContext.isContinueOnError()
|
|
213
|
-
return (
|
|
214
|
-
request.getDependsOn().every(
|
|
215
|
-
id =>
|
|
216
|
-
// if dependent is request and finished (with or without error)
|
|
217
|
-
(this._finishedRequestIds.has(id) && (continueOnError || !this._batchContext.isRequestFailed(id))) ||
|
|
218
|
-
// if dependent is atomicity group and finished (with or without error)
|
|
219
|
-
(this._finishedGroups.has(id) && (continueOnError || !this._batchContext.getFailedAtomicityGroups().get(id)))
|
|
220
|
-
) &&
|
|
221
|
-
// TODO check this and clause for MULTIPART<>JSON
|
|
222
|
-
(continueOnError ||
|
|
223
|
-
this._batchContext.getSemantics() === BatchContext.SEMANTICS.MULTIPART ||
|
|
224
|
-
this._batchContext.getFailedAtomicityGroups().size === 0)
|
|
225
|
-
)
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Sets a request to FAILED_DEPENDENCY if one of its dependencies failed already
|
|
230
|
-
* and to finished if it can no longer run
|
|
231
|
-
* if we have neither to continue on error nor multipart semantics.
|
|
232
|
-
* @param {string} id the request ID
|
|
233
|
-
* @param {OdataRequestInBatch} request the request
|
|
234
|
-
* @private
|
|
235
|
-
*/
|
|
236
|
-
_checkFailedDependency (id, request) {
|
|
237
|
-
if (
|
|
238
|
-
this._batchContext.getSemantics() !== BatchContext.SEMANTICS.MULTIPART &&
|
|
239
|
-
!this._batchContext.isContinueOnError()
|
|
240
|
-
) {
|
|
241
|
-
if (request.getDependsOn().some(dependentId => this._batchContext.isRequestFailed(dependentId))) {
|
|
242
|
-
this._openRequestIds.delete(id)
|
|
243
|
-
this._finishedRequestIds.add(id)
|
|
244
|
-
let plainHttpResponse = new PlainHttpResponse()
|
|
245
|
-
plainHttpResponse.statusCode = HttpStatusCodes.FAILED_DEPENDENCY
|
|
246
|
-
plainHttpResponse.statusMessage = HttpStatusCodesText[HttpStatusCodes.FAILED_DEPENDENCY]
|
|
247
|
-
const odataResponseInBatch = new OdataResponseInBatch(plainHttpResponse, id)
|
|
248
|
-
this._batchContext.addResponseInBatch(odataResponseInBatch)
|
|
249
|
-
this._batchContext.markRequestAsFailed(id, request, odataResponseInBatch)
|
|
250
|
-
} else if (
|
|
251
|
-
this._batchContext.getFailedAtomicityGroups().size &&
|
|
252
|
-
request
|
|
253
|
-
.getDependsOn()
|
|
254
|
-
.every(dependentId => this._finishedRequestIds.has(dependentId) || this._finishedGroups.has(dependentId))
|
|
255
|
-
) {
|
|
256
|
-
this._openRequestIds.delete(id)
|
|
257
|
-
this._finishedRequestIds.add(id)
|
|
258
|
-
let plainHttpResponse = new PlainHttpResponse()
|
|
259
|
-
plainHttpResponse.statusCode = HttpStatusCodes.UNPROCESSABLE_ENTITY
|
|
260
|
-
plainHttpResponse.statusMessage = HttpStatusCodesText[HttpStatusCodes.UNPROCESSABLE_ENTITY]
|
|
261
|
-
const odataResponseInBatch = new OdataResponseInBatch(plainHttpResponse, id)
|
|
262
|
-
this._batchContext.markRequestAsFailed(id, request, odataResponseInBatch)
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* Handles a framework error.
|
|
269
|
-
* @param {Error} frameworkError the framework error
|
|
270
|
-
* @param {?string} groupId the atomicity-group ID
|
|
271
|
-
* @private
|
|
272
|
-
*/
|
|
273
|
-
_handleFrameworkError (frameworkError, groupId) {
|
|
274
|
-
this._batchContext.markAtomicityGroupAsFailed(groupId, frameworkError)
|
|
275
|
-
this._finishedGroups.add(groupId)
|
|
276
|
-
for (const id of this._openRequestIds) this._finishedRequestIds.add(id)
|
|
277
|
-
this._openRequestIds.clear()
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
module.exports = BatchProcessor
|
package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchValidator.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const DeserializationError = require('../errors/DeserializationError')
|
|
4
|
-
|
|
5
|
-
/** List of headers not allowed in batched requests */
|
|
6
|
-
const forbiddenHeaders = ['authorization', 'proxy-authorization', 'expect', 'from', 'max-forwards', 'range', 'TE']
|
|
7
|
-
|
|
8
|
-
/** Class containing method to validate batched requests */
|
|
9
|
-
class BatchValidator {
|
|
10
|
-
/**
|
|
11
|
-
* Validates batched requests for correct request IDs, headers, dependencies, ...
|
|
12
|
-
* @param {OdataRequestInBatch[]} requests batched requests
|
|
13
|
-
*/
|
|
14
|
-
static validate (requests) {
|
|
15
|
-
/**
|
|
16
|
-
* @type {Map.<string, OdataRequestInBatch>}
|
|
17
|
-
* @private
|
|
18
|
-
*/
|
|
19
|
-
let usedIds = new Map()
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @type {Set<number>}
|
|
23
|
-
* @private
|
|
24
|
-
*/
|
|
25
|
-
let usedAtomicGroups = new Map()
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @type {string}
|
|
29
|
-
* @private
|
|
30
|
-
*/
|
|
31
|
-
let lastUsedAtomicityGroupId = null
|
|
32
|
-
|
|
33
|
-
let index = 0
|
|
34
|
-
|
|
35
|
-
for (const request of requests) {
|
|
36
|
-
const requestID = request.getOdataRequestId()
|
|
37
|
-
const atomicityGroupId = request.getAtomicityGroupId()
|
|
38
|
-
const dependsOn = request.getDependsOn()
|
|
39
|
-
|
|
40
|
-
// CHECK - Forbidden headers
|
|
41
|
-
for (const header of forbiddenHeaders) {
|
|
42
|
-
if (request.getHeader(header)) {
|
|
43
|
-
throw new DeserializationError(
|
|
44
|
-
'Request in batch at position ' + index + " contains invalid header '" + header + "'"
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// CHECK - Request ID must be filled
|
|
50
|
-
if (!requestID) {
|
|
51
|
-
throw new DeserializationError('Request in batch at position ' + index + ' must have a request ID')
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// CHECK - Request IDs must be unique
|
|
55
|
-
BatchValidator.assertUnique(usedIds, requestID, 'Request ID', index)
|
|
56
|
-
usedIds.set(requestID, request)
|
|
57
|
-
|
|
58
|
-
// CHECK - Request IDs must not collide with atomicity group IDs
|
|
59
|
-
BatchValidator.assertUnique(usedAtomicGroups, requestID, 'Request ID', index)
|
|
60
|
-
|
|
61
|
-
// CHECK - Atomicity groups must be continuous and unique
|
|
62
|
-
if (atomicityGroupId !== lastUsedAtomicityGroupId) {
|
|
63
|
-
if (atomicityGroupId) {
|
|
64
|
-
BatchValidator.assertUnique(usedAtomicGroups, atomicityGroupId, 'Atomicity group', index)
|
|
65
|
-
usedAtomicGroups.set(atomicityGroupId)
|
|
66
|
-
}
|
|
67
|
-
// CHECK - Atomicity group IDs must not collide with request IDs
|
|
68
|
-
BatchValidator.assertUnique(usedIds, atomicityGroupId, 'Atomicity group', index)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
for (const id of dependsOn) {
|
|
72
|
-
// CHECK - no self referencing
|
|
73
|
-
if (id === requestID) {
|
|
74
|
-
throw new DeserializationError('Request in batch at position ' + index + " depends on own ID '" + id + "'")
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// CHECK - IDs in dependsOn list must already have been collected as atomicity group or as request
|
|
78
|
-
if (!usedIds.has(id) && !usedAtomicGroups.has(id)) {
|
|
79
|
-
throw new DeserializationError(
|
|
80
|
-
'Request in batch at position ' +
|
|
81
|
-
index +
|
|
82
|
-
' depends on unknown ' +
|
|
83
|
-
"request/atomicity group with ID '" +
|
|
84
|
-
id +
|
|
85
|
-
"'"
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (usedIds.has(id)) {
|
|
90
|
-
// CHECK - if request ID in dependOn references a request
|
|
91
|
-
// then the request's atomicity group must also referenced
|
|
92
|
-
const requiredAtomicityGroup = usedIds.get(id).getAtomicityGroupId()
|
|
93
|
-
if (
|
|
94
|
-
requiredAtomicityGroup &&
|
|
95
|
-
requiredAtomicityGroup !== atomicityGroupId &&
|
|
96
|
-
!dependsOn.includes(requiredAtomicityGroup)
|
|
97
|
-
) {
|
|
98
|
-
throw new DeserializationError(
|
|
99
|
-
'Request in batch at position ' +
|
|
100
|
-
index +
|
|
101
|
-
" depends on request with ID '" +
|
|
102
|
-
id +
|
|
103
|
-
"'" +
|
|
104
|
-
' whose atomicity group ' +
|
|
105
|
-
requiredAtomicityGroup +
|
|
106
|
-
' must also be referenced'
|
|
107
|
-
)
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
lastUsedAtomicityGroupId = atomicityGroupId
|
|
113
|
-
index++
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Assess that a key is not inside a map.
|
|
119
|
-
* @param {Map.<string, Object>} map Map to be searched
|
|
120
|
-
* @param {string} key Key which is search
|
|
121
|
-
* @param {string} itemName item name
|
|
122
|
-
* @param {number} index position
|
|
123
|
-
*/
|
|
124
|
-
static assertUnique (map, key, itemName, index) {
|
|
125
|
-
if (map.has(key)) {
|
|
126
|
-
throw new DeserializationError(
|
|
127
|
-
itemName + " '" + key + "' of request in batch at position " + index + ' already in use'
|
|
128
|
-
)
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
module.exports = BatchValidator
|