angular-odata 0.92.0 → 0.95.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/{esm2015/angular-odata.js → esm2020/angular-odata.mjs} +0 -0
- package/esm2020/lib/api.mjs +303 -0
- package/{esm2015/lib/cache/cache.js → esm2020/lib/cache/cache.mjs} +3 -3
- package/{esm2015/lib/cache/index.js → esm2020/lib/cache/index.mjs} +0 -0
- package/{esm2015/lib/cache/memory.js → esm2020/lib/cache/memory.mjs} +1 -1
- package/{esm2015/lib/cache/storage.js → esm2020/lib/cache/storage.mjs} +2 -2
- package/esm2020/lib/client.mjs +271 -0
- package/{esm2015/lib/constants.js → esm2020/lib/constants.mjs} +3 -1
- package/esm2020/lib/helper.mjs +268 -0
- package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +0 -0
- package/esm2020/lib/models/collection.mjs +741 -0
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
- package/esm2020/lib/models/model.mjs +453 -0
- package/esm2020/lib/models/options.mjs +945 -0
- package/{esm2015/lib/module.js → esm2020/lib/module.mjs} +7 -7
- package/esm2020/lib/options.mjs +32 -0
- package/{esm2015/lib/resources/index.js → esm2020/lib/resources/index.mjs} +0 -0
- package/{esm2015/lib/resources/path/handlers.js → esm2020/lib/resources/path/handlers.mjs} +1 -1
- package/{esm2015/lib/resources/path/index.js → esm2020/lib/resources/path/index.mjs} +0 -0
- package/esm2020/lib/resources/path/segments.mjs +124 -0
- package/esm2020/lib/resources/query/builder.mjs +590 -0
- package/esm2020/lib/resources/query/expressions.mjs +207 -0
- package/esm2020/lib/resources/query/handlers.mjs +186 -0
- package/{esm2015/lib/resources/query/index.js → esm2020/lib/resources/query/index.mjs} +0 -0
- package/esm2020/lib/resources/query/options.mjs +103 -0
- package/esm2020/lib/resources/query/syntax.mjs +406 -0
- package/esm2020/lib/resources/request.mjs +167 -0
- package/esm2020/lib/resources/resource.mjs +326 -0
- package/esm2020/lib/resources/responses/annotations.mjs +119 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-annotation.js → esm2020/lib/resources/responses/csdl/csdl-annotation.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-entity-container.js → esm2020/lib/resources/responses/csdl/csdl-entity-container.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-entity-set.js → esm2020/lib/resources/responses/csdl/csdl-entity-set.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-enum-type.js → esm2020/lib/resources/responses/csdl/csdl-enum-type.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-function-action.js → esm2020/lib/resources/responses/csdl/csdl-function-action.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-navigation-property-binding.js → esm2020/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-reference.js → esm2020/lib/resources/responses/csdl/csdl-reference.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-schema.js → esm2020/lib/resources/responses/csdl/csdl-schema.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-singleton.js → esm2020/lib/resources/responses/csdl/csdl-singleton.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-structural-property.js → esm2020/lib/resources/responses/csdl/csdl-structural-property.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-structured-type.js → esm2020/lib/resources/responses/csdl/csdl-structured-type.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-type-definition.js → esm2020/lib/resources/responses/csdl/csdl-type-definition.mjs} +0 -0
- package/{esm2015/lib/resources/responses/index.js → esm2020/lib/resources/responses/index.mjs} +0 -0
- package/esm2020/lib/resources/responses/metadata.mjs +547 -0
- package/{esm2015/lib/resources/responses/options.js → esm2020/lib/resources/responses/options.mjs} +0 -0
- package/{esm2015/lib/resources/responses/response.js → esm2020/lib/resources/responses/response.mjs} +0 -0
- package/{esm2015/lib/resources/responses/types.js → esm2020/lib/resources/responses/types.mjs} +0 -0
- package/esm2020/lib/resources/types/action.mjs +101 -0
- package/esm2020/lib/resources/types/batch.mjs +288 -0
- package/esm2020/lib/resources/types/count.mjs +27 -0
- package/esm2020/lib/resources/types/entity-set.mjs +94 -0
- package/esm2020/lib/resources/types/entity.mjs +106 -0
- package/esm2020/lib/resources/types/function.mjs +137 -0
- package/{esm2015/lib/resources/types/index.js → esm2020/lib/resources/types/index.mjs} +0 -0
- package/esm2020/lib/resources/types/media.mjs +41 -0
- package/esm2020/lib/resources/types/metadata.mjs +30 -0
- package/esm2020/lib/resources/types/navigation-property.mjs +226 -0
- package/esm2020/lib/resources/types/options.mjs +2 -0
- package/esm2020/lib/resources/types/property.mjs +183 -0
- package/esm2020/lib/resources/types/reference.mjs +85 -0
- package/esm2020/lib/resources/types/singleton.mjs +126 -0
- package/esm2020/lib/resources/types/value.mjs +41 -0
- package/esm2020/lib/schema/annotation.mjs +37 -0
- package/esm2020/lib/schema/callable.mjs +62 -0
- package/esm2020/lib/schema/element.mjs +51 -0
- package/esm2020/lib/schema/entity-container.mjs +9 -0
- package/esm2020/lib/schema/entity-set.mjs +9 -0
- package/esm2020/lib/schema/enum-type.mjs +71 -0
- package/{esm2015/lib/schema/index.js → esm2020/lib/schema/index.mjs} +0 -0
- package/esm2020/lib/schema/parsers/callable.mjs +113 -0
- package/{esm2015/lib/schema/parsers/edm.js → esm2020/lib/schema/parsers/edm.mjs} +2 -2
- package/esm2020/lib/schema/parsers/enum-type.mjs +107 -0
- package/{esm2015/lib/schema/parsers/index.js → esm2020/lib/schema/parsers/index.mjs} +0 -0
- package/esm2020/lib/schema/parsers/structured-type.mjs +412 -0
- package/esm2020/lib/schema/schema.mjs +61 -0
- package/esm2020/lib/schema/structured-type.mjs +198 -0
- package/esm2020/lib/services/base.mjs +29 -0
- package/esm2020/lib/services/entity-set.mjs +143 -0
- package/esm2020/lib/services/entity.mjs +12 -0
- package/{esm2015/lib/services/factory.js → esm2020/lib/services/factory.mjs} +3 -3
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- package/{esm2015/lib/services/singleton.js → esm2020/lib/services/singleton.mjs} +1 -1
- package/{esm2015/lib/settings.js → esm2020/lib/settings.mjs} +1 -1
- package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
- package/esm2020/lib/types.mjs +37 -0
- package/{esm2015/lib/utils/arraybuffers.js → esm2020/lib/utils/arraybuffers.mjs} +0 -0
- package/{esm2015/lib/utils/dates.js → esm2020/lib/utils/dates.mjs} +0 -0
- package/{esm2015/lib/utils/durations.js → esm2020/lib/utils/durations.mjs} +0 -0
- package/{esm2015/lib/utils/enums.js → esm2020/lib/utils/enums.mjs} +0 -0
- package/{esm2015/lib/utils/http.js → esm2020/lib/utils/http.mjs} +0 -0
- package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +0 -0
- package/{esm2015/lib/utils/objects.js → esm2020/lib/utils/objects.mjs} +0 -0
- package/esm2020/lib/utils/odata.mjs +22 -0
- package/{esm2015/lib/utils/strings.js → esm2020/lib/utils/strings.mjs} +0 -0
- package/{esm2015/lib/utils/types.js → esm2020/lib/utils/types.mjs} +0 -0
- package/{esm2015/lib/utils/urls.js → esm2020/lib/utils/urls.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{angular-odata.js → angular-odata.mjs} +849 -750
- package/fesm2015/angular-odata.mjs.map +1 -0
- package/fesm2020/angular-odata.mjs +10274 -0
- package/fesm2020/angular-odata.mjs.map +1 -0
- package/lib/api.d.ts +10 -10
- package/lib/cache/cache.d.ts +2 -2
- package/lib/cache/storage.d.ts +1 -1
- package/lib/client.d.ts +3 -3
- package/lib/constants.d.ts +1 -0
- package/lib/models/collection.d.ts +11 -19
- package/lib/models/model.d.ts +22 -18
- package/lib/models/options.d.ts +16 -21
- package/lib/module.d.ts +1 -1
- package/lib/options.d.ts +1 -0
- package/lib/resources/path/segments.d.ts +1 -1
- package/lib/resources/query/expressions.d.ts +37 -27
- package/lib/resources/query/handlers.d.ts +7 -11
- package/lib/resources/query/options.d.ts +2 -2
- package/lib/resources/query/syntax.d.ts +52 -54
- package/lib/resources/request.d.ts +1 -1
- package/lib/resources/resource.d.ts +25 -8
- package/lib/resources/types/action.d.ts +12 -19
- package/lib/resources/types/batch.d.ts +1 -3
- package/lib/resources/types/count.d.ts +5 -4
- package/lib/resources/types/entity-set.d.ts +11 -15
- package/lib/resources/types/entity.d.ts +12 -15
- package/lib/resources/types/function.d.ts +11 -18
- package/lib/resources/types/media.d.ts +6 -5
- package/lib/resources/types/metadata.d.ts +3 -5
- package/lib/resources/types/navigation-property.d.ts +15 -21
- package/lib/resources/types/property.d.ts +13 -19
- package/lib/resources/types/reference.d.ts +39 -6
- package/lib/resources/types/singleton.d.ts +12 -16
- package/lib/resources/types/value.d.ts +9 -5
- package/lib/schema/{base.d.ts → annotation.d.ts} +0 -0
- package/lib/schema/callable.d.ts +2 -18
- package/lib/schema/element.d.ts +39 -0
- package/lib/schema/entity-container.d.ts +2 -12
- package/lib/schema/entity-set.d.ts +2 -18
- package/lib/schema/enum-type.d.ts +2 -26
- package/lib/schema/parsers/enum-type.d.ts +4 -4
- package/lib/schema/parsers/structured-type.d.ts +4 -4
- package/lib/schema/schema.d.ts +2 -2
- package/lib/schema/structured-type.d.ts +8 -26
- package/lib/services/base.d.ts +2 -2
- package/lib/services/entity-set.d.ts +2 -2
- package/lib/services/entity.d.ts +1 -1
- package/lib/services/singleton.d.ts +2 -2
- package/lib/settings.d.ts +5 -5
- package/lib/types.d.ts +1 -0
- package/package.json +21 -8
- package/bundles/angular-odata.umd.js +0 -11861
- package/bundles/angular-odata.umd.js.map +0 -1
- package/esm2015/lib/api.js +0 -296
- package/esm2015/lib/client.js +0 -272
- package/esm2015/lib/helper.js +0 -268
- package/esm2015/lib/models/collection.js +0 -734
- package/esm2015/lib/models/model.js +0 -438
- package/esm2015/lib/models/options.js +0 -942
- package/esm2015/lib/options.js +0 -31
- package/esm2015/lib/resources/path/segments.js +0 -124
- package/esm2015/lib/resources/query/builder.js +0 -591
- package/esm2015/lib/resources/query/expressions.js +0 -194
- package/esm2015/lib/resources/query/handlers.js +0 -192
- package/esm2015/lib/resources/query/options.js +0 -103
- package/esm2015/lib/resources/query/syntax.js +0 -367
- package/esm2015/lib/resources/request.js +0 -168
- package/esm2015/lib/resources/resource.js +0 -243
- package/esm2015/lib/resources/responses/annotations.js +0 -121
- package/esm2015/lib/resources/responses/metadata.js +0 -548
- package/esm2015/lib/resources/types/action.js +0 -105
- package/esm2015/lib/resources/types/batch.js +0 -294
- package/esm2015/lib/resources/types/count.js +0 -33
- package/esm2015/lib/resources/types/entity-set.js +0 -101
- package/esm2015/lib/resources/types/entity.js +0 -137
- package/esm2015/lib/resources/types/function.js +0 -130
- package/esm2015/lib/resources/types/media.js +0 -47
- package/esm2015/lib/resources/types/metadata.js +0 -36
- package/esm2015/lib/resources/types/navigation-property.js +0 -205
- package/esm2015/lib/resources/types/options.js +0 -2
- package/esm2015/lib/resources/types/property.js +0 -151
- package/esm2015/lib/resources/types/reference.js +0 -74
- package/esm2015/lib/resources/types/singleton.js +0 -167
- package/esm2015/lib/resources/types/value.js +0 -35
- package/esm2015/lib/schema/base.js +0 -37
- package/esm2015/lib/schema/callable.js +0 -82
- package/esm2015/lib/schema/entity-container.js +0 -24
- package/esm2015/lib/schema/entity-set.js +0 -35
- package/esm2015/lib/schema/enum-type.js +0 -102
- package/esm2015/lib/schema/parsers/callable.js +0 -107
- package/esm2015/lib/schema/parsers/enum-type.js +0 -107
- package/esm2015/lib/schema/parsers/structured-type.js +0 -392
- package/esm2015/lib/schema/schema.js +0 -52
- package/esm2015/lib/schema/structured-type.js +0 -220
- package/esm2015/lib/services/base.js +0 -23
- package/esm2015/lib/services/entity-set.js +0 -146
- package/esm2015/lib/services/entity.js +0 -12
- package/esm2015/lib/types.js +0 -37
- package/esm2015/lib/utils/odata.js +0 -21
- package/fesm2015/angular-odata.js.map +0 -1
package/esm2015/lib/options.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_FETCH_POLICY, DEFAULT_STRIP_METADATA, DEFAULT_VERSION, } from './constants';
|
|
2
|
-
import { ODataHelper } from './helper';
|
|
3
|
-
export class ODataApiOptions {
|
|
4
|
-
constructor(config) {
|
|
5
|
-
this.etag = { ifMatch: true, ifNoneMatch: false };
|
|
6
|
-
this.version = config.version || DEFAULT_VERSION;
|
|
7
|
-
this.stringAsEnum = config.stringAsEnum;
|
|
8
|
-
this.params = config.params || {};
|
|
9
|
-
this.headers = config.headers || {};
|
|
10
|
-
this.withCredentials = config.withCredentials;
|
|
11
|
-
this.stripMetadata = config.stripMetadata || DEFAULT_STRIP_METADATA;
|
|
12
|
-
this.fetchPolicy = config.fetchPolicy || DEFAULT_FETCH_POLICY;
|
|
13
|
-
this.bodyQueryOptions = config.bodyQueryOptions || [];
|
|
14
|
-
this.accept = config.accept;
|
|
15
|
-
Object.assign(this.etag, config.etag || {});
|
|
16
|
-
this.prefer = config.prefer;
|
|
17
|
-
}
|
|
18
|
-
get helper() {
|
|
19
|
-
return ODataHelper[this.version];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export class ODataParserOptions {
|
|
23
|
-
constructor(config) {
|
|
24
|
-
this.version = config.version || DEFAULT_VERSION;
|
|
25
|
-
this.stringAsEnum = config.stringAsEnum;
|
|
26
|
-
}
|
|
27
|
-
get helper() {
|
|
28
|
-
return ODataHelper[this.version];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLE9BQU8sZUFBZTtJQXdFMUIsWUFBWSxNQUFrQjtRQTdCOUIsU0FBSSxHQVNBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFxQnhDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLHNCQUFzQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUFZLE1BQWU7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcGlPcHRpb25zLFxuICBGZXRjaFBvbGljeSxcbiAgT0RhdGFNZXRhZGF0YVR5cGUsXG4gIE9EYXRhVmVyc2lvbixcbiAgT3B0aW9ucyxcbiAgT3B0aW9uc0hlbHBlcixcbiAgUXVlcnlPcHRpb25OYW1lcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBERUZBVUxUX0ZFVENIX1BPTElDWSxcbiAgREVGQVVMVF9TVFJJUF9NRVRBREFUQSxcbiAgREVGQVVMVF9WRVJTSU9OLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IE9EYXRhSGVscGVyIH0gZnJvbSAnLi9oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFBcGlPcHRpb25zIGltcGxlbWVudHMgQXBpT3B0aW9ucywgT3B0aW9uc0hlbHBlciB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IE9EYXRhIHZlcnNpb25cbiAgICovXG4gIHZlcnNpb246IE9EYXRhVmVyc2lvbjtcbiAgLyoqXG4gICAqIFNlbmQgZW51bSBhcyBzdHJpbmcgaW4gdGhlIHJlcXVlc3RcbiAgICovXG4gIHN0cmluZ0FzRW51bT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTdHJpcCBtZXRhZGF0YSBmcm9tIHRoZSByZXNwb25zZVxuICAgKi9cbiAgc3RyaXBNZXRhZGF0YTogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIC8qKlxuICAgKiBDYWNoZSBmZXRjaCBwb2xpY3lcbiAgICovXG4gIGZldGNoUG9saWN5OiBGZXRjaFBvbGljeTtcbiAgLyoqXG4gICAqIEV4dHJhIHBhcmFtcyB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0XG4gICAqL1xuICBwYXJhbXM6IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAvKipcbiAgICogRXh0cmEgaGVhZGVycyB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0XG4gICAqL1xuICBoZWFkZXJzOiB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcbiAgLyoqXG4gICAqIEh0dHAgcmVxdWVzdCB3aXRoIGNyZWRlbnRpYWxzXG4gICAqL1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VuZCBxdWVyeSBvcHRpb25zIGluIHRoZSByZXF1ZXN0IGJvZHlcbiAgICovXG4gIGJvZHlRdWVyeU9wdGlvbnM6IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSBhY2NlcHQgaGVhZGVyIHdpdGggT0RhdGEgb3B0aW9uc1xuICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS1qc29uLWZvcm1hdC92NC4wMS9vZGF0YS1qc29uLWZvcm1hdC12NC4wMS5odG1sI3NlY19SZXF1ZXN0aW5ndGhlSlNPTkZvcm1hdFxuICAgKi9cbiAgYWNjZXB0Pzoge1xuICAgIGV4cG9uZW50aWFsRGVjaW1hbHM/OiBib29sZWFuO1xuICAgIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgICBtZXRhZGF0YT86IE9EYXRhTWV0YWRhdGFUeXBlO1xuICAgIHN0cmVhbWluZz86IGJvb2xlYW47XG4gIH07XG4gIGV0YWc6IHtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS92NC4wL2VycmF0YTAyL29zL2NvbXBsZXRlL3BhcnQxLXByb3RvY29sL29kYXRhLXY0LjAtZXJyYXRhMDItb3MtcGFydDEtcHJvdG9jb2wtY29tcGxldGUuaHRtbCNfVG9jNDA2Mzk4MjI5XG4gICAgICovXG4gICAgaWZNYXRjaDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS92NC4wL2VycmF0YTAyL29zL2NvbXBsZXRlL3BhcnQxLXByb3RvY29sL29kYXRhLXY0LjAtZXJyYXRhMDItb3MtcGFydDEtcHJvdG9jb2wtY29tcGxldGUuaHRtbCNfVG9jNDA2Mzk4MjMwXG4gICAgICovXG4gICAgaWZOb25lTWF0Y2g6IGJvb2xlYW47XG4gIH0gPSB7IGlmTWF0Y2g6IHRydWUsIGlmTm9uZU1hdGNoOiBmYWxzZSB9O1xuICBwcmVmZXI/OiB7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEvdjQuMC9lcnJhdGEwMi9vcy9jb21wbGV0ZS9wYXJ0MS1wcm90b2NvbC9vZGF0YS12NC4wLWVycmF0YTAyLW9zLXBhcnQxLXByb3RvY29sLWNvbXBsZXRlLmh0bWwjX1RvYzQwNjM5ODIzOFxuICAgICAqL1xuICAgIG1heFBhZ2VTaXplPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhL3Y0LjAvZXJyYXRhMDIvb3MvY29tcGxldGUvcGFydDEtcHJvdG9jb2wvb2RhdGEtdjQuMC1lcnJhdGEwMi1vcy1wYXJ0MS1wcm90b2NvbC1jb21wbGV0ZS5odG1sI19Ub2M0MDYzOTgyNDBcbiAgICAgKi9cbiAgICByZXR1cm4/OiAncmVwcmVzZW50YXRpb24nIHwgJ21pbmltYWwnO1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhL3Y0LjAvZXJyYXRhMDIvb3MvY29tcGxldGUvcGFydDEtcHJvdG9jb2wvb2RhdGEtdjQuMC1lcnJhdGEwMi1vcy1wYXJ0MS1wcm90b2NvbC1jb21wbGV0ZS5odG1sI19Ub2M0MDYzOTgyMzZcbiAgICAgKi9cbiAgICBjb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhL3Y0LjAvZXJyYXRhMDIvb3MvY29tcGxldGUvcGFydDEtcHJvdG9jb2wvb2RhdGEtdjQuMC1lcnJhdGEwMi1vcy1wYXJ0MS1wcm90b2NvbC1jb21wbGV0ZS5odG1sI19Ub2M0MDYzOTgyMzdcbiAgICAgKi9cbiAgICBpbmNsdWRlQW5ub3RhdGlvbnM/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBBcGlPcHRpb25zKSB7XG4gICAgdGhpcy52ZXJzaW9uID0gY29uZmlnLnZlcnNpb24gfHwgREVGQVVMVF9WRVJTSU9OO1xuICAgIHRoaXMuc3RyaW5nQXNFbnVtID0gY29uZmlnLnN0cmluZ0FzRW51bTtcbiAgICB0aGlzLnBhcmFtcyA9IGNvbmZpZy5wYXJhbXMgfHwge307XG4gICAgdGhpcy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG4gICAgdGhpcy53aXRoQ3JlZGVudGlhbHMgPSBjb25maWcud2l0aENyZWRlbnRpYWxzO1xuICAgIHRoaXMuc3RyaXBNZXRhZGF0YSA9IGNvbmZpZy5zdHJpcE1ldGFkYXRhIHx8IERFRkFVTFRfU1RSSVBfTUVUQURBVEE7XG4gICAgdGhpcy5mZXRjaFBvbGljeSA9IGNvbmZpZy5mZXRjaFBvbGljeSB8fCBERUZBVUxUX0ZFVENIX1BPTElDWTtcbiAgICB0aGlzLmJvZHlRdWVyeU9wdGlvbnMgPSBjb25maWcuYm9keVF1ZXJ5T3B0aW9ucyB8fCBbXTtcbiAgICB0aGlzLmFjY2VwdCA9IGNvbmZpZy5hY2NlcHQ7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmV0YWcsIGNvbmZpZy5ldGFnIHx8IHt9KTtcbiAgICB0aGlzLnByZWZlciA9IGNvbmZpZy5wcmVmZXI7XG4gIH1cblxuICBnZXQgaGVscGVyKCkge1xuICAgIHJldHVybiBPRGF0YUhlbHBlclt0aGlzLnZlcnNpb25dO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVBhcnNlck9wdGlvbnMgaW1wbGVtZW50cyBPcHRpb25zSGVscGVyIHtcbiAgdmVyc2lvbjogT0RhdGFWZXJzaW9uO1xuICBzdHJpbmdBc0VudW0/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogT3B0aW9ucykge1xuICAgIHRoaXMudmVyc2lvbiA9IGNvbmZpZy52ZXJzaW9uIHx8IERFRkFVTFRfVkVSU0lPTjtcbiAgICB0aGlzLnN0cmluZ0FzRW51bSA9IGNvbmZpZy5zdHJpbmdBc0VudW07XG4gIH1cblxuICBnZXQgaGVscGVyKCkge1xuICAgIHJldHVybiBPRGF0YUhlbHBlclt0aGlzLnZlcnNpb25dO1xuICB9XG59XG4iXX0=
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { raw, buildPathAndQuery } from '../query';
|
|
2
|
-
import { Objects } from '../../utils';
|
|
3
|
-
import { PATH_SEPARATOR } from '../../constants';
|
|
4
|
-
import { PathSegmentNames } from '../../types';
|
|
5
|
-
import { SegmentHandler } from './handlers';
|
|
6
|
-
function pathSegmentsBuilder(segment, escape = false) {
|
|
7
|
-
if (segment.name === PathSegmentNames.function) {
|
|
8
|
-
let [path, params] = segment.parameters
|
|
9
|
-
? buildPathAndQuery({
|
|
10
|
-
func: { [segment.path]: segment.parameters },
|
|
11
|
-
escape,
|
|
12
|
-
})
|
|
13
|
-
: buildPathAndQuery({ func: segment.path, escape });
|
|
14
|
-
if (path.startsWith(PATH_SEPARATOR)) {
|
|
15
|
-
path = path.slice(1);
|
|
16
|
-
}
|
|
17
|
-
return [path, params];
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
let key = segment.key;
|
|
21
|
-
// HACK: Check guid string
|
|
22
|
-
if (typeof key === 'string' &&
|
|
23
|
-
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(key)) {
|
|
24
|
-
key = raw(key);
|
|
25
|
-
}
|
|
26
|
-
let [path, params] = key ? buildPathAndQuery({ key, escape }) : ['', {}];
|
|
27
|
-
return [segment.path + path, params];
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export class ODataPathSegments {
|
|
31
|
-
constructor(segments) {
|
|
32
|
-
this._segments = segments || [];
|
|
33
|
-
}
|
|
34
|
-
pathAndParams(escape = false) {
|
|
35
|
-
const result = this._segments.reduce((acc, segment) => {
|
|
36
|
-
const [path, params] = pathSegmentsBuilder(segment, escape);
|
|
37
|
-
acc.paths.push(path);
|
|
38
|
-
acc.params = Object.assign(acc.params, params);
|
|
39
|
-
return acc;
|
|
40
|
-
}, { paths: [], params: {} });
|
|
41
|
-
return [result.paths.join(PATH_SEPARATOR), result.params];
|
|
42
|
-
}
|
|
43
|
-
types({ key = false } = {}) {
|
|
44
|
-
return this.segments({ key })
|
|
45
|
-
.map((s) => s.type())
|
|
46
|
-
.filter((t) => t !== undefined);
|
|
47
|
-
}
|
|
48
|
-
keys(values) {
|
|
49
|
-
const segments = this.segments({ key: true });
|
|
50
|
-
if (values !== undefined) {
|
|
51
|
-
segments.forEach((segment, index) => {
|
|
52
|
-
const key = values[index];
|
|
53
|
-
if (key === undefined) {
|
|
54
|
-
segment.clearKey();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
segment.key(key);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return segments.map((s) => s.key());
|
|
62
|
-
}
|
|
63
|
-
toString() {
|
|
64
|
-
const [path, params] = this.pathAndParams();
|
|
65
|
-
return (path +
|
|
66
|
-
Object.entries(params)
|
|
67
|
-
.filter(([, value]) => value)
|
|
68
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
69
|
-
.join('&'));
|
|
70
|
-
}
|
|
71
|
-
toJSON() {
|
|
72
|
-
return this._segments.map((s) => {
|
|
73
|
-
let json = {
|
|
74
|
-
name: s.name,
|
|
75
|
-
path: s.path,
|
|
76
|
-
};
|
|
77
|
-
if (s.type !== undefined)
|
|
78
|
-
json.type = s.type;
|
|
79
|
-
if (s.key !== undefined)
|
|
80
|
-
json.key = s.key;
|
|
81
|
-
if (s.parameters !== undefined)
|
|
82
|
-
json.parameters = s.parameters;
|
|
83
|
-
return json;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
clone() {
|
|
87
|
-
const segments = Objects.clone(this._segments);
|
|
88
|
-
return new ODataPathSegments(segments);
|
|
89
|
-
}
|
|
90
|
-
find(predicate) {
|
|
91
|
-
//Backward Find
|
|
92
|
-
return [...this._segments].reverse().find(predicate);
|
|
93
|
-
}
|
|
94
|
-
segments({ key = false } = {}) {
|
|
95
|
-
let segments = [...this._segments];
|
|
96
|
-
if (key)
|
|
97
|
-
segments = segments.filter((s) => [
|
|
98
|
-
PathSegmentNames.entitySet,
|
|
99
|
-
PathSegmentNames.navigationProperty,
|
|
100
|
-
PathSegmentNames.property,
|
|
101
|
-
].indexOf(s.name) !== -1);
|
|
102
|
-
return segments.map((s) => new SegmentHandler(s));
|
|
103
|
-
}
|
|
104
|
-
first({ key = false } = {}) {
|
|
105
|
-
const segments = this.segments({ key });
|
|
106
|
-
return segments.length > 0 ? segments[0] : undefined;
|
|
107
|
-
}
|
|
108
|
-
last({ key = false } = {}) {
|
|
109
|
-
const segments = this.segments({ key });
|
|
110
|
-
return segments.length > 0 ? segments[segments.length - 1] : undefined;
|
|
111
|
-
}
|
|
112
|
-
add(name, path) {
|
|
113
|
-
const segment = { name, path };
|
|
114
|
-
this._segments.push(segment);
|
|
115
|
-
return new SegmentHandler(segment);
|
|
116
|
-
}
|
|
117
|
-
get(name) {
|
|
118
|
-
let segment = this.find((s) => s.name === name);
|
|
119
|
-
if (segment === undefined)
|
|
120
|
-
throw Error(`No Segment for name ${name} was found`);
|
|
121
|
-
return new SegmentHandler(segment);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvc2VnbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFVNUMsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBcUIsRUFDckIsU0FBa0IsS0FBSztJQUV2QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1FBQzlDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVU7WUFDckMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO2dCQUNoQixJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUM1QyxNQUFNO2FBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25DLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN2QjtTQUFNO1FB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RyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDNUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFrQixDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQU8sS0FBSyxTQUFTO1lBQ3ZCLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixJQUFJLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmF3LCBidWlsZFBhdGhBbmRRdWVyeSB9IGZyb20gJy4uL3F1ZXJ5JztcblxuaW1wb3J0IHsgVHlwZXMsIERhdGVzLCBPYmplY3RzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBQQVRIX1NFUEFSQVRPUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFbnRpdHlLZXkgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBQYXRoU2VnbWVudE5hbWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2VnbWVudEhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXJzJztcblxuZXhwb3J0IHR5cGUgT0RhdGFTZWdtZW50ID0ge1xuICBuYW1lOiBQYXRoU2VnbWVudE5hbWVzO1xuICBwYXRoOiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGtleT86IGFueTtcbiAgcGFyYW1ldGVycz86IGFueTtcbn07XG5cbmZ1bmN0aW9uIHBhdGhTZWdtZW50c0J1aWxkZXIoXG4gIHNlZ21lbnQ6IE9EYXRhU2VnbWVudCxcbiAgZXNjYXBlOiBib29sZWFuID0gZmFsc2Vcbik6IFtzdHJpbmcsIHsgW25hbWU6IHN0cmluZ106IGFueSB9XSB7XG4gIGlmIChzZWdtZW50Lm5hbWUgPT09IFBhdGhTZWdtZW50TmFtZXMuZnVuY3Rpb24pIHtcbiAgICBsZXQgW3BhdGgsIHBhcmFtc10gPSBzZWdtZW50LnBhcmFtZXRlcnNcbiAgICAgID8gYnVpbGRQYXRoQW5kUXVlcnkoe1xuICAgICAgICAgIGZ1bmM6IHsgW3NlZ21lbnQucGF0aF06IHNlZ21lbnQucGFyYW1ldGVycyB9LFxuICAgICAgICAgIGVzY2FwZSxcbiAgICAgICAgfSlcbiAgICAgIDogYnVpbGRQYXRoQW5kUXVlcnkoeyBmdW5jOiBzZWdtZW50LnBhdGgsIGVzY2FwZSB9KTtcbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKFBBVEhfU0VQQVJBVE9SKSkge1xuICAgICAgcGF0aCA9IHBhdGguc2xpY2UoMSk7XG4gICAgfVxuICAgIHJldHVybiBbcGF0aCwgcGFyYW1zXTtcbiAgfSBlbHNlIHtcbiAgICBsZXQga2V5ID0gc2VnbWVudC5rZXk7XG4gICAgLy8gSEFDSzogQ2hlY2sgZ3VpZCBzdHJpbmdcbiAgICBpZiAoXG4gICAgICB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyAmJlxuICAgICAgL15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kLy50ZXN0KFxuICAgICAgICBrZXlcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGtleSA9IHJhdyhrZXkpO1xuICAgIH1cbiAgICBsZXQgW3BhdGgsIHBhcmFtc10gPSBrZXkgPyBidWlsZFBhdGhBbmRRdWVyeSh7IGtleSwgZXNjYXBlIH0pIDogWycnLCB7fV07XG4gICAgcmV0dXJuIFtzZWdtZW50LnBhdGggKyBwYXRoLCBwYXJhbXNdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVBhdGhTZWdtZW50cyB7XG4gIHByaXZhdGUgX3NlZ21lbnRzOiBPRGF0YVNlZ21lbnRbXTtcblxuICBjb25zdHJ1Y3RvcihzZWdtZW50cz86IE9EYXRhU2VnbWVudFtdKSB7XG4gICAgdGhpcy5fc2VnbWVudHMgPSBzZWdtZW50cyB8fCBbXTtcbiAgfVxuXG4gIHBhdGhBbmRQYXJhbXMoZXNjYXBlOiBib29sZWFuID0gZmFsc2UpOiBbc3RyaW5nLCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfV0ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3NlZ21lbnRzLnJlZHVjZShcbiAgICAgIChhY2MsIHNlZ21lbnQpID0+IHtcbiAgICAgICAgY29uc3QgW3BhdGgsIHBhcmFtc10gPSBwYXRoU2VnbWVudHNCdWlsZGVyKHNlZ21lbnQsIGVzY2FwZSk7XG4gICAgICAgIGFjYy5wYXRocy5wdXNoKHBhdGgpO1xuICAgICAgICBhY2MucGFyYW1zID0gT2JqZWN0LmFzc2lnbihhY2MucGFyYW1zLCBwYXJhbXMpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHsgcGF0aHM6IFtdIGFzIHN0cmluZ1tdLCBwYXJhbXM6IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IGFueSB9IH1cbiAgICApO1xuICAgIHJldHVybiBbcmVzdWx0LnBhdGhzLmpvaW4oUEFUSF9TRVBBUkFUT1IpLCByZXN1bHQucGFyYW1zXTtcbiAgfVxuXG4gIHR5cGVzKHsga2V5ID0gZmFsc2UgfTogeyBrZXk/OiBib29sZWFuIH0gPSB7fSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cyh7IGtleSB9KVxuICAgICAgLm1hcCgocykgPT4gcy50eXBlKCkpXG4gICAgICAuZmlsdGVyKCh0KSA9PiB0ICE9PSB1bmRlZmluZWQpIGFzIHN0cmluZ1tdO1xuICB9XG5cbiAga2V5cyh2YWx1ZXM/OiAoRW50aXR5S2V5PGFueT4gfCB1bmRlZmluZWQpW10pIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMuc2VnbWVudHMoeyBrZXk6IHRydWUgfSk7XG4gICAgaWYgKHZhbHVlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZWdtZW50cy5mb3JFYWNoKChzZWdtZW50LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSB2YWx1ZXNbaW5kZXhdO1xuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzZWdtZW50LmNsZWFyS2V5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VnbWVudC5rZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzZWdtZW50cy5tYXAoKHMpID0+IHMua2V5KCkgYXMgRW50aXR5S2V5PGFueT4gfCB1bmRlZmluZWQpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCBbcGF0aCwgcGFyYW1zXSA9IHRoaXMucGF0aEFuZFBhcmFtcygpO1xuICAgIHJldHVybiAoXG4gICAgICBwYXRoICtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtcylcbiAgICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSlcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgICk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlZ21lbnRzLm1hcCgocykgPT4ge1xuICAgICAgbGV0IGpzb24gPSB7XG4gICAgICAgIG5hbWU6IHMubmFtZSBhcyBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHMucGF0aCxcbiAgICAgIH0gYXMgYW55O1xuICAgICAgaWYgKHMudHlwZSAhPT0gdW5kZWZpbmVkKSBqc29uLnR5cGUgPSBzLnR5cGU7XG4gICAgICBpZiAocy5rZXkgIT09IHVuZGVmaW5lZCkganNvbi5rZXkgPSBzLmtleTtcbiAgICAgIGlmIChzLnBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkganNvbi5wYXJhbWV0ZXJzID0gcy5wYXJhbWV0ZXJzO1xuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IE9iamVjdHMuY2xvbmUodGhpcy5fc2VnbWVudHMpO1xuICAgIHJldHVybiBuZXcgT0RhdGFQYXRoU2VnbWVudHMoc2VnbWVudHMpO1xuICB9XG5cbiAgZmluZChwcmVkaWNhdGU6IChzZWdtZW50OiBPRGF0YVNlZ21lbnQpID0+IGJvb2xlYW4pIHtcbiAgICAvL0JhY2t3YXJkIEZpbmRcbiAgICByZXR1cm4gWy4uLnRoaXMuX3NlZ21lbnRzXS5yZXZlcnNlKCkuZmluZChwcmVkaWNhdGUpO1xuICB9XG5cbiAgc2VnbWVudHMoeyBrZXkgPSBmYWxzZSB9OiB7IGtleT86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgbGV0IHNlZ21lbnRzID0gWy4uLnRoaXMuX3NlZ21lbnRzXTtcbiAgICBpZiAoa2V5KVxuICAgICAgc2VnbWVudHMgPSBzZWdtZW50cy5maWx0ZXIoXG4gICAgICAgIChzKSA9PlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIFBhdGhTZWdtZW50TmFtZXMuZW50aXR5U2V0LFxuICAgICAgICAgICAgUGF0aFNlZ21lbnROYW1lcy5uYXZpZ2F0aW9uUHJvcGVydHksXG4gICAgICAgICAgICBQYXRoU2VnbWVudE5hbWVzLnByb3BlcnR5LFxuICAgICAgICAgIF0uaW5kZXhPZihzLm5hbWUpICE9PSAtMVxuICAgICAgKTtcbiAgICByZXR1cm4gc2VnbWVudHMubWFwKChzKSA9PiBuZXcgU2VnbWVudEhhbmRsZXIocykpO1xuICB9XG5cbiAgZmlyc3QoeyBrZXkgPSBmYWxzZSB9OiB7IGtleT86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnNlZ21lbnRzKHsga2V5IH0pO1xuICAgIHJldHVybiBzZWdtZW50cy5sZW5ndGggPiAwID8gc2VnbWVudHNbMF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBsYXN0KHsga2V5ID0gZmFsc2UgfTogeyBrZXk/OiBib29sZWFuIH0gPSB7fSkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5zZWdtZW50cyh7IGtleSB9KTtcbiAgICByZXR1cm4gc2VnbWVudHMubGVuZ3RoID4gMCA/IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgYWRkKG5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VnbWVudCA9IHsgbmFtZSwgcGF0aCB9IGFzIE9EYXRhU2VnbWVudDtcbiAgICB0aGlzLl9zZWdtZW50cy5wdXNoKHNlZ21lbnQpO1xuICAgIHJldHVybiBuZXcgU2VnbWVudEhhbmRsZXIoc2VnbWVudCk7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHNlZ21lbnQgPSB0aGlzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gbmFtZSk7XG4gICAgaWYgKHNlZ21lbnQgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IEVycm9yKGBObyBTZWdtZW50IGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgcmV0dXJuIG5ldyBTZWdtZW50SGFuZGxlcihzZWdtZW50KTtcbiAgfVxufVxuIl19
|