angular-odata 0.127.0 → 0.130.0
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/README.md +27 -244
- package/esm2022/lib/annotations.mjs +146 -0
- package/esm2022/lib/api.mjs +238 -173
- package/esm2022/lib/cache/cache.mjs +3 -1
- package/esm2022/lib/cache/memory.mjs +1 -1
- package/esm2022/lib/cache/storage.mjs +3 -1
- package/esm2022/lib/client.mjs +10 -47
- package/esm2022/lib/constants.mjs +4 -1
- package/esm2022/lib/helper.mjs +9 -1
- package/esm2022/lib/index.mjs +4 -1
- package/esm2022/lib/loaders.mjs +27 -17
- package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +273 -0
- package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +59 -0
- package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +50 -0
- package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +74 -0
- package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +204 -0
- package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +15 -0
- package/esm2022/lib/metadata/csdl/csdl-reference.mjs +76 -0
- package/esm2022/lib/metadata/csdl/csdl-schema.mjs +87 -0
- package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +37 -0
- package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +145 -0
- package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +159 -0
- package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +46 -0
- package/esm2022/lib/metadata/index.mjs +3 -0
- package/esm2022/lib/metadata/metadata.mjs +41 -0
- package/esm2022/lib/metadata/parser.mjs +564 -0
- package/esm2022/lib/models/collection.mjs +115 -155
- package/esm2022/lib/models/model.mjs +71 -54
- package/esm2022/lib/models/options.mjs +194 -136
- package/esm2022/lib/module.mjs +7 -7
- package/esm2022/lib/options.mjs +57 -2
- package/esm2022/lib/resources/index.mjs +2 -2
- package/esm2022/lib/resources/options.mjs +66 -0
- package/esm2022/lib/resources/path/handlers.mjs +16 -4
- package/esm2022/lib/resources/path/segments.mjs +7 -4
- package/esm2022/lib/resources/query/builder.mjs +17 -8
- package/esm2022/lib/resources/query/expressions/apply.mjs +83 -14
- package/esm2022/lib/resources/query/expressions/base.mjs +2 -1
- package/esm2022/lib/resources/query/expressions/compute.mjs +3 -2
- package/esm2022/lib/resources/query/expressions/count.mjs +3 -1
- package/esm2022/lib/resources/query/expressions/expand.mjs +8 -1
- package/esm2022/lib/resources/query/expressions/filter.mjs +3 -1
- package/esm2022/lib/resources/query/expressions/orderby.mjs +4 -2
- package/esm2022/lib/resources/query/expressions/search.mjs +4 -1
- package/esm2022/lib/resources/query/expressions/select.mjs +8 -2
- package/esm2022/lib/resources/query/expressions/syntax.mjs +37 -7
- package/esm2022/lib/resources/query/handlers.mjs +4 -1
- package/esm2022/lib/resources/query/options.mjs +2 -1
- package/esm2022/lib/resources/request.mjs +19 -5
- package/esm2022/lib/resources/resource.mjs +115 -85
- package/esm2022/lib/resources/response.mjs +180 -0
- package/esm2022/lib/resources/types/action.mjs +31 -26
- package/esm2022/lib/resources/types/batch.mjs +7 -7
- package/esm2022/lib/resources/types/count.mjs +7 -7
- package/esm2022/lib/resources/types/entity-set.mjs +37 -24
- package/esm2022/lib/resources/types/entity.mjs +14 -11
- package/esm2022/lib/resources/types/function.mjs +28 -28
- package/esm2022/lib/resources/types/metadata.mjs +9 -5
- package/esm2022/lib/resources/types/navigation-property.mjs +36 -40
- package/esm2022/lib/resources/types/property.mjs +31 -59
- package/esm2022/lib/resources/types/reference.mjs +3 -4
- package/esm2022/lib/resources/types/singleton.mjs +11 -12
- package/esm2022/lib/resources/types/value.mjs +16 -12
- package/esm2022/lib/schema/annotation.mjs +8 -1
- package/esm2022/lib/schema/callable.mjs +13 -10
- package/esm2022/lib/schema/element.mjs +18 -9
- package/esm2022/lib/schema/entity-container.mjs +6 -2
- package/esm2022/lib/schema/entity-set.mjs +3 -1
- package/esm2022/lib/schema/enum-type.mjs +11 -11
- package/esm2022/lib/schema/index.mjs +2 -1
- package/esm2022/lib/schema/parsers/callable.mjs +23 -7
- package/esm2022/lib/schema/parsers/edm.mjs +6 -4
- package/esm2022/lib/schema/parsers/enum-type.mjs +48 -30
- package/esm2022/lib/schema/parsers/structured-type.mjs +61 -27
- package/esm2022/lib/schema/schema.mjs +25 -34
- package/esm2022/lib/schema/singleton.mjs +11 -0
- package/esm2022/lib/schema/structured-type.mjs +27 -25
- package/esm2022/lib/services/base.mjs +4 -1
- package/esm2022/lib/services/entity-set.mjs +18 -2
- package/esm2022/lib/services/entity.mjs +2 -2
- package/esm2022/lib/services/factory.mjs +16 -10
- package/esm2022/lib/services/singleton.mjs +9 -2
- package/esm2022/lib/settings.mjs +8 -99
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/arraybuffers.mjs +1 -1
- package/esm2022/lib/utils/dates.mjs +1 -1
- package/esm2022/lib/utils/durations.mjs +1 -1
- package/esm2022/lib/utils/enums.mjs +1 -1
- package/esm2022/lib/utils/http.mjs +1 -1
- package/esm2022/lib/utils/objects.mjs +1 -1
- package/esm2022/lib/utils/odata.mjs +1 -1
- package/esm2022/lib/utils/types.mjs +1 -1
- package/fesm2022/angular-odata.mjs +3476 -2075
- package/fesm2022/angular-odata.mjs.map +1 -1
- package/lib/{resources/responses/annotations.d.ts → annotations.d.ts} +2 -2
- package/lib/api.d.ts +29 -26
- package/lib/cache/memory.d.ts +1 -1
- package/lib/client.d.ts +0 -20
- package/lib/constants.d.ts +3 -0
- package/lib/index.d.ts +2 -0
- package/lib/loaders.d.ts +7 -1
- package/lib/metadata/csdl/csdl-annotation.d.ts +159 -0
- package/lib/metadata/csdl/csdl-entity-container.d.ts +31 -0
- package/lib/metadata/csdl/csdl-entity-set.d.ts +25 -0
- package/lib/metadata/csdl/csdl-enum-type.d.ts +37 -0
- package/lib/metadata/csdl/csdl-function-action.d.ts +148 -0
- package/lib/metadata/csdl/csdl-navigation-property-binding.d.ts +12 -0
- package/lib/metadata/csdl/csdl-reference.d.ts +53 -0
- package/lib/metadata/csdl/csdl-schema.d.ts +37 -0
- package/lib/metadata/csdl/csdl-singleton.d.ts +21 -0
- package/lib/metadata/csdl/csdl-structural-property.d.ts +86 -0
- package/lib/metadata/csdl/csdl-structured-type.d.ts +94 -0
- package/lib/metadata/csdl/csdl-type-definition.d.ts +25 -0
- package/lib/metadata/index.d.ts +2 -0
- package/lib/metadata/metadata.d.ts +23 -0
- package/lib/{resources/responses/metadata.d.ts → metadata/parser.d.ts} +19 -7
- package/lib/models/collection.d.ts +6 -4
- package/lib/models/model.d.ts +20 -27
- package/lib/models/options.d.ts +46 -25
- package/lib/resources/index.d.ts +1 -1
- package/lib/resources/{responses/options.d.ts → options.d.ts} +2 -2
- package/lib/resources/path/handlers.d.ts +4 -2
- package/lib/resources/path/segments.d.ts +6 -4
- package/lib/resources/query/builder.d.ts +3 -2
- package/lib/resources/query/expressions/apply.d.ts +37 -15
- package/lib/resources/query/expressions/base.d.ts +1 -1
- package/lib/resources/query/expressions/compute.d.ts +2 -2
- package/lib/resources/query/expressions/count.d.ts +1 -1
- package/lib/resources/query/expressions/expand.d.ts +3 -1
- package/lib/resources/query/expressions/filter.d.ts +1 -1
- package/lib/resources/query/expressions/orderby.d.ts +5 -4
- package/lib/resources/query/expressions/search.d.ts +1 -1
- package/lib/resources/query/expressions/select.d.ts +2 -1
- package/lib/resources/query/expressions/syntax.d.ts +8 -5
- package/lib/resources/query/options.d.ts +3 -3
- package/lib/resources/resource.d.ts +56 -16
- package/lib/resources/{responses/response.d.ts → response.d.ts} +17 -5
- package/lib/resources/types/action.d.ts +12 -10
- package/lib/resources/types/batch.d.ts +3 -2
- package/lib/resources/types/count.d.ts +1 -5
- package/lib/resources/types/entity-set.d.ts +25 -11
- package/lib/resources/types/entity.d.ts +8 -5
- package/lib/resources/types/function.d.ts +12 -12
- package/lib/resources/types/metadata.d.ts +1 -1
- package/lib/resources/types/navigation-property.d.ts +23 -8
- package/lib/resources/types/property.d.ts +27 -9
- package/lib/resources/types/reference.d.ts +2 -4
- package/lib/resources/types/singleton.d.ts +9 -7
- package/lib/resources/types/value.d.ts +2 -6
- package/lib/schema/callable.d.ts +5 -7
- package/lib/schema/element.d.ts +11 -4
- package/lib/schema/entity-container.d.ts +2 -0
- package/lib/schema/enum-type.d.ts +13 -16
- package/lib/schema/index.d.ts +1 -0
- package/lib/schema/parsers/callable.d.ts +7 -8
- package/lib/schema/parsers/enum-type.d.ts +16 -18
- package/lib/schema/parsers/structured-type.d.ts +11 -10
- package/lib/schema/schema.d.ts +6 -9
- package/lib/schema/singleton.d.ts +10 -0
- package/lib/schema/structured-type.d.ts +10 -10
- package/lib/services/entity-set.d.ts +11 -4
- package/lib/services/factory.d.ts +14 -2
- package/lib/services/singleton.d.ts +4 -2
- package/lib/settings.d.ts +0 -10
- package/lib/types.d.ts +32 -12
- package/lib/utils/enums.d.ts +12 -12
- package/lib/utils/http.d.ts +1 -1
- package/lib/utils/objects.d.ts +1 -1
- package/lib/utils/strings.d.ts +2 -2
- package/package.json +5 -1
- package/schematics/apigen/angular/api-config.d.ts +15 -0
- package/schematics/apigen/angular/api-config.js +40 -0
- package/schematics/apigen/angular/api-config.js.map +1 -0
- package/schematics/apigen/angular/base.d.ts +71 -0
- package/schematics/apigen/angular/base.js +240 -0
- package/schematics/apigen/angular/base.js.map +1 -0
- package/schematics/apigen/angular/entity.d.ts +24 -0
- package/schematics/apigen/angular/entity.js +77 -0
- package/schematics/apigen/angular/entity.js.map +1 -0
- package/schematics/apigen/angular/enum.d.ts +25 -0
- package/schematics/apigen/angular/enum.js +57 -0
- package/schematics/apigen/angular/enum.js.map +1 -0
- package/schematics/apigen/angular/import.d.ts +6 -0
- package/schematics/apigen/angular/import.js +18 -0
- package/schematics/apigen/angular/import.js.map +1 -0
- package/schematics/apigen/angular/module.d.ts +18 -0
- package/schematics/apigen/angular/module.js +41 -0
- package/schematics/apigen/angular/module.js.map +1 -0
- package/schematics/apigen/angular/service.d.ts +20 -0
- package/schematics/apigen/angular/service.js +77 -0
- package/schematics/apigen/angular/service.js.map +1 -0
- package/schematics/apigen/files/api-config/__fileName__.ts +11 -0
- package/schematics/apigen/files/entity/__fileName__.ts +7 -0
- package/schematics/apigen/files/entitycontainer-service/__fileName__.ts +18 -0
- package/schematics/apigen/files/entityset-service/__fileName__.ts +27 -0
- package/schematics/apigen/files/enum/__fileName__.ts +4 -0
- package/schematics/apigen/files/index/__fileName__.ts +2 -0
- package/schematics/apigen/files/metadata/metadata.json +1 -0
- package/schematics/apigen/files/module/__fileName__.ts +9 -0
- package/schematics/apigen/files/singleton-service/__fileName__.ts +18 -0
- package/schematics/apigen/index.d.ts +3 -0
- package/schematics/apigen/index.js +150 -0
- package/schematics/apigen/index.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.d.ts +153 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.js +228 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.d.ts +29 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.js +49 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.d.ts +23 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.js +37 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.d.ts +34 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.js +50 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.d.ts +140 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.js +136 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.d.ts +12 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js +17 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.d.ts +42 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.js +53 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.d.ts +35 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.js +63 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.d.ts +21 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.js +33 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.d.ts +79 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.js +103 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.d.ts +83 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.js +116 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.d.ts +25 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.js +38 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.js.map +1 -0
- package/schematics/apigen/metadata/index.d.ts +1 -0
- package/schematics/apigen/metadata/index.js +18 -0
- package/schematics/apigen/metadata/index.js.map +1 -0
- package/schematics/apigen/metadata/metadata.d.ts +21 -0
- package/schematics/apigen/metadata/metadata.js +36 -0
- package/schematics/apigen/metadata/metadata.js.map +1 -0
- package/schematics/apigen/metadata/parser.d.ts +110 -0
- package/schematics/apigen/metadata/parser.js +568 -0
- package/schematics/apigen/metadata/parser.js.map +1 -0
- package/schematics/apigen/schema.d.ts +9 -0
- package/schematics/apigen/schema.js +3 -0
- package/schematics/apigen/schema.js.map +1 -0
- package/schematics/apigen/schema.json +37 -0
- package/schematics/apigen/utils.d.ts +2 -0
- package/schematics/apigen/utils.js +99 -0
- package/schematics/apigen/utils.js.map +1 -0
- package/schematics/collection.json +14 -0
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +12 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/random.d.ts +1 -0
- package/schematics/random.js +604 -0
- package/schematics/random.js.map +1 -0
- package/esm2022/lib/resources/responses/annotations.mjs +0 -140
- package/esm2022/lib/resources/responses/csdl/csdl-annotation.mjs +0 -33
- package/esm2022/lib/resources/responses/csdl/csdl-entity-container.mjs +0 -11
- package/esm2022/lib/resources/responses/csdl/csdl-entity-set.mjs +0 -9
- package/esm2022/lib/resources/responses/csdl/csdl-enum-type.mjs +0 -15
- package/esm2022/lib/resources/responses/csdl/csdl-function-action.mjs +0 -56
- package/esm2022/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +0 -7
- package/esm2022/lib/resources/responses/csdl/csdl-reference.mjs +0 -23
- package/esm2022/lib/resources/responses/csdl/csdl-schema.mjs +0 -18
- package/esm2022/lib/resources/responses/csdl/csdl-singleton.mjs +0 -8
- package/esm2022/lib/resources/responses/csdl/csdl-structural-property.mjs +0 -39
- package/esm2022/lib/resources/responses/csdl/csdl-structured-type.mjs +0 -34
- package/esm2022/lib/resources/responses/csdl/csdl-type-definition.mjs +0 -14
- package/esm2022/lib/resources/responses/index.mjs +0 -5
- package/esm2022/lib/resources/responses/metadata.mjs +0 -547
- package/esm2022/lib/resources/responses/options.mjs +0 -56
- package/esm2022/lib/resources/responses/response.mjs +0 -174
- package/esm2022/lib/resources/responses/types.mjs +0 -2
- package/lib/resources/responses/csdl/csdl-annotation.d.ts +0 -27
- package/lib/resources/responses/csdl/csdl-entity-container.d.ts +0 -12
- package/lib/resources/responses/csdl/csdl-entity-set.d.ts +0 -8
- package/lib/resources/responses/csdl/csdl-enum-type.d.ts +0 -12
- package/lib/resources/responses/csdl/csdl-function-action.d.ts +0 -49
- package/lib/resources/responses/csdl/csdl-navigation-property-binding.d.ts +0 -5
- package/lib/resources/responses/csdl/csdl-reference.d.ts +0 -18
- package/lib/resources/responses/csdl/csdl-schema.d.ts +0 -20
- package/lib/resources/responses/csdl/csdl-singleton.d.ts +0 -7
- package/lib/resources/responses/csdl/csdl-structural-property.d.ts +0 -31
- package/lib/resources/responses/csdl/csdl-structured-type.d.ts +0 -27
- package/lib/resources/responses/csdl/csdl-type-definition.d.ts +0 -11
- package/lib/resources/responses/index.d.ts +0 -4
- package/lib/resources/responses/types.d.ts +0 -13
|
@@ -8,12 +8,14 @@ import { ODataNavigationPropertyResource } from './navigation-property';
|
|
|
8
8
|
import { ODataPropertyResource } from './property';
|
|
9
9
|
export class ODataSingletonResource extends ODataResource {
|
|
10
10
|
//#region Factory
|
|
11
|
-
static factory(api, { path,
|
|
11
|
+
static factory(api, { path, type, }) {
|
|
12
12
|
const segments = new ODataPathSegments();
|
|
13
13
|
const segment = segments.add(PathSegment.singleton, path);
|
|
14
|
-
if (
|
|
15
|
-
segment.
|
|
16
|
-
|
|
14
|
+
if (type !== undefined) {
|
|
15
|
+
segment.outgoingType(type);
|
|
16
|
+
segment.incomingType(type);
|
|
17
|
+
}
|
|
18
|
+
return new ODataSingletonResource(api, { segments });
|
|
17
19
|
}
|
|
18
20
|
clone() {
|
|
19
21
|
return super.clone();
|
|
@@ -29,7 +31,7 @@ export class ODataSingletonResource extends ODataResource {
|
|
|
29
31
|
keys(values) {
|
|
30
32
|
const singleton = this.clone();
|
|
31
33
|
const types = this.pathSegments.types({ key: true });
|
|
32
|
-
const keys = values.map((value, index) => ODataResource.resolveKey(value, this.api.
|
|
34
|
+
const keys = values.map((value, index) => ODataResource.resolveKey(value, this.api.findStructuredType(types[index])));
|
|
33
35
|
singleton.segment((s) => s.keys(keys));
|
|
34
36
|
return singleton;
|
|
35
37
|
}
|
|
@@ -114,13 +116,10 @@ export class ODataSingletonResource extends ODataResource {
|
|
|
114
116
|
fetchEntity(options) {
|
|
115
117
|
return this.fetch(options).pipe(map(({ entity }) => entity));
|
|
116
118
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Fetch an existing entity and return a model.
|
|
119
|
-
* @param options The options for the request.
|
|
120
|
-
* @returns Observable of the entity.
|
|
121
|
-
*/
|
|
122
119
|
fetchModel(options) {
|
|
123
|
-
return this.fetch(options).pipe(map(({ entity, annots }) => entity
|
|
120
|
+
return this.fetch(options).pipe(map(({ entity, annots }) => entity
|
|
121
|
+
? this.asModel(entity, { annots, ModelType: options?.ModelType })
|
|
122
|
+
: null));
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9zaW5nbGV0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsTUFBTSxPQUFPLHNCQUEwQixTQUFRLGFBQWdCO0lBQzdELGlCQUFpQjtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQWEsRUFDYixFQUNFLElBQUksRUFDSixNQUFNLEVBQ04sS0FBSyxHQUtOO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLE1BQU0sS0FBSyxTQUFTO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksc0JBQXNCLENBQUksR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FB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QUFFLENBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBSSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3BELENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IE9EYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgT0RhdGFTdHJ1Y3R1cmVkVHlwZSB9IGZyb20gJy4uLy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBQYXRoU2VnbWVudCwgUXVlcnlPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVBhdGhTZWdtZW50cyB9IGZyb20gJy4uL3BhdGgnO1xuaW1wb3J0IHsgT0RhdGFRdWVyeU9wdGlvbnMgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdHkgfSBmcm9tICcuLi9yZXNwb25zZXMnO1xuaW1wb3J0IHsgT0RhdGFBY3Rpb25SZXNvdXJjZSB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IE9EYXRhRnVuY3Rpb25SZXNvdXJjZSB9IGZyb20gJy4vZnVuY3Rpb24nO1xuaW1wb3J0IHsgT0RhdGFOYXZpZ2F0aW9uUHJvcGVydHlSZXNvdXJjZSB9IGZyb20gJy4vbmF2aWdhdGlvbi1wcm9wZXJ0eSc7XG5pbXBvcnQgeyBPRGF0YU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgT0RhdGFQcm9wZXJ0eVJlc291cmNlIH0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVNpbmdsZXRvblJlc291cmNlPFQ+IGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxUPiB7XG4gIC8vI3JlZ2lvbiBGYWN0b3J5XG4gIHN0YXRpYyBmYWN0b3J5PFM+KFxuICAgIGFwaTogT0RhdGFBcGksXG4gICAge1xuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHF1ZXJ5LFxuICAgIH06IHtcbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICAgIHNjaGVtYT86IE9EYXRhU3RydWN0dXJlZFR5cGU8Uz47XG4gICAgICBxdWVyeT86IE9EYXRhUXVlcnlPcHRpb25zPFM+O1xuICAgIH0sXG4gICkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gbmV3IE9EYXRhUGF0aFNlZ21lbnRzKCk7XG4gICAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudC5zaW5nbGV0b24sIHBhdGgpO1xuICAgIGlmIChzY2hlbWEgIT09IHVuZGVmaW5lZCkgc2VnbWVudC50eXBlKHNjaGVtYS50eXBlKCkpO1xuICAgIHJldHVybiBuZXcgT0RhdGFTaW5nbGV0b25SZXNvdXJjZTxTPihhcGksIHsgc2VnbWVudHMsIHF1ZXJ5LCBzY2hlbWEgfSk7XG4gIH1cbiAgb3ZlcnJpZGUgY2xvbmUoKTogT0RhdGFTaW5nbGV0b25SZXNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmNsb25lKCkgYXMgT0RhdGFTaW5nbGV0b25SZXNvdXJjZTxUPjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBrZXkodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHNpbmdsZXRvbiA9IHRoaXMuY2xvbmUoKTtcbiAgICB2YXIga2V5ID0gdGhpcy5yZXNvbHZlS2V5KHZhbHVlKTtcbiAgICBpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHNpbmdsZXRvbi5zZWdtZW50KChzKSA9PiBzLnNpbmdsZXRvbigpLmtleShrZXkpKTtcbiAgICByZXR1cm4gc2luZ2xldG9uO1xuICB9XG5cbiAga2V5cyh2YWx1ZXM6IGFueVtdKSB7XG4gICAgY29uc3Qgc2luZ2xldG9uID0gdGhpcy5jbG9uZSgpO1xuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5wYXRoU2VnbWVudHMudHlwZXMoeyBrZXk6IHRydWUgfSk7XG4gICAgY29uc3Qga2V5cyA9IHZhbHVlcy5tYXAoKHZhbHVlLCBpbmRleCkgPT5cbiAgICAgIE9EYXRhUmVzb3VyY2UucmVzb2x2ZUtleShcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHRoaXMuYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8VD4odHlwZXNbaW5kZXhdKSxcbiAgICAgICksXG4gICAgKTtcbiAgICBzaW5nbGV0b24uc2VnbWVudCgocykgPT4gcy5rZXlzKGtleXMpKTtcbiAgICByZXR1cm4gc2luZ2xldG9uO1xuICB9XG5cbiAgbmF2aWdhdGlvblByb3BlcnR5PE4+KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBPRGF0YU5hdmlnYXRpb25Qcm9wZXJ0eVJlc291cmNlLmZyb21SZXNvdXJjZTxOPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIHByb3BlcnR5PFA+KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBPRGF0YVByb3BlcnR5UmVzb3VyY2UuZnJvbVJlc291cmNlPFA+KHRoaXMsIHBhdGgpO1xuICB9XG5cbiAgYWN0aW9uPFAsIFI+KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBPRGF0YUFjdGlvblJlc291cmNlLmZyb21SZXNvdXJjZTxQLCBSPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uPFAsIFI+KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBPRGF0YUZ1bmN0aW9uUmVzb3VyY2UuZnJvbVJlc291cmNlPFAsIFI+KHRoaXMsIHBhdGgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIFJlcXVlc3RzXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwb3N0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcHV0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQoYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwYXRjaChcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIucGF0Y2goYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkZWxldGUob3B0aW9uczogT0RhdGFPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUoeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldChcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9ID0ge30sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCh7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBlbnRpdHkuXG4gICAqIEBwYXJhbSBhdHRycyBUaGUgZW50aXR5IGF0dHJpYnV0ZXMgdG8gY3JlYXRlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIGVudGl0eSB3aXRoIHRoZSBhbm5vdGF0aW9ucy5cbiAgICovXG4gIGNyZWF0ZShcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPE9EYXRhRW50aXR5PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucG9zdChhdHRycywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBlbnRpdHkuXG4gICAqIEBwYXJhbSBhdHRycyBUaGUgZW50aXR5IGF0dHJpYnV0ZXMgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIGVudGl0eSB3aXRoIHRoZSBhbm5vdGF0aW9ucy5cbiAgICovXG4gIHVwZGF0ZShcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPE9EYXRhRW50aXR5PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucHV0KGF0dHJzLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZmllcyBhbiBleGlzdGluZyBlbnRpdHkuXG4gICAqIEBwYXJhbSBhdHRycyBUaGUgZW50aXR5IGF0dHJpYnV0ZXMgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBlbnRpdHkgd2l0aCB0aGUgYW5ub3RhdGlvbnMuXG4gICAqL1xuICBtb2RpZnkoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnBhdGNoKGF0dHJzLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIGRlbGV0ZWQgZW50aXR5LlxuICAgKi9cbiAgZGVzdHJveShvcHRpb25zPzogT0RhdGFPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGUob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIGVudGl0eSB3aXRoIHRoZSBhbm5vdGF0aW9ucy5cbiAgICovXG4gIGZldGNoKFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPE9EYXRhRW50aXR5PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIGFuIGV4aXN0aW5nIGVudGl0eS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSBlbnRpdHkuXG4gICAqL1xuICBmZXRjaEVudGl0eShcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zICYge1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKG9wdGlvbnMpLnBpcGUobWFwKCh7IGVudGl0eSB9KSA9PiBlbnRpdHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhbiBleGlzdGluZyBlbnRpdHkgYW5kIHJldHVybiBhIG1vZGVsLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIGVudGl0eS5cbiAgICovXG4gIGZldGNoTW9kZWw8TSBleHRlbmRzIE9EYXRhTW9kZWw8VD4+KFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPE0gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdHksIGFubm90cyB9KSA9PlxuICAgICAgICBlbnRpdHkgPyB0aGlzLmFzTW9kZWw8TT4oZW50aXR5LCB7IGFubm90cyB9KSA6IG51bGwsXG4gICAgICApLFxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9zaW5nbGV0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsTUFBTSxPQUFPLHNCQUEwQixTQUFRLGFBQWdCO0lBQzdELGlCQUFpQjtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQWEsRUFDYixFQUNFLElBQUksRUFDSixJQUFJLEdBSUw7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxJQUFJLHNCQUFzQixDQUFJLEdBQUcsRUFBRSxF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QUFFLEVBQUUsQ0FDekIsTUFBTTtZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxJQUFJLENBQ1QsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgTW9kZWxJbnRlcmZhY2UsIE9EYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUGF0aFNlZ21lbnQsIFF1ZXJ5T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoJztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eSB9IGZyb20gJy4uL3Jlc3BvbnNlJztcbmltcG9ydCB7IE9EYXRhQWN0aW9uUmVzb3VyY2UgfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBPRGF0YUZ1bmN0aW9uUmVzb3VyY2UgfSBmcm9tICcuL2Z1bmN0aW9uJztcbmltcG9ydCB7IE9EYXRhTmF2aWdhdGlvblByb3BlcnR5UmVzb3VyY2UgfSBmcm9tICcuL25hdmlnYXRpb24tcHJvcGVydHknO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IE9EYXRhUHJvcGVydHlSZXNvdXJjZSB9IGZyb20gJy4vcHJvcGVydHknO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTaW5nbGV0b25SZXNvdXJjZTxUPiBleHRlbmRzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyNyZWdpb24gRmFjdG9yeVxuICBzdGF0aWMgZmFjdG9yeTxTPihcbiAgICBhcGk6IE9EYXRhQXBpLFxuICAgIHtcbiAgICAgIHBhdGgsXG4gICAgICB0eXBlLFxuICAgIH06IHtcbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgfSxcbiAgKSB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSBuZXcgT0RhdGFQYXRoU2VnbWVudHMoKTtcbiAgICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHMuYWRkKFBhdGhTZWdtZW50LnNpbmdsZXRvbiwgcGF0aCk7XG4gICAgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2VnbWVudC5vdXRnb2luZ1R5cGUodHlwZSk7XG4gICAgICBzZWdtZW50LmluY29taW5nVHlwZSh0eXBlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPRGF0YVNpbmdsZXRvblJlc291cmNlPFM+KGFwaSwgeyBzZWdtZW50cyB9KTtcbiAgfVxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YVNpbmdsZXRvblJlc291cmNlPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuY2xvbmUoKSBhcyBPRGF0YVNpbmdsZXRvblJlc291cmNlPFQ+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGtleSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2luZ2xldG9uID0gdGhpcy5jbG9uZSgpO1xuICAgIHZhciBrZXkgPSB0aGlzLnJlc29sdmVLZXkodmFsdWUpO1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkgc2luZ2xldG9uLnNlZ21lbnQoKHMpID0+IHMuc2luZ2xldG9uKCkua2V5KGtleSkpO1xuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICBrZXlzKHZhbHVlczogYW55W10pIHtcbiAgICBjb25zdCBzaW5nbGV0b24gPSB0aGlzLmNsb25lKCk7XG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLnBhdGhTZWdtZW50cy50eXBlcyh7IGtleTogdHJ1ZSB9KTtcbiAgICBjb25zdCBrZXlzID0gdmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PlxuICAgICAgT0RhdGFSZXNvdXJjZS5yZXNvbHZlS2V5KFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdGhpcy5hcGkuZmluZFN0cnVjdHVyZWRUeXBlPFQ+KHR5cGVzW2luZGV4XSksXG4gICAgICApLFxuICAgICk7XG4gICAgc2luZ2xldG9uLnNlZ21lbnQoKHMpID0+IHMua2V5cyhrZXlzKSk7XG4gICAgcmV0dXJuIHNpbmdsZXRvbjtcbiAgfVxuXG4gIG5hdmlnYXRpb25Qcm9wZXJ0eTxOPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFOYXZpZ2F0aW9uUHJvcGVydHlSZXNvdXJjZS5mcm9tUmVzb3VyY2U8Tj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBwcm9wZXJ0eTxQPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFQcm9wZXJ0eVJlc291cmNlLmZyb21SZXNvdXJjZTxQPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGFjdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFBY3Rpb25SZXNvdXJjZS5mcm9tUmVzb3VyY2U8UCwgUj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFGdW5jdGlvblJlc291cmNlLmZyb21SZXNvdXJjZTxQLCBSPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBSZXF1ZXN0c1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcG9zdChcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIucG9zdChhdHRycywgeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHB1dChcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcGF0Y2goXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zID0ge30sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLnBhdGNoKGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGVsZXRlKG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQoXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zICYge1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfSA9IHt9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG9ydGN1dHNcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZW50aXR5LlxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGVudGl0eSBhdHRyaWJ1dGVzIHRvIGNyZWF0ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBlbnRpdHkgd2l0aCB0aGUgYW5ub3RhdGlvbnMuXG4gICAqL1xuICBjcmVhdGUoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnBvc3QoYXR0cnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGVudGl0eSBhdHRyaWJ1dGVzIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBlbnRpdHkgd2l0aCB0aGUgYW5ub3RhdGlvbnMuXG4gICAqL1xuICB1cGRhdGUoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnB1dChhdHRycywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogTW9kaWZpZXMgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGVudGl0eSBhdHRyaWJ1dGVzIHRvIG1vZGlmeS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBUaGUgbW9kaWZpZWQgZW50aXR5IHdpdGggdGhlIGFubm90YXRpb25zLlxuICAgKi9cbiAgbW9kaWZ5KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5wYXRjaChhdHRycywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGVudGl0eS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSBkZWxldGVkIGVudGl0eS5cbiAgICovXG4gIGRlc3Ryb3kob3B0aW9ucz86IE9EYXRhT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIGFuIGV4aXN0aW5nIGVudGl0eS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSBlbnRpdHkgd2l0aCB0aGUgYW5ub3RhdGlvbnMuXG4gICAqL1xuICBmZXRjaChcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zICYge1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldChvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhbiBleGlzdGluZyBlbnRpdHkuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgZW50aXR5LlxuICAgKi9cbiAgZmV0Y2hFbnRpdHkoXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChvcHRpb25zKS5waXBlKG1hcCgoeyBlbnRpdHkgfSkgPT4gZW50aXR5KSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggYW4gZXhpc3RpbmcgZW50aXR5IGFuZCByZXR1cm4gYSBtb2RlbC5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSBlbnRpdHkuXG4gICAqL1xuICBmZXRjaE1vZGVsKFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICAgIE1vZGVsVHlwZT86IHR5cGVvZiBPRGF0YU1vZGVsO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8KE9EYXRhTW9kZWw8VD4gJiBNb2RlbEludGVyZmFjZTxUPikgfCBudWxsPjtcbiAgZmV0Y2hNb2RlbDxNIGV4dGVuZHMgT0RhdGFNb2RlbDxUPj4oXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgICAgTW9kZWxUeXBlPzogdHlwZW9mIE9EYXRhTW9kZWw7XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxNIHwgbnVsbD47XG4gIGZldGNoTW9kZWwoXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgICAgTW9kZWxUeXBlPzogdHlwZW9mIE9EYXRhTW9kZWw7XG4gICAgfSxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdHksIGFubm90cyB9KSA9PlxuICAgICAgICBlbnRpdHlcbiAgICAgICAgICA/IHRoaXMuYXNNb2RlbChlbnRpdHksIHsgYW5ub3RzLCBNb2RlbFR5cGU6IG9wdGlvbnM/Lk1vZGVsVHlwZSB9KVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -3,19 +3,23 @@ import { PathSegment } from '../../types';
|
|
|
3
3
|
import { ODataResource } from '../resource';
|
|
4
4
|
export class ODataValueResource extends ODataResource {
|
|
5
5
|
//#region Factory
|
|
6
|
-
static factory(api, {
|
|
7
|
-
const
|
|
8
|
-
const bindingType = schema?.type();
|
|
6
|
+
static factory(api, { segments, }) {
|
|
7
|
+
const currentType = segments.last()?.outgoingType();
|
|
9
8
|
const segment = segments.add(PathSegment.value, $VALUE);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
segment.incomingType(currentType);
|
|
10
|
+
return new ODataValueResource(api, { segments });
|
|
11
|
+
}
|
|
12
|
+
static fromResource(resource) {
|
|
13
|
+
const baseType = resource.outgoingType();
|
|
14
|
+
let baseSchema = baseType !== undefined
|
|
15
|
+
? resource.api.structuredType(baseType)
|
|
16
|
+
: undefined;
|
|
17
|
+
const value = ODataValueResource.factory(resource.api, {
|
|
18
|
+
segments: resource.cloneSegments(),
|
|
19
|
+
});
|
|
16
20
|
// Switch entitySet to binding type if available
|
|
17
|
-
if (
|
|
18
|
-
let entitySet = api.
|
|
21
|
+
if (baseSchema !== undefined && baseSchema.type() !== baseType) {
|
|
22
|
+
let entitySet = resource.api.findEntitySet(baseSchema.type());
|
|
19
23
|
if (entitySet !== undefined) {
|
|
20
24
|
value.segment((s) => s.entitySet().path(entitySet.name));
|
|
21
25
|
}
|
|
@@ -41,4 +45,4 @@ export class ODataValueResource extends ODataResource {
|
|
|
41
45
|
return this.get(options);
|
|
42
46
|
}
|
|
43
47
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL3ZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHNUMsTUFBTSxPQUFPLGtCQUFzQixTQUFRLGFBQWdCO0lBQ3pELGlCQUFpQjtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQWEsRUFDYixFQUNFLFFBQVEsR0FHVDtRQUVELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksa0JBQWtCLENBQUksR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBSSxRQUE0QjtRQUNqRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsSUFBSSxVQUFVLEdBQ1osUUFBUSxLQUFLLFNBQVM7WUFDcEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFNLFFBQVEsQ0FBQztZQUM1QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBSSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hELFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFO1NBQ25DLENBQUMsQ0FBQztRQUVILGdEQUFnRDtRQUNoRCxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9ELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzlELElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ1EsS0FBSztRQUNaLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBMkIsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsWUFBWTtJQUVaLGtCQUFrQjtJQUNDLEdBQUcsQ0FBQyxVQUF3QixFQUFFO1FBQy9DLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxZQUFZO0lBRVosbUJBQW1CO0lBRW5COzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBc0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7ICRWQUxVRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQYXRoU2VnbWVudCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhVmFsdWVSZXNvdXJjZTxUPiBleHRlbmRzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyNyZWdpb24gRmFjdG9yeVxuICBzdGF0aWMgZmFjdG9yeTxWPihcbiAgICBhcGk6IE9EYXRhQXBpLFxuICAgIHtcbiAgICAgIHNlZ21lbnRzLFxuICAgIH06IHtcbiAgICAgIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cztcbiAgICB9LFxuICApIHtcbiAgICBjb25zdCBjdXJyZW50VHlwZSA9IHNlZ21lbnRzLmxhc3QoKT8ub3V0Z29pbmdUeXBlKCk7XG4gICAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudC52YWx1ZSwgJFZBTFVFKTtcbiAgICBzZWdtZW50LmluY29taW5nVHlwZShjdXJyZW50VHlwZSk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVZhbHVlUmVzb3VyY2U8Vj4oYXBpLCB7IHNlZ21lbnRzIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21SZXNvdXJjZTxWPihyZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxhbnk+KSB7XG4gICAgY29uc3QgYmFzZVR5cGUgPSByZXNvdXJjZS5vdXRnb2luZ1R5cGUoKTtcbiAgICBsZXQgYmFzZVNjaGVtYSA9XG4gICAgICBiYXNlVHlwZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gcmVzb3VyY2UuYXBpLnN0cnVjdHVyZWRUeXBlPGFueT4oYmFzZVR5cGUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHZhbHVlID0gT0RhdGFWYWx1ZVJlc291cmNlLmZhY3Rvcnk8Vj4ocmVzb3VyY2UuYXBpLCB7XG4gICAgICBzZWdtZW50czogcmVzb3VyY2UuY2xvbmVTZWdtZW50cygpLFxuICAgIH0pO1xuXG4gICAgLy8gU3dpdGNoIGVudGl0eVNldCB0byBiaW5kaW5nIHR5cGUgaWYgYXZhaWxhYmxlXG4gICAgaWYgKGJhc2VTY2hlbWEgIT09IHVuZGVmaW5lZCAmJiBiYXNlU2NoZW1hLnR5cGUoKSAhPT0gYmFzZVR5cGUpIHtcbiAgICAgIGxldCBlbnRpdHlTZXQgPSByZXNvdXJjZS5hcGkuZmluZEVudGl0eVNldChiYXNlU2NoZW1hLnR5cGUoKSk7XG4gICAgICBpZiAoZW50aXR5U2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFsdWUuc2VnbWVudCgocykgPT4gcy5lbnRpdHlTZXQoKS5wYXRoKGVudGl0eVNldCEubmFtZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YVZhbHVlUmVzb3VyY2U8VD4ge1xuICAgIHJldHVybiBzdXBlci5jbG9uZSgpIGFzIE9EYXRhVmFsdWVSZXNvdXJjZTxUPjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUmVxdWVzdHNcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldChvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoeyByZXNwb25zZVR5cGU6ICd2YWx1ZScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgdmFsdWUgb2YgdGhlIHJlc291cmNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPRGF0YSBvcHRpb25zLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSB2YWx1ZS5cbiAgICovXG4gIGZldGNoKG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQob3B0aW9ucyk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
export class ODataAnnotation {
|
|
2
|
+
term;
|
|
3
|
+
string;
|
|
4
|
+
bool;
|
|
5
|
+
int;
|
|
6
|
+
permissions;
|
|
7
|
+
properties;
|
|
2
8
|
constructor(annot) {
|
|
3
9
|
this.term = annot.term;
|
|
4
10
|
Object.assign(this, annot);
|
|
5
11
|
}
|
|
6
12
|
}
|
|
7
13
|
export class ODataAnnotatable {
|
|
14
|
+
annotations;
|
|
8
15
|
constructor(config) {
|
|
9
16
|
this.annotations = (config.annotations || []).map((annot) => new ODataAnnotation(annot));
|
|
10
17
|
}
|
|
@@ -34,4 +41,4 @@ export class ODataAnnotatable {
|
|
|
34
41
|
annot.properties);
|
|
35
42
|
}
|
|
36
43
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvYW5ub3RhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZUFBZTtJQUMxQixJQUFJLENBQVM7SUFDYixNQUFNLENBQVU7SUFDaEIsSUFBSSxDQUFXO0lBQ2YsR0FBRyxDQUFVO0lBQ2IsV0FBVyxDQUFZO0lBQ3ZCLFVBQVUsQ0FBWTtJQUV0QixZQUFZLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFdBQVcsQ0FBb0I7SUFDL0IsWUFBWSxNQUE0QztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQy9DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFNBQThDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUksSUFBcUI7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ2xCLEtBQUssQ0FBQyxJQUFJO1lBQ1YsS0FBSyxDQUFDLEdBQUc7WUFDVCxLQUFLLENBQUMsV0FBVztZQUNqQixLQUFLLENBQUMsVUFBVSxDQUFRLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbkNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhQW5ub3RhdGlvbiB7XG4gIHRlcm06IHN0cmluZztcbiAgc3RyaW5nPzogc3RyaW5nO1xuICBib29sPzogYm9vbGVhbjtcbiAgaW50PzogbnVtYmVyO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoYW5ub3Q6IEFubm90YXRpb25Db25maWcpIHtcbiAgICB0aGlzLnRlcm0gPSBhbm5vdC50ZXJtO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgYW5ub3QpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUFubm90YXRhYmxlIHtcbiAgYW5ub3RhdGlvbnM6IE9EYXRhQW5ub3RhdGlvbltdO1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IHsgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW10gfSkge1xuICAgIHRoaXMuYW5ub3RhdGlvbnMgPSAoY29uZmlnLmFubm90YXRpb25zIHx8IFtdKS5tYXAoXG4gICAgICAoYW5ub3QpID0+IG5ldyBPRGF0YUFubm90YXRpb24oYW5ub3QpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmluZCBhbiBhbm5vdGF0aW9uIGluc2lkZSB0aGUgYW5ub3RhdGFibGUuXG4gICAqIEBwYXJhbSBwcmVkaWNhdGUgRnVuY3Rpb24gdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIGFubm90YXRpb24gbWF0Y2guXG4gICAqIEByZXR1cm5zIFRoZSBhbm5vdGF0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgcHJlZGljYXRlLlxuICAgKi9cbiAgZmluZEFubm90YXRpb24ocHJlZGljYXRlOiAoYW5ub3Q6IE9EYXRhQW5ub3RhdGlvbikgPT4gYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmFubm90YXRpb25zLmZpbmQocHJlZGljYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGFuIGFubm90YXRpb24gaW5zaWRlIHRoZSBhbm5vdGF0YWJsZSBhbmQgcmV0dXJuIGl0cyB2YWx1ZS5cbiAgICogQHBhcmFtIHRlcm0gVGhlIHRlcm0gb2YgdGhlIGFubm90YXRpb24gdG8gZmluZC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBhbm5vdGF0aW9uLlxuICAgKi9cbiAgYW5ub3RhdGVkVmFsdWU8VD4odGVybTogc3RyaW5nIHwgUmVnRXhwKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcmVnID0gdGVybSBpbnN0YW5jZW9mIFJlZ0V4cCA/IHRlcm0gOiBuZXcgUmVnRXhwKGBeJHt0ZXJtfSRgKTtcbiAgICBjb25zdCBhbm5vdCA9IHRoaXMuZmluZEFubm90YXRpb24oKGEpID0+IHJlZy50ZXN0KGEudGVybSkpO1xuICAgIGlmICghYW5ub3QpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAoYW5ub3Quc3RyaW5nIHx8XG4gICAgICBhbm5vdC5ib29sIHx8XG4gICAgICBhbm5vdC5pbnQgfHxcbiAgICAgIGFubm90LnBlcm1pc3Npb25zIHx8XG4gICAgICBhbm5vdC5wcm9wZXJ0aWVzKSBhcyBhbnk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ODataParserSchemaElement } from './element';
|
|
2
2
|
import { ODataCallableParser } from './parsers';
|
|
3
|
-
export class ODataCallable extends
|
|
3
|
+
export class ODataCallable extends ODataParserSchemaElement {
|
|
4
|
+
entitySetPath;
|
|
5
|
+
bound;
|
|
6
|
+
composable;
|
|
4
7
|
constructor(config, schema) {
|
|
5
|
-
super(config, schema);
|
|
8
|
+
super(config, schema, new ODataCallableParser(config, schema.namespace, schema.alias));
|
|
6
9
|
this.entitySetPath = config.entitySetPath;
|
|
7
10
|
this.bound = config.bound;
|
|
8
11
|
this.composable = config.composable;
|
|
9
|
-
this.parser = new ODataCallableParser(config, schema.namespace, schema.alias);
|
|
10
12
|
}
|
|
11
13
|
path() {
|
|
12
14
|
let path;
|
|
@@ -16,16 +18,14 @@ export class ODataCallable extends ODataSchemaElement {
|
|
|
16
18
|
path = `${this.schema.namespace}.${this.name}`;
|
|
17
19
|
else
|
|
18
20
|
path = this.parser.return
|
|
19
|
-
? this.api.
|
|
20
|
-
this.name
|
|
21
|
+
? this.api.findEntitySet(this.parser.return.type)?.name || this.name
|
|
21
22
|
: this.name;
|
|
22
23
|
return path;
|
|
23
24
|
}
|
|
24
|
-
configure({ options
|
|
25
|
+
configure({ options }) {
|
|
25
26
|
this.parser.configure({
|
|
26
27
|
options,
|
|
27
|
-
parserForType,
|
|
28
|
-
findOptionsForType,
|
|
28
|
+
parserForType: (t) => this.api.parserForType(t),
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
@@ -62,5 +62,8 @@ export class ODataCallable extends ODataSchemaElement {
|
|
|
62
62
|
binding() {
|
|
63
63
|
return this.parser.binding();
|
|
64
64
|
}
|
|
65
|
+
returnType() {
|
|
66
|
+
return this.parser.returnType();
|
|
67
|
+
}
|
|
65
68
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL2NhbGxhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHaEQsTUFBTSxPQUFPLGFBQWlCLFNBQVEsd0JBR3JDO0lBQ0MsYUFBYSxDQUFVO0lBQ3ZCLEtBQUssQ0FBVztJQUNoQixVQUFVLENBQVc7SUFFckIsWUFBWSxNQUFzQixFQUFFLE1BQW1CO1FBQ3JELEtBQUssQ0FDSCxNQUFNLEVBQ04sTUFBTSxFQUNOLElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNoRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQVksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDN0MsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7WUFFbEUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSTtnQkFDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUE4QjtRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNwQixPQUFPO1lBQ1AsYUFBYSxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUF1QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsS0FBVSxFQUFFLE9BQXVCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFVLEVBQUUsT0FBdUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FsbGFibGVDb25maWcsIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVBhcnNlclNjaGVtYUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgT0RhdGFDYWxsYWJsZVBhcnNlciB9IGZyb20gJy4vcGFyc2Vycyc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhQ2FsbGFibGU8Uj4gZXh0ZW5kcyBPRGF0YVBhcnNlclNjaGVtYUVsZW1lbnQ8XG4gIFIsXG4gIE9EYXRhQ2FsbGFibGVQYXJzZXI8Uj5cbj4ge1xuICBlbnRpdHlTZXRQYXRoPzogc3RyaW5nO1xuICBib3VuZD86IGJvb2xlYW47XG4gIGNvbXBvc2FibGU/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ2FsbGFibGVDb25maWcsIHNjaGVtYTogT0RhdGFTY2hlbWEpIHtcbiAgICBzdXBlcihcbiAgICAgIGNvbmZpZyxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5ldyBPRGF0YUNhbGxhYmxlUGFyc2VyKGNvbmZpZywgc2NoZW1hLm5hbWVzcGFjZSwgc2NoZW1hLmFsaWFzKSxcbiAgICApO1xuICAgIHRoaXMuZW50aXR5U2V0UGF0aCA9IGNvbmZpZy5lbnRpdHlTZXRQYXRoO1xuICAgIHRoaXMuYm91bmQgPSBjb25maWcuYm91bmQ7XG4gICAgdGhpcy5jb21wb3NhYmxlID0gY29uZmlnLmNvbXBvc2FibGU7XG4gIH1cblxuICBwYXRoKCkge1xuICAgIGxldCBwYXRoOiBzdHJpbmc7XG4gICAgaWYgKHRoaXMuZW50aXR5U2V0UGF0aCkgcGF0aCA9IHRoaXMuZW50aXR5U2V0UGF0aDtcbiAgICBlbHNlIGlmICh0aGlzLmJvdW5kKSBwYXRoID0gYCR7dGhpcy5zY2hlbWEubmFtZXNwYWNlfS4ke3RoaXMubmFtZX1gO1xuICAgIGVsc2VcbiAgICAgIHBhdGggPSB0aGlzLnBhcnNlci5yZXR1cm5cbiAgICAgICAgPyB0aGlzLmFwaS5maW5kRW50aXR5U2V0KHRoaXMucGFyc2VyLnJldHVybi50eXBlKT8ubmFtZSB8fCB0aGlzLm5hbWVcbiAgICAgICAgOiB0aGlzLm5hbWU7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBjb25maWd1cmUoeyBvcHRpb25zIH06IHsgb3B0aW9uczogUGFyc2VyT3B0aW9ucyB9KSB7XG4gICAgdGhpcy5wYXJzZXIuY29uZmlndXJlKHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICBwYXJzZXJGb3JUeXBlOiAodDogc3RyaW5nKSA9PiB0aGlzLmFwaS5wYXJzZXJGb3JUeXBlKHQpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VpYWxpemUgdGhlIGdpdmVuIHZhbHVlIGZyb20gdGhlIGNhbGxhYmxlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gZGVzZXJpYWxpemVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVzZXJpYWxpemF0aW9uXG4gICAqIEByZXR1cm5zIERlc2VyaWFsaXplZCB2YWx1ZVxuICAgKi9cbiAgZGVzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5kZXNlcmlhbGl6ZSh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBnaXZlbiB2YWx1ZSBmb3IgdGhlIGNhbGxhYmxlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gc2VyaWFsaXplXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHNlcmlhbGl6YXRpb25cbiAgICogQHJldHVybnMgU2VyaWFsaXplZCB2YWx1ZVxuICAgKi9cbiAgc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgdGhlIGdpdmVuIHZhbHVlIGZvciB0aGUgY2FsbGFibGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBlbmNvZGVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZW5jb2RpbmdcbiAgICogQHJldHVybnMgRW5jb2RlZCB2YWx1ZVxuICAgKi9cbiAgZW5jb2RlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuZW5jb2RlKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBiaW5kaW5nIHBhcmFtZXRlciBvZiB0aGUgY2FsbGFibGUuXG4gICAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIHBhcmFtZXRlciBvZiB0aGUgY2FsbGFibGUuXG4gICAqL1xuICBiaW5kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5iaW5kaW5nKCk7XG4gIH1cblxuICByZXR1cm5UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5yZXR1cm5UeXBlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Strings } from '../utils';
|
|
2
2
|
import { ODataAnnotatable } from './annotation';
|
|
3
3
|
export class ODataSchemaElement extends ODataAnnotatable {
|
|
4
|
+
name;
|
|
5
|
+
schema;
|
|
4
6
|
constructor(config, schema) {
|
|
5
7
|
super(config);
|
|
6
8
|
this.schema = schema;
|
|
@@ -16,7 +18,7 @@ export class ODataSchemaElement extends ODataAnnotatable {
|
|
|
16
18
|
* @returns The titleized string.
|
|
17
19
|
*/
|
|
18
20
|
titleize(term) {
|
|
19
|
-
return (term && this.annotatedValue(term))
|
|
21
|
+
return (term && this.annotatedValue(term)) ?? Strings.titleCase(this.name);
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Returns a full type of the structured type including the namespace/alias.
|
|
@@ -31,19 +33,19 @@ export class ODataSchemaElement extends ODataAnnotatable {
|
|
|
31
33
|
* @param type String representation of the type
|
|
32
34
|
* @returns True if the callable is type of the given type
|
|
33
35
|
*/
|
|
34
|
-
isTypeOf(
|
|
35
|
-
|
|
36
|
+
isTypeOf(element) {
|
|
37
|
+
const names = [`${this.schema.namespace}.${this.name}`];
|
|
36
38
|
if (this.schema.alias)
|
|
37
39
|
names.push(`${this.schema.alias}.${this.name}`);
|
|
38
|
-
return names.
|
|
40
|
+
return names.includes(element.type());
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
43
|
* Returns a boolean indicating if the structured type is a subtype of the given type.
|
|
42
44
|
* @param type String representation of the type
|
|
43
45
|
* @returns True if the callable is type of the given type
|
|
44
46
|
*/
|
|
45
|
-
isSubtypeOf(
|
|
46
|
-
if (this.isTypeOf(
|
|
47
|
+
isSubtypeOf(element) {
|
|
48
|
+
if (this.isTypeOf(element))
|
|
47
49
|
return true;
|
|
48
50
|
return false;
|
|
49
51
|
}
|
|
@@ -52,10 +54,17 @@ export class ODataSchemaElement extends ODataAnnotatable {
|
|
|
52
54
|
* @param type String representation of the type
|
|
53
55
|
* @returns True if the callable is type of the given type
|
|
54
56
|
*/
|
|
55
|
-
isSupertypeOf(
|
|
56
|
-
if (this.isTypeOf(
|
|
57
|
+
isSupertypeOf(element) {
|
|
58
|
+
if (this.isTypeOf(element))
|
|
57
59
|
return true;
|
|
58
60
|
return false;
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
|
-
|
|
63
|
+
export class ODataParserSchemaElement extends ODataSchemaElement {
|
|
64
|
+
parser;
|
|
65
|
+
constructor(config, schema, parser) {
|
|
66
|
+
super(config, schema);
|
|
67
|
+
this.parser = parser;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBQ3RELElBQUksQ0FBUztJQUNiLE1BQU0sQ0FBYztJQUVwQixZQUNFLE1BQTBELEVBQzFELE1BQW1CO1FBRW5CLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsSUFBc0I7UUFDN0IsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxLQUEwQixFQUFFO1FBQzlDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBMkI7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxPQUEyQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUEyQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBR1gsU0FBUSxrQkFBa0I7SUFDMUIsTUFBTSxDQUFJO0lBQ1YsWUFDRSxNQUEwRCxFQUMxRCxNQUFtQixFQUNuQixNQUFTO1FBRVQsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9uQ29uZmlnLCBQYXJzZXIgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgT0RhdGFBbm5vdGF0YWJsZSB9IGZyb20gJy4vYW5ub3RhdGlvbic7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhU2NoZW1hRWxlbWVudCBleHRlbmRzIE9EYXRhQW5ub3RhdGFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNjaGVtYTogT0RhdGFTY2hlbWE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29uZmlnOiB7IGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdOyBuYW1lOiBzdHJpbmcgfSxcbiAgICBzY2hlbWE6IE9EYXRhU2NoZW1hLFxuICApIHtcbiAgICBzdXBlcihjb25maWcpO1xuICAgIHRoaXMuc2NoZW1hID0gc2NoZW1hO1xuICAgIHRoaXMubmFtZSA9IGNvbmZpZy5uYW1lO1xuICB9XG5cbiAgZ2V0IGFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWEuYXBpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5pY2VyIGxvb2tpbmcgdGl0bGUuXG4gICAqIFRpdGxlaXplIGlzIG1lYW50IGZvciBjcmVhdGluZyBwcmV0dHkgb3V0cHV0LlxuICAgKiBAcGFyYW0gdGVybSBUaGUgdGVybSBvZiB0aGUgYW5ub3RhdGlvbiB0byBmaW5kLlxuICAgKiBAcmV0dXJucyBUaGUgdGl0bGVpemVkIHN0cmluZy5cbiAgICovXG4gIHRpdGxlaXplKHRlcm0/OiBzdHJpbmcgfCBSZWdFeHApOiBzdHJpbmcge1xuICAgIHJldHVybiAodGVybSAmJiB0aGlzLmFubm90YXRlZFZhbHVlKHRlcm0pKSA/PyBTdHJpbmdzLnRpdGxlQ2FzZSh0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBmdWxsIHR5cGUgb2YgdGhlIHN0cnVjdHVyZWQgdHlwZSBpbmNsdWRpbmcgdGhlIG5hbWVzcGFjZS9hbGlhcy5cbiAgICogQHBhcmFtIGFsaWFzIFVzZSB0aGUgYWxpYXMgb2YgdGhlIG5hbWVzcGFjZSBpbnN0ZWFkIG9mIHRoZSBuYW1lc3BhY2UuXG4gICAqIEByZXR1cm5zIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGUuXG4gICAqL1xuICB0eXBlKHsgYWxpYXMgPSBmYWxzZSB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICByZXR1cm4gYCR7YWxpYXMgPyB0aGlzLnNjaGVtYS5hbGlhcyA6IHRoaXMuc2NoZW1hLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1R5cGVPZihlbGVtZW50OiBPRGF0YVNjaGVtYUVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBuYW1lcyA9IFtgJHt0aGlzLnNjaGVtYS5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLnNjaGVtYS5hbGlhcykgbmFtZXMucHVzaChgJHt0aGlzLnNjaGVtYS5hbGlhc30uJHt0aGlzLm5hbWV9YCk7XG4gICAgcmV0dXJuIG5hbWVzLmluY2x1ZGVzKGVsZW1lbnQudHlwZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgYSBzdWJ0eXBlIG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGVcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY2FsbGFibGUgaXMgdHlwZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgaXNTdWJ0eXBlT2YoZWxlbWVudDogT0RhdGFTY2hlbWFFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNUeXBlT2YoZWxlbWVudCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgYSBzdXBlcnR5cGUgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1N1cGVydHlwZU9mKGVsZW1lbnQ6IE9EYXRhU2NoZW1hRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVHlwZU9mKGVsZW1lbnQpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhUGFyc2VyU2NoZW1hRWxlbWVudDxcbiAgRSxcbiAgUCBleHRlbmRzIFBhcnNlcjxFPixcbj4gZXh0ZW5kcyBPRGF0YVNjaGVtYUVsZW1lbnQge1xuICBwYXJzZXI6IFA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZzogeyBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTsgbmFtZTogc3RyaW5nIH0sXG4gICAgc2NoZW1hOiBPRGF0YVNjaGVtYSxcbiAgICBwYXJzZXI6IFAsXG4gICkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgfVxufVxuIl19
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { ODataSchemaElement } from './element';
|
|
2
2
|
import { ODataEntitySet } from './entity-set';
|
|
3
|
+
import { ODataSingleton } from './singleton';
|
|
3
4
|
export class ODataEntityContainer extends ODataSchemaElement {
|
|
5
|
+
entitySets;
|
|
6
|
+
singletons;
|
|
4
7
|
constructor(config, schema) {
|
|
5
8
|
super(config, schema);
|
|
6
|
-
this.entitySets = (config.entitySets
|
|
9
|
+
this.entitySets = (config.entitySets ?? []).map((config) => new ODataEntitySet(config, schema));
|
|
10
|
+
this.singletons = (config.singletons ?? []).map((config) => new ODataSingleton(config, schema));
|
|
7
11
|
}
|
|
8
12
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZW50aXR5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFDMUQsVUFBVSxDQUFtQjtJQUM3QixVQUFVLENBQW1CO0lBRTdCLFlBQVksTUFBNkIsRUFBRSxNQUFtQjtRQUM1RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDL0MsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eUNvbnRhaW5lckNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNldCB9IGZyb20gJy4vZW50aXR5LXNldCc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcbmltcG9ydCB7IE9EYXRhU2luZ2xldG9uIH0gZnJvbSAnLi9zaW5nbGV0b24nO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFFbnRpdHlDb250YWluZXIgZXh0ZW5kcyBPRGF0YVNjaGVtYUVsZW1lbnQge1xuICBlbnRpdHlTZXRzOiBPRGF0YUVudGl0eVNldFtdO1xuICBzaW5nbGV0b25zOiBPRGF0YVNpbmdsZXRvbltdO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRW50aXR5Q29udGFpbmVyQ29uZmlnLCBzY2hlbWE6IE9EYXRhU2NoZW1hKSB7XG4gICAgc3VwZXIoY29uZmlnLCBzY2hlbWEpO1xuICAgIHRoaXMuZW50aXR5U2V0cyA9IChjb25maWcuZW50aXR5U2V0cyA/PyBbXSkubWFwKFxuICAgICAgKGNvbmZpZykgPT4gbmV3IE9EYXRhRW50aXR5U2V0KGNvbmZpZywgc2NoZW1hKSxcbiAgICApO1xuICAgIHRoaXMuc2luZ2xldG9ucyA9IChjb25maWcuc2luZ2xldG9ucyA/PyBbXSkubWFwKFxuICAgICAgKGNvbmZpZykgPT4gbmV3IE9EYXRhU2luZ2xldG9uKGNvbmZpZywgc2NoZW1hKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ODataSchemaElement } from './element';
|
|
2
2
|
export class ODataEntitySet extends ODataSchemaElement {
|
|
3
|
+
entityType;
|
|
4
|
+
service;
|
|
3
5
|
constructor(config, schema) {
|
|
4
6
|
super(config, schema);
|
|
5
7
|
this.entityType = config.entityType;
|
|
6
8
|
this.service = config.service;
|
|
7
9
|
}
|
|
8
10
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZW50aXR5LXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHL0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxrQkFBa0I7SUFDcEQsVUFBVSxDQUFTO0lBQ25CLE9BQU8sQ0FBa0M7SUFDekMsWUFBWSxNQUF1QixFQUFFLE1BQW1CO1FBQ3RELEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTZXRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgT0RhdGFTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUVudGl0eVNldCBleHRlbmRzIE9EYXRhU2NoZW1hRWxlbWVudCB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgc2VydmljZTogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbnRpdHlTZXRDb25maWcsIHNjaGVtYTogT0RhdGFTY2hlbWEpIHtcbiAgICBzdXBlcihjb25maWcsIHNjaGVtYSk7XG4gICAgdGhpcy5lbnRpdHlUeXBlID0gY29uZmlnLmVudGl0eVR5cGU7XG4gICAgdGhpcy5zZXJ2aWNlID0gY29uZmlnLnNlcnZpY2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ODataParserSchemaElement } from './element';
|
|
2
2
|
import { ODataEnumTypeParser } from './parsers';
|
|
3
|
-
export class ODataEnumType extends
|
|
3
|
+
export class ODataEnumType extends ODataParserSchemaElement {
|
|
4
|
+
members;
|
|
4
5
|
constructor(config, schema) {
|
|
5
|
-
super(config, schema);
|
|
6
|
+
super(config, schema, new ODataEnumTypeParser(config, schema.namespace, schema.alias));
|
|
6
7
|
this.members = config.members;
|
|
7
|
-
this.parser = new ODataEnumTypeParser(config, schema.namespace, schema.alias);
|
|
8
8
|
}
|
|
9
|
-
configure({ options
|
|
10
|
-
this.parser.configure({ options
|
|
9
|
+
configure({ options }) {
|
|
10
|
+
this.parser.configure({ options });
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Returns the fields of the enum type.
|
|
14
14
|
* @returns The fields of the enum type.
|
|
15
15
|
*/
|
|
16
|
-
fields(
|
|
17
|
-
return this.parser.fields(
|
|
16
|
+
fields(namesValue) {
|
|
17
|
+
return this.parser.fields(namesValue);
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Find a field by name or value.
|
|
21
21
|
* @param enu The name or value of the field
|
|
22
22
|
* @returns The field with the given name or value
|
|
23
23
|
*/
|
|
24
|
-
field(
|
|
25
|
-
return this.parser.field(
|
|
24
|
+
field(nameValue) {
|
|
25
|
+
return this.parser.field(nameValue);
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Map the fields of the enum type.
|
|
@@ -66,4 +66,4 @@ export class ODataEnumType extends ODataSchemaElement {
|
|
|
66
66
|
return this.parser.pack(value);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9lbnVtLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JELE9BQU8sRUFBNEIsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHMUUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsd0JBR3JDO0lBQ0MsT0FBTyxDQUEyRDtJQUNsRSxZQUFZLE1BQXNCLEVBQUUsTUFBbUI7UUFDckQsS0FBSyxDQUNILE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxtQkFBbUIsQ0FBSSxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQ25FLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBOEI7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsVUFBNEI7UUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxTQUEwQjtRQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFJLE1BQThDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUF1QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLE9BQXVCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFhLEVBQUUsT0FBdUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBaUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtVHlwZUNvbmZpZywgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGFyc2VyU2NoZW1hRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXIsIE9EYXRhRW51bVR5cGVQYXJzZXIgfSBmcm9tICcuL3BhcnNlcnMnO1xuaW1wb3J0IHsgT0RhdGFTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUVudW1UeXBlPEU+IGV4dGVuZHMgT0RhdGFQYXJzZXJTY2hlbWFFbGVtZW50PFxuICBFLFxuICBPRGF0YUVudW1UeXBlUGFyc2VyPEU+XG4+IHtcbiAgbWVtYmVyczogeyBbbmFtZTogc3RyaW5nXTogbnVtYmVyIH0gfCB7IFt2YWx1ZTogbnVtYmVyXTogc3RyaW5nIH07XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRW51bVR5cGVDb25maWcsIHNjaGVtYTogT0RhdGFTY2hlbWEpIHtcbiAgICBzdXBlcihcbiAgICAgIGNvbmZpZyxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5ldyBPRGF0YUVudW1UeXBlUGFyc2VyPEU+KGNvbmZpZywgc2NoZW1hLm5hbWVzcGFjZSwgc2NoZW1hLmFsaWFzKSxcbiAgICApO1xuICAgIHRoaXMubWVtYmVycyA9IGNvbmZpZy5tZW1iZXJzO1xuICB9XG5cbiAgY29uZmlndXJlKHsgb3B0aW9ucyB9OiB7IG9wdGlvbnM6IFBhcnNlck9wdGlvbnMgfSkge1xuICAgIHRoaXMucGFyc2VyLmNvbmZpZ3VyZSh7IG9wdGlvbnMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmllbGRzIG9mIHRoZSBlbnVtIHR5cGUuXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZHMgb2YgdGhlIGVudW0gdHlwZS5cbiAgICovXG4gIGZpZWxkcyhuYW1lc1ZhbHVlPzogc3RyaW5nIHwgbnVtYmVyKTogT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyW10ge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5maWVsZHMobmFtZXNWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGZpZWxkIGJ5IG5hbWUgb3IgdmFsdWUuXG4gICAqIEBwYXJhbSBlbnUgVGhlIG5hbWUgb3IgdmFsdWUgb2YgdGhlIGZpZWxkXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiBuYW1lIG9yIHZhbHVlXG4gICAqL1xuICBmaWVsZChuYW1lVmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5maWVsZChuYW1lVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCB0aGUgZmllbGRzIG9mIHRoZSBlbnVtIHR5cGUuXG4gICAqIEBwYXJhbSBtYXBwZXIgRnVuY3Rpb24gdGhhdCBtYXBzIHRoZSB2YWx1ZSB0byB0aGUgbmV3IHZhbHVlXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZHMgbWFwcGVkIGJ5IHRoZSBtYXBwZXJcbiAgICovXG4gIG1hcEZpZWxkczxUPihtYXBwZXI6IChmaWVsZDogT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyKSA9PiBUKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLm1hcEZpZWxkcyhtYXBwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VpYWxpemUgdGhlIGdpdmVuIHZhbHVlIGZyb20gdGhlIGVudW0gdHlwZS5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGRlc2VyaWFsaXplXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGRlc2VyaWFsaXphdGlvblxuICAgKiBAcmV0dXJucyBEZXNlcmlhbGl6ZWQgdmFsdWVcbiAgICovXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogRSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmRlc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIGdpdmVuIHZhbHVlIGZvciB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gc2VyaWFsaXplXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHNlcmlhbGl6YXRpb25cbiAgICogQHJldHVybnMgU2VyaWFsaXplZCB2YWx1ZVxuICAgKi9cbiAgc2VyaWFsaXplKHZhbHVlOiBudW1iZXIsIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgdGhlIGdpdmVuIHZhbHVlIGZvciB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gZW5jb2RlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGVuY29kaW5nXG4gICAqIEByZXR1cm5zIEVuY29kZWQgdmFsdWVcbiAgICovXG4gIGVuY29kZSh2YWx1ZTogbnVtYmVyLCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmVuY29kZSh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICB1bnBhY2sodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci51bnBhY2sodmFsdWUpO1xuICB9XG5cbiAgcGFjayh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVtYmVyW10pIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIucGFjayh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,5 +4,6 @@ export * from './callable';
|
|
|
4
4
|
export * from './enum-type';
|
|
5
5
|
export * from './structured-type';
|
|
6
6
|
export * from './entity-set';
|
|
7
|
+
export * from './singleton';
|
|
7
8
|
export * from './parsers';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LWNvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2NhbGxhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlZC10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXNldCc7XG5leHBvcnQgKiBmcm9tICcuL3NpbmdsZXRvbic7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlcnMnO1xuIl19
|
|
@@ -3,6 +3,12 @@ import { NONE_PARSER, } from '../../types';
|
|
|
3
3
|
import { ODataEnumTypeParser } from './enum-type';
|
|
4
4
|
import { ODataStructuredTypeParser } from './structured-type';
|
|
5
5
|
export class ODataParameterParser {
|
|
6
|
+
name;
|
|
7
|
+
type;
|
|
8
|
+
parser;
|
|
9
|
+
collection;
|
|
10
|
+
nullable;
|
|
11
|
+
parserOptions;
|
|
6
12
|
constructor(name, parameter) {
|
|
7
13
|
this.name = name;
|
|
8
14
|
this.type = parameter.type;
|
|
@@ -23,7 +29,7 @@ export class ODataParameterParser {
|
|
|
23
29
|
? value.map((v) => this.parser.encode(v, parserOptions))
|
|
24
30
|
: this.parser.encode(value, parserOptions);
|
|
25
31
|
}
|
|
26
|
-
configure({ options, parserForType,
|
|
32
|
+
configure({ options, parserForType, }) {
|
|
27
33
|
this.parserOptions = options;
|
|
28
34
|
this.parser = parserForType(this.type);
|
|
29
35
|
}
|
|
@@ -33,7 +39,7 @@ export class ODataParameterParser {
|
|
|
33
39
|
isEnumType() {
|
|
34
40
|
return this.parser instanceof ODataEnumTypeParser;
|
|
35
41
|
}
|
|
36
|
-
|
|
42
|
+
enumType() {
|
|
37
43
|
if (!this.isEnumType())
|
|
38
44
|
throw new Error('Field are not EnumType');
|
|
39
45
|
return this.parser;
|
|
@@ -41,7 +47,7 @@ export class ODataParameterParser {
|
|
|
41
47
|
isStructuredType() {
|
|
42
48
|
return this.parser instanceof ODataStructuredTypeParser;
|
|
43
49
|
}
|
|
44
|
-
|
|
50
|
+
structuredType() {
|
|
45
51
|
if (!this.isStructuredType())
|
|
46
52
|
throw new Error('Field are not StrucuturedType');
|
|
47
53
|
return this.parser;
|
|
@@ -53,6 +59,13 @@ export class ODataParameterParser {
|
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
export class ODataCallableParser {
|
|
62
|
+
name;
|
|
63
|
+
namespace;
|
|
64
|
+
alias;
|
|
65
|
+
return;
|
|
66
|
+
parser;
|
|
67
|
+
parameters;
|
|
68
|
+
parserOptions;
|
|
56
69
|
constructor(config, namespace, alias) {
|
|
57
70
|
this.name = config.name;
|
|
58
71
|
this.namespace = namespace;
|
|
@@ -94,14 +107,17 @@ export class ODataCallableParser {
|
|
|
94
107
|
[p.name]: p.encode(params[p.name], parserOptions),
|
|
95
108
|
}), {});
|
|
96
109
|
}
|
|
97
|
-
configure({ options, parserForType,
|
|
110
|
+
configure({ options, parserForType, }) {
|
|
98
111
|
this.parserOptions = options;
|
|
99
112
|
if (this.return)
|
|
100
|
-
this.parser = parserForType(this.return.type)
|
|
101
|
-
this.parameters.forEach((p) => p.configure({ options, parserForType
|
|
113
|
+
this.parser = parserForType(this.return.type) ?? NONE_PARSER;
|
|
114
|
+
this.parameters.forEach((p) => p.configure({ options, parserForType }));
|
|
102
115
|
}
|
|
103
116
|
binding() {
|
|
104
117
|
return this.parameters.find((p) => p.name === CALLABLE_BINDING_PARAMETER);
|
|
105
118
|
}
|
|
119
|
+
returnType() {
|
|
120
|
+
return this.return?.type;
|
|
121
|
+
}
|
|
106
122
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL3BhcnNlcnMvY2FsbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUVMLFdBQVcsR0FJWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFZLElBQVksRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVEsRUFBRSxPQUF1QjtRQUN6QyxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FB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NUQsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSywwQkFBMEIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIENhbGxhYmxlQ29uZmlnLFxuICBOT05FX1BBUlNFUixcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUGFyYW1ldGVyLFxuICBQYXJzZXIsXG59IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhRW51bVR5cGVQYXJzZXIgfSBmcm9tICcuL2VudW0tdHlwZSc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyIH0gZnJvbSAnLi9zdHJ1Y3R1cmVkLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXJhbWV0ZXJQYXJzZXI8VD4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlcjxUPjtcbiAgY29sbGVjdGlvbj86IGJvb2xlYW47XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wYXJzZXIgPSBOT05FX1BBUlNFUjtcbiAgICB0aGlzLm51bGxhYmxlID0gcGFyYW1ldGVyLm51bGxhYmxlO1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IHBhcmFtZXRlci5jb2xsZWN0aW9uO1xuICB9XG5cbiAgc2VyaWFsaXplKHZhbHVlOiBULCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHYsIHBhcnNlck9wdGlvbnMpKVxuICAgICAgOiB0aGlzLnBhcnNlci5zZXJpYWxpemUodmFsdWUsIHBhcnNlck9wdGlvbnMpO1xuICB9XG5cbiAgLy9FbmNvZGVcbiAgZW5jb2RlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnBhcnNlci5lbmNvZGUodiwgcGFyc2VyT3B0aW9ucykpXG4gICAgICA6IHRoaXMucGFyc2VyLmVuY29kZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlckZvclR5cGUodGhpcy50eXBlKTtcbiAgfVxuXG4gIGlzRWRtVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlLnN0YXJ0c1dpdGgoJ0VkbS4nKTtcbiAgfVxuXG4gIGlzRW51bVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGluc3RhbmNlb2YgT0RhdGFFbnVtVHlwZVBhcnNlcjtcbiAgfVxuXG4gIGVudW0oKSB7XG4gICAgaWYgKCF0aGlzLmlzRW51bVR5cGUoKSkgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBhcmUgbm90IEVudW1UeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhRW51bVR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBpc1N0cnVjdHVyZWRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlciBpbnN0YW5jZW9mIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI7XG4gIH1cblxuICBzdHJ1Y3R1cmVkKCkge1xuICAgIGlmICghdGhpcy5pc1N0cnVjdHVyZWRUeXBlKCkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGFyZSBub3QgU3RydWN1dHVyZWRUeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBmaWVsZDxGPihuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc1N0cnVjdHVyZWRUeXBlKCkpXG4gICAgICByZXR1cm4gKHRoaXMucGFyc2VyIGFzIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI8VD4pLmZpZWxkPEY+KFxuICAgICAgICBuYW1lIGFzIGtleW9mIFQsXG4gICAgICApO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgZmllbGQgJHt0aGlzLm5hbWV9IGlzIG5vdCByZWxhdGVkIHRvIGEgU3RydWN0dXJlZFR5cGVgLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhQ2FsbGFibGVQYXJzZXI8Uj4gaW1wbGVtZW50cyBQYXJzZXI8Uj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBhbGlhcz86IHN0cmluZztcbiAgcmV0dXJuPzogeyB0eXBlOiBzdHJpbmc7IGNvbGxlY3Rpb24/OiBib29sZWFuIH07XG4gIHBhcnNlcjogUGFyc2VyPGFueT47XG4gIHBhcmFtZXRlcnM6IE9EYXRhUGFyYW1ldGVyUGFyc2VyPGFueT5bXTtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBDYWxsYWJsZUNvbmZpZywgbmFtZXNwYWNlOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gY29uZmlnLm5hbWU7XG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gICAgdGhpcy5hbGlhcyA9IGFsaWFzO1xuICAgIHRoaXMucmV0dXJuID0gY29uZmlnLnJldHVybjtcbiAgICB0aGlzLnBhcnNlciA9IE5PTkVfUEFSU0VSO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IE9iamVjdC5lbnRyaWVzKGNvbmZpZy5wYXJhbWV0ZXJzIHx8IFtdKS5tYXAoXG4gICAgICAoW25hbWUsIHBdKSA9PiBuZXcgT0RhdGFQYXJhbWV0ZXJQYXJzZXIobmFtZSwgcCBhcyBQYXJhbWV0ZXIpLFxuICAgICk7XG4gIH1cblxuICBpc1R5cGVPZih0eXBlOiBzdHJpbmcpIHtcbiAgICB2YXIgbmFtZXMgPSBbYCR7dGhpcy5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLmFsaWFzKSBuYW1lcy5wdXNoKGAke3RoaXMuYWxpYXN9LiR7dGhpcy5uYW1lfWApO1xuICAgIHJldHVybiBuYW1lcy5pbmRleE9mKHR5cGUpICE9PSAtMTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogUiB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmRlc2VyaWFsaXplKHZhbHVlLCBwYXJzZXJPcHRpb25zKTtcbiAgfVxuXG4gIC8vIFNlcmlhbGl6ZVxuICBzZXJpYWxpemUocGFyYW1zOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLnNlcmlhbGl6ZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG4gIH1cblxuICAvL0VuY29kZVxuICBlbmNvZGUocGFyYW1zOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLmVuY29kZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICBpZiAodGhpcy5yZXR1cm4pXG4gICAgICB0aGlzLnBhcnNlciA9IHBhcnNlckZvclR5cGUodGhpcy5yZXR1cm4udHlwZSkgfHwgTk9ORV9QQVJTRVI7XG4gICAgdGhpcy5wYXJhbWV0ZXJzLmZvckVhY2goKHApID0+XG4gICAgICBwLmNvbmZpZ3VyZSh7IG9wdGlvbnMsIHBhcnNlckZvclR5cGUsIGZpbmRPcHRpb25zRm9yVHlwZSB9KSxcbiAgICApO1xuICB9XG5cbiAgYmluZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIpO1xuICB9XG59XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL3BhcnNlcnMvY2FsbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUVMLFdBQVcsR0FJWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixJQUFJLENBQVM7SUFDYixJQUFJLENBQVM7SUFDTCxNQUFNLENBQVk7SUFDMUIsVUFBVSxDQUFXO0lBQ3JCLFFBQVEsQ0FBVztJQUNuQixhQUFhLENBQWlCO0lBRTlCLFlBQVksSUFBWSxFQUFFLFNBQTBCO1FBQ2xELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBUSxFQUFFLE9BQXVCO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFF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LGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQztRQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDBCQUEwQixDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIENhbGxhYmxlQ29uZmlnLFxuICBOT05FX1BBUlNFUixcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUGFyYW1ldGVyQ29uZmlnLFxuICBQYXJzZXIsXG59IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhRW51bVR5cGVQYXJzZXIgfSBmcm9tICcuL2VudW0tdHlwZSc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyIH0gZnJvbSAnLi9zdHJ1Y3R1cmVkLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXJhbWV0ZXJQYXJzZXI8VD4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlcjxUPjtcbiAgY29sbGVjdGlvbj86IGJvb2xlYW47XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwYXJhbWV0ZXI6IFBhcmFtZXRlckNvbmZpZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wYXJzZXIgPSBOT05FX1BBUlNFUjtcbiAgICB0aGlzLm51bGxhYmxlID0gcGFyYW1ldGVyLm51bGxhYmxlO1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IHBhcmFtZXRlci5jb2xsZWN0aW9uO1xuICB9XG5cbiAgc2VyaWFsaXplKHZhbHVlOiBULCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHYsIHBhcnNlck9wdGlvbnMpKVxuICAgICAgOiB0aGlzLnBhcnNlci5zZXJpYWxpemUodmFsdWUsIHBhcnNlck9wdGlvbnMpO1xuICB9XG5cbiAgLy9FbmNvZGVcbiAgZW5jb2RlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnBhcnNlci5lbmNvZGUodiwgcGFyc2VyT3B0aW9ucykpXG4gICAgICA6IHRoaXMucGFyc2VyLmVuY29kZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgfToge1xuICAgIG9wdGlvbnM6IFBhcnNlck9wdGlvbnM7XG4gICAgcGFyc2VyRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gUGFyc2VyPGFueT47XG4gIH0pIHtcbiAgICB0aGlzLnBhcnNlck9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMucGFyc2VyID0gcGFyc2VyRm9yVHlwZSh0aGlzLnR5cGUpO1xuICB9XG5cbiAgaXNFZG1UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUuc3RhcnRzV2l0aCgnRWRtLicpO1xuICB9XG5cbiAgaXNFbnVtVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIgaW5zdGFuY2VvZiBPRGF0YUVudW1UeXBlUGFyc2VyO1xuICB9XG5cbiAgZW51bVR5cGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzRW51bVR5cGUoKSkgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBhcmUgbm90IEVudW1UeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhRW51bVR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBpc1N0cnVjdHVyZWRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlciBpbnN0YW5jZW9mIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI7XG4gIH1cblxuICBzdHJ1Y3R1cmVkVHlwZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNTdHJ1Y3R1cmVkVHlwZSgpKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBhcmUgbm90IFN0cnVjdXR1cmVkVHlwZScpO1xuICAgIHJldHVybiB0aGlzLnBhcnNlciBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyPFQ+O1xuICB9XG5cbiAgZmllbGQ8Rj4obmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNTdHJ1Y3R1cmVkVHlwZSgpKVxuICAgICAgcmV0dXJuICh0aGlzLnBhcnNlciBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyPFQ+KS5maWVsZDxGPihcbiAgICAgICAgbmFtZSBhcyBrZXlvZiBULFxuICAgICAgKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVGhlIGZpZWxkICR7dGhpcy5uYW1lfSBpcyBub3QgcmVsYXRlZCB0byBhIFN0cnVjdHVyZWRUeXBlYCxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUNhbGxhYmxlUGFyc2VyPFI+IGltcGxlbWVudHMgUGFyc2VyPFI+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmc7XG4gIHJldHVybj86IHsgdHlwZTogc3RyaW5nOyBjb2xsZWN0aW9uPzogYm9vbGVhbiB9O1xuICBwYXJzZXI6IFBhcnNlcjxhbnk+O1xuICBwYXJhbWV0ZXJzOiBPRGF0YVBhcmFtZXRlclBhcnNlcjxhbnk+W107XG4gIHBhcnNlck9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ2FsbGFibGVDb25maWcsIG5hbWVzcGFjZTogc3RyaW5nLCBhbGlhcz86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IGNvbmZpZy5uYW1lO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuYWxpYXMgPSBhbGlhcztcbiAgICB0aGlzLnJldHVybiA9IGNvbmZpZy5yZXR1cm47XG4gICAgdGhpcy5wYXJzZXIgPSBOT05FX1BBUlNFUjtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBPYmplY3QuZW50cmllcyhjb25maWcucGFyYW1ldGVycyB8fCBbXSkubWFwKFxuICAgICAgKFtuYW1lLCBwXSkgPT4gbmV3IE9EYXRhUGFyYW1ldGVyUGFyc2VyKG5hbWUsIHAgYXMgUGFyYW1ldGVyQ29uZmlnKSxcbiAgICApO1xuICB9XG5cbiAgaXNUeXBlT2YodHlwZTogc3RyaW5nKSB7XG4gICAgdmFyIG5hbWVzID0gW2Ake3RoaXMubmFtZXNwYWNlfS4ke3RoaXMubmFtZX1gXTtcbiAgICBpZiAodGhpcy5hbGlhcykgbmFtZXMucHVzaChgJHt0aGlzLmFsaWFzfS4ke3RoaXMubmFtZX1gKTtcbiAgICByZXR1cm4gbmFtZXMuaW5kZXhPZih0eXBlKSAhPT0gLTE7XG4gIH1cblxuICAvLyBEZXNlcmlhbGl6ZVxuICBkZXNlcmlhbGl6ZSh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IFIge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPSB7IC4uLnRoaXMucGFyc2VyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5kZXNlcmlhbGl6ZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICAvLyBTZXJpYWxpemVcbiAgc2VyaWFsaXplKHBhcmFtczogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVyc1xuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lICE9PSBDQUxMQUJMRV9CSU5ESU5HX1BBUkFNRVRFUilcbiAgICAgIC5maWx0ZXIoKHApID0+IHAubmFtZSBpbiBwYXJhbXMgJiYgcGFyYW1zW3AubmFtZV0gIT09IHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnMucmVkdWNlKFxuICAgICAgKGFjYywgcCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbcC5uYW1lXTogcC5zZXJpYWxpemUocGFyYW1zW3AubmFtZV0sIHBhcnNlck9wdGlvbnMpLFxuICAgICAgfSksXG4gICAgICB7fSxcbiAgICApO1xuICB9XG5cbiAgLy9FbmNvZGVcbiAgZW5jb2RlKHBhcmFtczogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVyc1xuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lICE9PSBDQUxMQUJMRV9CSU5ESU5HX1BBUkFNRVRFUilcbiAgICAgIC5maWx0ZXIoKHApID0+IHAubmFtZSBpbiBwYXJhbXMgJiYgcGFyYW1zW3AubmFtZV0gIT09IHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnMucmVkdWNlKFxuICAgICAgKGFjYywgcCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbcC5uYW1lXTogcC5lbmNvZGUocGFyYW1zW3AubmFtZV0sIHBhcnNlck9wdGlvbnMpLFxuICAgICAgfSksXG4gICAgICB7fSxcbiAgICApO1xuICB9XG5cbiAgY29uZmlndXJlKHtcbiAgICBvcHRpb25zLFxuICAgIHBhcnNlckZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICBpZiAodGhpcy5yZXR1cm4pXG4gICAgICB0aGlzLnBhcnNlciA9IHBhcnNlckZvclR5cGUodGhpcy5yZXR1cm4udHlwZSkgPz8gTk9ORV9QQVJTRVI7XG4gICAgdGhpcy5wYXJhbWV0ZXJzLmZvckVhY2goKHApID0+IHAuY29uZmlndXJlKHsgb3B0aW9ucywgcGFyc2VyRm9yVHlwZSB9KSk7XG4gIH1cblxuICBiaW5kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnMuZmluZCgocCkgPT4gcC5uYW1lID09PSBDQUxMQUJMRV9CSU5ESU5HX1BBUkFNRVRFUik7XG4gIH1cblxuICByZXR1cm5UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybj8udHlwZTtcbiAgfVxufVxuIl19
|