@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,222 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const Transform = require('stream').Transform // transform catches eos and _flush gets called
|
|
4
|
-
const ApplicationHttpReader = require('./ApplicationHttpReader')
|
|
5
|
-
const Cache = require('./Cache')
|
|
6
|
-
const DataReader = require('./DataReader')
|
|
7
|
-
const MultipartParser = require('./MultipartReader')
|
|
8
|
-
const DeserializationError = require('../errors/DeserializationError')
|
|
9
|
-
|
|
10
|
-
const DATA_EVENTS = DataReader.EVENTS
|
|
11
|
-
const REQUEST_EVENTS = ApplicationHttpReader.EVENTS
|
|
12
|
-
const PART_EVENTS = require('./PartReader').EVENTS
|
|
13
|
-
const MULTIPART_EVENTS = MultipartParser.EVENTS
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* States
|
|
17
|
-
*/
|
|
18
|
-
const STATES = {
|
|
19
|
-
START: 0,
|
|
20
|
-
PROCESS: 1,
|
|
21
|
-
FINISHED: 2
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Events
|
|
26
|
-
*/
|
|
27
|
-
const EVENTS = {
|
|
28
|
-
UNCONSUMED: 'reader.unconsumed',
|
|
29
|
-
START: 'reader.start',
|
|
30
|
-
END: 'reader.end',
|
|
31
|
-
|
|
32
|
-
REQUEST_START: REQUEST_EVENTS.START,
|
|
33
|
-
REQUEST_REQUESTLINE: REQUEST_EVENTS.REQUEST_LINE,
|
|
34
|
-
REQUEST_HEADERS: REQUEST_EVENTS.HEADERS,
|
|
35
|
-
REQUEST_BODY_START: REQUEST_EVENTS.BODY_START,
|
|
36
|
-
REQUEST_BODY_DATA: ApplicationHttpReader.BODY_PREFIX + '.' + DATA_EVENTS.DATA,
|
|
37
|
-
REQUEST_BODY_END: REQUEST_EVENTS.BODY_END,
|
|
38
|
-
REQUEST_END: REQUEST_EVENTS.END,
|
|
39
|
-
PART_START: PART_EVENTS.START,
|
|
40
|
-
PART_HEADERS: PART_EVENTS.HEADERS,
|
|
41
|
-
MULTIPART_START: MULTIPART_EVENTS.START,
|
|
42
|
-
MULTIPART_END: MULTIPART_EVENTS.END
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Main entry class for reading requests. Allows registering various readers for mime types (e.g. multipart/mixed,
|
|
47
|
-
* application/http and application/octet-stream).
|
|
48
|
-
* Implement as transform to catch the end of input event {@see _flush}.
|
|
49
|
-
* Events are emitted to the emitter object given to constructor.
|
|
50
|
-
*
|
|
51
|
-
* Usage example:
|
|
52
|
-
* const reader = new Reader(partReader, emitter)
|
|
53
|
-
* request.pipe(reader)
|
|
54
|
-
*
|
|
55
|
-
* @extends Transform
|
|
56
|
-
*/
|
|
57
|
-
class ContentDeserializer extends Transform {
|
|
58
|
-
/**
|
|
59
|
-
* @param {Object} reader - Reader used when starting reading
|
|
60
|
-
* @param {EventEmitter} emitter - Emitter to be used for reading events
|
|
61
|
-
*/
|
|
62
|
-
constructor (reader, emitter) {
|
|
63
|
-
super()
|
|
64
|
-
|
|
65
|
-
this._cache = new Cache(Buffer.from([]))
|
|
66
|
-
|
|
67
|
-
// State Info
|
|
68
|
-
this._state = STATES.START
|
|
69
|
-
|
|
70
|
-
// Stack info
|
|
71
|
-
this._mimetypeReader = null
|
|
72
|
-
this._mimetypeReaderStack = []
|
|
73
|
-
this._mimetypeReaderFactories = new Map()
|
|
74
|
-
this._addMimeReaderFactories('application/http', ApplicationHttpReader.createInstance)
|
|
75
|
-
this._addMimeReaderFactories('application/octet-stream', DataReader.createInstance)
|
|
76
|
-
this._addMimeReaderFactories('multipart/mixed', MultipartParser.createInstance)
|
|
77
|
-
this._fallBackReaderFactory = DataReader.createInstance
|
|
78
|
-
|
|
79
|
-
this.pushReader(reader)
|
|
80
|
-
|
|
81
|
-
this._emitter = emitter
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Overwritten _transform implementation
|
|
86
|
-
*
|
|
87
|
-
* @param {Buffer} buffer - Chunk of bytes
|
|
88
|
-
* @param {string} enc - Encoding of the chunk
|
|
89
|
-
* @param {Function} next - Callback function
|
|
90
|
-
* @private
|
|
91
|
-
*/
|
|
92
|
-
_transform (buffer, enc, next) {
|
|
93
|
-
try {
|
|
94
|
-
this._cache.append(buffer)
|
|
95
|
-
this.readCache(false)
|
|
96
|
-
next()
|
|
97
|
-
} catch (err) {
|
|
98
|
-
next(err)
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Overwritten _flush method to catch the end of the source stream.
|
|
104
|
-
* @param {Function} next - Callback function
|
|
105
|
-
* @private
|
|
106
|
-
*/
|
|
107
|
-
_flush (next) {
|
|
108
|
-
try {
|
|
109
|
-
this.readCache(true) // last
|
|
110
|
-
next()
|
|
111
|
-
} catch (err) {
|
|
112
|
-
next(err)
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Read data from cache until the catch is empty. The data is passed to the current reader until the
|
|
118
|
-
* processor is finished or more data is required by the reader.
|
|
119
|
-
*
|
|
120
|
-
* @param {boolean} last whether this reader is the last one
|
|
121
|
-
* @returns {boolean} whether more data is needed
|
|
122
|
-
* @throws {Error} In case of internal stack error
|
|
123
|
-
* @throws {Error} In case last === true and more data is required
|
|
124
|
-
*/
|
|
125
|
-
readCache (last) {
|
|
126
|
-
let needMoreData = false
|
|
127
|
-
|
|
128
|
-
// this._cache.setConsumedBytes(0);
|
|
129
|
-
|
|
130
|
-
while (!needMoreData && this._state !== STATES.FINISHED) {
|
|
131
|
-
switch (this._state) {
|
|
132
|
-
case STATES.START:
|
|
133
|
-
this._emitter.emit(EVENTS.START)
|
|
134
|
-
this._state = STATES.PROCESS
|
|
135
|
-
break
|
|
136
|
-
case STATES.PROCESS:
|
|
137
|
-
needMoreData = this._mimetypeReader.readCache(this, this._cache, last)
|
|
138
|
-
if (needMoreData === false) {
|
|
139
|
-
this.popReader()
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (!this._mimetypeReader) {
|
|
143
|
-
this._state = STATES.FINISHED
|
|
144
|
-
}
|
|
145
|
-
break
|
|
146
|
-
default:
|
|
147
|
-
throw new DeserializationError('default reached')
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
this._cache.shrink()
|
|
152
|
-
|
|
153
|
-
// Ensure proper cleanup
|
|
154
|
-
|
|
155
|
-
if (last) {
|
|
156
|
-
if (needMoreData) throw new DeserializationError('More data required to process multipart')
|
|
157
|
-
if (this._cache.getLength()) {
|
|
158
|
-
this._emitter.emit(EVENTS.UNCONSUMED, this._cache.getBytes(this._cache.getLength()))
|
|
159
|
-
}
|
|
160
|
-
this._emitter.emit(EVENTS.END)
|
|
161
|
-
}
|
|
162
|
-
return needMoreData
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Register a reader factory to a mime type.
|
|
167
|
-
* @param {string} mimetype - Mimetype (e.g. multipart/mixed)
|
|
168
|
-
* @param {Function} factory - Factory for the reader which can parse this mime type payload
|
|
169
|
-
* @private
|
|
170
|
-
*/
|
|
171
|
-
_addMimeReaderFactories (mimetype, factory) {
|
|
172
|
-
this._mimetypeReaderFactories[mimetype] = factory
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Push a reader to the readers stack.
|
|
177
|
-
* @param {Reader} mimetypeReader the reader
|
|
178
|
-
*/
|
|
179
|
-
pushReader (mimetypeReader) {
|
|
180
|
-
if (this._mimetypeReader) {
|
|
181
|
-
this._mimetypeReaderStack.push(this._mimetypeReader)
|
|
182
|
-
}
|
|
183
|
-
this._mimetypeReader = mimetypeReader
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Pop a reader from the readers stack.
|
|
188
|
-
*/
|
|
189
|
-
popReader () {
|
|
190
|
-
this._mimetypeReader = this._mimetypeReaderStack.pop()
|
|
191
|
-
// this._mimetypeReader may be null
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Determine next reader depending on a content-type header.
|
|
196
|
-
* @param {Object} headers HTTP headers, only "content-type" header is used
|
|
197
|
-
* @returns {Reader} the next reader
|
|
198
|
-
*/
|
|
199
|
-
getNextReader (headers) {
|
|
200
|
-
// default content-type as defined in [RFC7231] 3.1.1.5. Content-Type
|
|
201
|
-
const mimeType = (headers['content-type'] && headers['content-type'].getMimeType()) || 'application/octet-stream'
|
|
202
|
-
|
|
203
|
-
const nextReader = this.createReader(mimeType, headers)
|
|
204
|
-
if (!nextReader) throw new DeserializationError('missing mimetype Reader for ' + mimeType)
|
|
205
|
-
return nextReader
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Create a reader.
|
|
210
|
-
* @param {string} mimeType type information used to create this reader
|
|
211
|
-
* @param {Object} headers the headers
|
|
212
|
-
* @returns {Reader} the created reader
|
|
213
|
-
*/
|
|
214
|
-
createReader (mimeType, headers) {
|
|
215
|
-
let factory = this._mimetypeReaderFactories[mimeType] || this._fallBackReaderFactory
|
|
216
|
-
return factory(mimeType, headers)
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
ContentDeserializer.EVENTS = EVENTS
|
|
221
|
-
|
|
222
|
-
module.exports = ContentDeserializer
|
package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DataReader.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const Reader = require('./Reader')
|
|
4
|
-
const DeserializationError = require('../errors/DeserializationError')
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* The dataReader can read up to a stop pattern, a given count of bytes and untill no more payload is available
|
|
8
|
-
* @enum {{STOP_PATTERN: string, BYTE_COUNT: string, TILL_END: string}}
|
|
9
|
-
*/
|
|
10
|
-
const STOP_CONDITION = {
|
|
11
|
-
STOP_PATTERN: 'STOP_PATTERN', // Read until stop pattern, after this the caches read position points to begin of stop pattern
|
|
12
|
-
BYTE_COUNT: 'BYTE_COUNT', // Read a given count of bytes, after this the read position points to the first byte after the read bytes
|
|
13
|
-
TILL_END: 'TILL_END' // Read until there is no more input data, see "last" parameter on method readCache (avoids search and byte counting)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* States
|
|
18
|
-
* @type {{READ_NEXT_CHUNK: number, FINISHED: number}}
|
|
19
|
-
*/
|
|
20
|
-
const STATES = {
|
|
21
|
-
READ_NEXT_CHUNK: 0, // data reader consumes chunks from cache
|
|
22
|
-
FINISHED: 1 // data reader finished (e.g. pattern, length or end of input reached)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Events
|
|
27
|
-
* @type {string}
|
|
28
|
-
* @enum {{DATA: string, END: string}}
|
|
29
|
-
*/
|
|
30
|
-
const EVENTS = {
|
|
31
|
-
DATA: 'data', // data reader consumed data from cache
|
|
32
|
-
END: 'end' // data reader reached state FINISHED
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* The data reader reads bytes from the cache until the stop condition is reached. If the cache is empty
|
|
37
|
-
* and the data reader needs more data, the readCache function returns to the caller signaling that more data is
|
|
38
|
-
* required.
|
|
39
|
-
*
|
|
40
|
-
* There are three available conditions:
|
|
41
|
-
* STOP_PATTERN: Reader consumed bytes from cache until the stop pattern is reached
|
|
42
|
-
* BYTE_COUNT: Reader consumes a given amount of bytes from the cache
|
|
43
|
-
* TILL_END: Reader consumes until the caller signals that the end of data is reached
|
|
44
|
-
*
|
|
45
|
-
* The Following events are emitted through an injected emitter (the prefix is also injected)
|
|
46
|
-
* <prefix>.data: For every consumed chunk
|
|
47
|
-
* <prefix>.end: When the reader reaches state finished
|
|
48
|
-
*
|
|
49
|
-
* @extends Reader
|
|
50
|
-
* */
|
|
51
|
-
class DataReader extends Reader {
|
|
52
|
-
/**
|
|
53
|
-
* Factory for automatic creation depending on content-type
|
|
54
|
-
* @param {ContentTypeInfo} contentTypeInfo - Content type which caused using this reader
|
|
55
|
-
* (here not used, but still in interface due to generic caller)
|
|
56
|
-
* @param {Object} headers - Header information (currently only the content-length header is evaluated)
|
|
57
|
-
* @returns {DataReader} a new instance of DataReader
|
|
58
|
-
*/
|
|
59
|
-
static createInstance (contentTypeInfo, headers) {
|
|
60
|
-
return new DataReader(headers)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Constructor
|
|
65
|
-
* @param {Object} headers - Header information (currently only the content-length header is evaluated)
|
|
66
|
-
*/
|
|
67
|
-
constructor (headers) {
|
|
68
|
-
super()
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* @enum {{STOP_PATTERN: string, BYTE_COUNT: string, TILL_END: string}}
|
|
72
|
-
* @private
|
|
73
|
-
*/
|
|
74
|
-
this._stopCondition = STOP_CONDITION.TILL_END // default
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Store content-length for STOP_CONDITION.BYTE_COUNT
|
|
78
|
-
* @type {number}
|
|
79
|
-
* @private
|
|
80
|
-
*/
|
|
81
|
-
this._needToRead = null
|
|
82
|
-
|
|
83
|
-
// Check for content-length header, please not that these headers are not the nodejs generated headers
|
|
84
|
-
if (headers) {
|
|
85
|
-
const contentLength = headers['content-length']
|
|
86
|
-
if (contentLength) {
|
|
87
|
-
this._contentLength = Number.parseInt(contentLength.getValue(), 10)
|
|
88
|
-
this._needToRead = this._contentLength
|
|
89
|
-
this._stopCondition = STOP_CONDITION.BYTE_COUNT
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
this._state = STATES.READ_NEXT_CHUNK
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Sets the stop pattern and sets the mode to STOP_PATTERN
|
|
98
|
-
* @param {string} stopPattern the stop pattern
|
|
99
|
-
*/
|
|
100
|
-
setStopPattern (stopPattern) {
|
|
101
|
-
this._stopPattern = stopPattern
|
|
102
|
-
this._stopCondition = STOP_CONDITION.STOP_PATTERN // default
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Consume data from cache. If the cache is empty and more data is required, this is signaled and readCache is called again. The state is preserved.
|
|
107
|
-
* @param {Reader} reader - Current reader
|
|
108
|
-
* @param {Cache} cache - Cache containing data for processing
|
|
109
|
-
* @param {boolean} last - Last call, no more date available
|
|
110
|
-
* @returns {boolean}
|
|
111
|
-
* this: this reader needs more data and caller should call this method again with more data in cache
|
|
112
|
-
* false: this reader is finished caller should pop this reader from stack
|
|
113
|
-
* null: new sub reader is on stack, call this method again after the sub reader is finished
|
|
114
|
-
*/
|
|
115
|
-
readCache (reader, cache, last) {
|
|
116
|
-
let needMoreData = false
|
|
117
|
-
|
|
118
|
-
while (!needMoreData && this._state !== STATES.FINISHED) {
|
|
119
|
-
switch (this._stopCondition) {
|
|
120
|
-
case STOP_CONDITION.STOP_PATTERN:
|
|
121
|
-
needMoreData = this._readToStopPattern(cache, last)
|
|
122
|
-
break
|
|
123
|
-
case STOP_CONDITION.BYTE_COUNT:
|
|
124
|
-
needMoreData = this._readAmount(cache, last)
|
|
125
|
-
break
|
|
126
|
-
default:
|
|
127
|
-
// STOP_CONDITION.TILL_END:
|
|
128
|
-
needMoreData = this._readUntilEndOfInput(cache, last)
|
|
129
|
-
break
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
if (this._state === STATES.FINISHED) {
|
|
134
|
-
this.emit(EVENTS.END)
|
|
135
|
-
return false
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (last && needMoreData) {
|
|
139
|
-
throw new DeserializationError('More data required to process multipart')
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return needMoreData
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Read data until all input data is consumed.
|
|
147
|
-
* @param {Cache} cache - Cache containing data for processing
|
|
148
|
-
* @param {boolean} last - Last call, no more data available
|
|
149
|
-
* @returns {boolean} - true if more data is required, false if no more data is required
|
|
150
|
-
*/
|
|
151
|
-
_readUntilEndOfInput (cache, last) {
|
|
152
|
-
const consumedBytes = cache.getLength() - cache.getReadPos()
|
|
153
|
-
|
|
154
|
-
this.emitAndConsume(cache, consumedBytes, EVENTS.DATA)
|
|
155
|
-
|
|
156
|
-
if (last) {
|
|
157
|
-
this._state = STATES.FINISHED
|
|
158
|
-
return false
|
|
159
|
-
}
|
|
160
|
-
return true
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Read data until the stop pattern is reached. The read position is set to the beginning of the stop pattern.
|
|
165
|
-
* The caller which starts the body reader is responsible for reading the stop pattern.
|
|
166
|
-
*
|
|
167
|
-
* @param {Cache} cache - Cache containing data for processing
|
|
168
|
-
* @returns {boolean} - true if more data is required, false if no more data is required
|
|
169
|
-
*/
|
|
170
|
-
_readToStopPattern (cache) {
|
|
171
|
-
if (cache.getLength() - cache.getReadPos() < this._stopPattern.length) {
|
|
172
|
-
return true
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
const pos = cache.indexOf(this._stopPattern, cache.getSearchPosition())
|
|
176
|
-
|
|
177
|
-
if (pos === -1) {
|
|
178
|
-
// stop pattern not found
|
|
179
|
-
const consumed = cache.getLength() - cache.getReadPos() - this._stopPattern.length
|
|
180
|
-
this.emitAndConsume(cache, consumed, EVENTS.DATA)
|
|
181
|
-
|
|
182
|
-
return true
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// stop pattern found
|
|
186
|
-
const consumed = pos - cache.getReadPos()
|
|
187
|
-
this.emitAndConsume(cache, consumed, EVENTS.DATA)
|
|
188
|
-
|
|
189
|
-
this._state = STATES.FINISHED
|
|
190
|
-
|
|
191
|
-
return false
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Read data until a given amount of bytes are read.
|
|
196
|
-
* @param {Cache} cache - Cache containing data for processing
|
|
197
|
-
* @returns {boolean} - true if more data is required, false if no more data is required
|
|
198
|
-
*/
|
|
199
|
-
_readAmount (cache) {
|
|
200
|
-
const available = cache.getLength() - cache.getReadPos()
|
|
201
|
-
|
|
202
|
-
if (available < this._needToRead) {
|
|
203
|
-
this.emitAndConsume(cache, available, EVENTS.DATA)
|
|
204
|
-
this._needToRead -= available
|
|
205
|
-
return true
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
// there are more byte in buffer than needed
|
|
209
|
-
this.emitAndConsume(cache, this._needToRead, EVENTS.DATA)
|
|
210
|
-
|
|
211
|
-
this._needToRead = 0
|
|
212
|
-
this._state = STATES.FINISHED
|
|
213
|
-
|
|
214
|
-
return false
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
DataReader.EVENTS = EVENTS
|
|
219
|
-
|
|
220
|
-
module.exports = DataReader
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const cds = require('../../../../../../cds')
|
|
4
|
-
|
|
5
|
-
const stream = require('stream')
|
|
6
|
-
const commons = require('../../odata-commons')
|
|
7
|
-
const PrimitiveValueDecoder = commons.utils.PrimitiveValueDecoder
|
|
8
|
-
const RepresentationKinds = commons.format.RepresentationKind.Kinds
|
|
9
|
-
const JsonContentTypeInfo = commons.format.JsonContentTypeInfo
|
|
10
|
-
const EdmTypeKind = commons.edm.EdmType.TypeKind
|
|
11
|
-
const EdmPrimitiveTypeKind = commons.edm.EdmPrimitiveTypeKind
|
|
12
|
-
const ResourceJsonDeserializer = require('./ResourceJsonDeserializer')
|
|
13
|
-
const BatchJsonDeserializer = require('./BatchJsonDeserializer')
|
|
14
|
-
const BatchRequestListBuilder = require('./BatchRequestListBuilder')
|
|
15
|
-
const BatchContext = require('../batch/BatchContext')
|
|
16
|
-
const BufferedWriter = require('../utils/BufferedWriter')
|
|
17
|
-
const DeserializationError = require('../errors/DeserializationError')
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* The DeserializerFactory is responsible for creating parsing facade functions
|
|
21
|
-
* for a specific payload type regarding to the corresponding request
|
|
22
|
-
* representation kind like ENTITY and the corresponding request mime type.
|
|
23
|
-
*/
|
|
24
|
-
class DeserializerFactory {
|
|
25
|
-
/**
|
|
26
|
-
* Creates and returns the deserialization facade function for application/json requests.
|
|
27
|
-
* This function is called on deserialization of the incoming payload.
|
|
28
|
-
*
|
|
29
|
-
* @param {Edm} edm the current EDM instance
|
|
30
|
-
* @param {RepresentationKind.Kinds} representationKind the representation kind
|
|
31
|
-
* @returns {Function} The deserialization facade function
|
|
32
|
-
*/
|
|
33
|
-
static createJsonDeserializer (edm, representationKind) {
|
|
34
|
-
const getPropertyFunction = uriInfo => uriInfo.getLastSegment().getProperty()
|
|
35
|
-
|
|
36
|
-
function getCreateDeserializerFunction (name) {
|
|
37
|
-
return contract => {
|
|
38
|
-
const jsonContentTypeInfo = new JsonContentTypeInfo(contract.getContentTypeInfo())
|
|
39
|
-
let expand = []
|
|
40
|
-
let additionalInformation = { hasDelta: false }
|
|
41
|
-
const deserializer = new ResourceJsonDeserializer(edm, jsonContentTypeInfo)
|
|
42
|
-
return (edmObject, value) => {
|
|
43
|
-
const body = deserializer[name](edmObject, value, expand, additionalInformation)
|
|
44
|
-
|
|
45
|
-
return {
|
|
46
|
-
body,
|
|
47
|
-
expand,
|
|
48
|
-
additionalInformation
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
switch (representationKind) {
|
|
55
|
-
case RepresentationKinds.ENTITY:
|
|
56
|
-
return DeserializerFactory._createDeserializer(
|
|
57
|
-
uriInfo => uriInfo.getFinalEdmType(),
|
|
58
|
-
getCreateDeserializerFunction('deserializeEntity')
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
case RepresentationKinds.PRIMITIVE:
|
|
62
|
-
return DeserializerFactory._createDeserializer(
|
|
63
|
-
getPropertyFunction,
|
|
64
|
-
getCreateDeserializerFunction('deserializePrimitiveProperty')
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
case RepresentationKinds.PRIMITIVE_COLLECTION:
|
|
68
|
-
return DeserializerFactory._createDeserializer(
|
|
69
|
-
getPropertyFunction,
|
|
70
|
-
getCreateDeserializerFunction('deserializePrimitivePropertyCollection')
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
case RepresentationKinds.COMPLEX:
|
|
74
|
-
return DeserializerFactory._createDeserializer(
|
|
75
|
-
getPropertyFunction,
|
|
76
|
-
getCreateDeserializerFunction('deserializeComplexProperty')
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
case RepresentationKinds.COMPLEX_COLLECTION:
|
|
80
|
-
return DeserializerFactory._createDeserializer(
|
|
81
|
-
getPropertyFunction,
|
|
82
|
-
getCreateDeserializerFunction('deserializeComplexPropertyCollection')
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
case RepresentationKinds.ACTION_PARAMETERS:
|
|
86
|
-
return DeserializerFactory._createDeserializer(
|
|
87
|
-
uriInfo => uriInfo.getLastSegment().getAction(),
|
|
88
|
-
getCreateDeserializerFunction('deserializeActionParameters')
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
case RepresentationKinds.REFERENCE:
|
|
92
|
-
return DeserializerFactory._createDeserializer(
|
|
93
|
-
uriInfo => uriInfo.getFinalEdmType(),
|
|
94
|
-
getCreateDeserializerFunction('deserializeReference')
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
default:
|
|
98
|
-
return null
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Create and return the deserialization function for text/plain requests
|
|
104
|
-
* containing a single primitive value.
|
|
105
|
-
* This function is called on deserialization of the incoming payload.
|
|
106
|
-
*
|
|
107
|
-
* @returns {Function} the deserialization function
|
|
108
|
-
*/
|
|
109
|
-
static createTextValueDeserializer () {
|
|
110
|
-
return DeserializerFactory._createDeserializer(
|
|
111
|
-
uriInfo => uriInfo.getLastSegment(-1).getProperty(),
|
|
112
|
-
() => {
|
|
113
|
-
const deserializer = new PrimitiveValueDecoder()
|
|
114
|
-
return (edmProperty, value) => {
|
|
115
|
-
return { body: deserializer.decodeText(value.toString(), edmProperty) }
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Create and return the deserialization function for binary requests.
|
|
123
|
-
* This function is called on deserialization of the incoming payload.
|
|
124
|
-
*
|
|
125
|
-
* @returns {Function} the deserialization function
|
|
126
|
-
*/
|
|
127
|
-
static createBinaryDeserializer () {
|
|
128
|
-
return (request, next) => {
|
|
129
|
-
let type = request.getUriInfo() && request.getUriInfo().getFinalEdmType()
|
|
130
|
-
if (type && type.getKind() === EdmTypeKind.DEFINITION) type = type.getUnderlyingType()
|
|
131
|
-
if (type && type === EdmPrimitiveTypeKind.Stream) {
|
|
132
|
-
if (request.getIncomingRequest().complete) { // empty or NULL
|
|
133
|
-
next(null, request.getIncomingRequest())
|
|
134
|
-
} else {
|
|
135
|
-
const streamPipeline = stream.pipeline(request.getIncomingRequest(), new stream.PassThrough(), () => {})
|
|
136
|
-
next(null, streamPipeline)
|
|
137
|
-
}
|
|
138
|
-
} else {
|
|
139
|
-
request
|
|
140
|
-
.getIncomingRequest()
|
|
141
|
-
.on('error', next)
|
|
142
|
-
.pipe(new BufferedWriter())
|
|
143
|
-
.on('error', next)
|
|
144
|
-
.on('result', rawBody => next(null, rawBody))
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Create and return the deserialization function for batch requests in the multipart/mixed format.
|
|
151
|
-
* This function is called on deserialization of the incoming payload.
|
|
152
|
-
*
|
|
153
|
-
* @returns {Function} the deserialization function
|
|
154
|
-
*/
|
|
155
|
-
static createMultipartMixedDeserializer () {
|
|
156
|
-
return (request, next) => {
|
|
157
|
-
const batchRequestListBuilder = new BatchRequestListBuilder()
|
|
158
|
-
batchRequestListBuilder.build(request, (err, list) =>
|
|
159
|
-
err
|
|
160
|
-
? next(err)
|
|
161
|
-
: next(null, {
|
|
162
|
-
boundary: batchRequestListBuilder.getBatchBoundary(),
|
|
163
|
-
requests: list,
|
|
164
|
-
semantics: BatchContext.SEMANTICS.MULTIPART
|
|
165
|
-
})
|
|
166
|
-
)
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Creates and returns the deserialization function for batch requests in JSON format.
|
|
172
|
-
* @returns {Function} the deserialization function
|
|
173
|
-
*/
|
|
174
|
-
static createBatchJsonDeserializer () {
|
|
175
|
-
return (request, next) => {
|
|
176
|
-
request
|
|
177
|
-
.getIncomingRequest()
|
|
178
|
-
.on('error', next)
|
|
179
|
-
.pipe(new BufferedWriter())
|
|
180
|
-
.on('error', next)
|
|
181
|
-
.on('result', rawBody => {
|
|
182
|
-
try {
|
|
183
|
-
const body = JSON.parse(rawBody)
|
|
184
|
-
const list = new BatchJsonDeserializer().deserialize(body)
|
|
185
|
-
next(null, {
|
|
186
|
-
requests: list,
|
|
187
|
-
semantics: BatchContext.SEMANTICS.JSON
|
|
188
|
-
})
|
|
189
|
-
} catch (error) {
|
|
190
|
-
next(new DeserializationError('Error while deserializing payload', error))
|
|
191
|
-
}
|
|
192
|
-
})
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Create and return a deserialization function.
|
|
198
|
-
* @param {Function} edmFunction function to get from URI info the EDM object for the parse function
|
|
199
|
-
* @param {Function} createDeserializerFunction function to create the deserialize function
|
|
200
|
-
* (with parameters EDM object and input)
|
|
201
|
-
* @returns {Function} the deserialization function
|
|
202
|
-
*/
|
|
203
|
-
static _createDeserializer (edmFunction, createDeserializerFunction) {
|
|
204
|
-
return (request, next) => {
|
|
205
|
-
request
|
|
206
|
-
.getIncomingRequest()
|
|
207
|
-
.on('error', next)
|
|
208
|
-
.pipe(new BufferedWriter())
|
|
209
|
-
.on('error', next)
|
|
210
|
-
.on('result', rawBody => {
|
|
211
|
-
try {
|
|
212
|
-
const edmObject = edmFunction(request.getUriInfo())
|
|
213
|
-
const deserializeFunction = createDeserializerFunction(request.getContract())
|
|
214
|
-
const result = deserializeFunction(edmObject, rawBody)
|
|
215
|
-
|
|
216
|
-
if (result.expand && result.expand.length > 0) request.setDeepInsertExpand(result.expand)
|
|
217
|
-
if (result.additionalInformation && result.additionalInformation.hasDelta) {
|
|
218
|
-
request.setHasDelta(true)
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
next(null, result.body)
|
|
222
|
-
} catch (error) {
|
|
223
|
-
let text = 'Error while deserializing payload'
|
|
224
|
-
let err = error
|
|
225
|
-
while (err) {
|
|
226
|
-
if (err.message.includes('IEEE754Compatible') || err.message.includes('JSON number is not supported')) {
|
|
227
|
-
text +=
|
|
228
|
-
'; consider using parameter IEEE754Compatible=true in content-type ' + 'with adjusted formatting'
|
|
229
|
-
break
|
|
230
|
-
}
|
|
231
|
-
err = typeof err.getRootCause === 'function' ? err.getRootCause() : undefined
|
|
232
|
-
}
|
|
233
|
-
next(new DeserializationError(text, error), rawBody)
|
|
234
|
-
}
|
|
235
|
-
})
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
module.exports = DeserializerFactory
|