angular-odata 0.78.1 → 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/README.md +133 -62
- 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} +12 -5
- package/{esm2015/lib/cache/index.js → esm2020/lib/cache/index.mjs} +0 -0
- package/{esm2015/lib/cache/memory.js → esm2020/lib/cache/memory.mjs} +0 -0
- package/{esm2015/lib/cache/storage.js → esm2020/lib/cache/storage.mjs} +1 -1
- package/esm2020/lib/client.mjs +271 -0
- package/{esm2015/lib/constants.js → esm2020/lib/constants.mjs} +9 -3
- package/esm2020/lib/helper.mjs +268 -0
- package/esm2020/lib/index.mjs +19 -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} +6 -6
- package/esm2020/lib/options.mjs +32 -0
- package/esm2020/lib/resources/index.mjs +7 -0
- package/esm2020/lib/resources/path/handlers.mjs +69 -0
- package/esm2020/lib/resources/path/index.mjs +3 -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/esm2020/lib/resources/query/index.mjs +4 -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} +1 -1
- package/esm2020/lib/resources/responses/response.mjs +170 -0
- package/{esm2015/lib/resources/responses/types.js → esm2020/lib/resources/responses/types.mjs} +1 -1
- 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} +2 -1
- package/esm2020/lib/schema/parsers/callable.mjs +113 -0
- package/esm2020/lib/schema/parsers/edm.mjs +95 -0
- package/esm2020/lib/schema/parsers/enum-type.mjs +107 -0
- package/esm2020/lib/schema/parsers/index.mjs +5 -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/esm2020/lib/services/singleton.mjs +48 -0
- 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/esm2020/lib/utils/arraybuffers.mjs +46 -0
- package/{esm2015/lib/utils/dates.js → esm2020/lib/utils/dates.mjs} +0 -0
- package/esm2020/lib/utils/durations.mjs +40 -0
- package/{esm2015/lib/utils/enums.js → esm2020/lib/utils/enums.mjs} +0 -0
- package/esm2020/lib/utils/http.mjs +93 -0
- package/esm2020/lib/utils/index.mjs +10 -0
- package/esm2020/lib/utils/objects.mjs +195 -0
- package/esm2020/lib/utils/odata.mjs +22 -0
- package/esm2020/lib/utils/strings.mjs +20 -0
- package/esm2020/lib/utils/types.mjs +134 -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} +5068 -3943
- 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 +17 -16
- package/lib/cache/cache.d.ts +2 -2
- package/lib/client.d.ts +93 -18
- package/lib/constants.d.ts +6 -2
- package/lib/helper.d.ts +3 -3
- package/lib/index.d.ts +0 -1
- package/lib/models/collection.d.ts +36 -47
- package/lib/models/model.d.ts +47 -40
- package/lib/models/options.d.ts +53 -52
- package/lib/options.d.ts +50 -2
- package/lib/resources/index.d.ts +2 -3
- package/lib/resources/path/handlers.d.ts +27 -0
- package/lib/resources/path/index.d.ts +2 -0
- package/lib/resources/{path-segments.d.ts → path/segments.d.ts} +4 -16
- package/lib/resources/{builder.d.ts → query/builder.d.ts} +12 -7
- package/lib/resources/query/expressions.d.ts +63 -0
- package/lib/resources/query/handlers.d.ts +89 -0
- package/lib/resources/query/index.d.ts +3 -0
- package/lib/resources/query/options.d.ts +38 -0
- package/lib/resources/query/syntax.d.ts +175 -0
- package/lib/resources/request.d.ts +8 -6
- package/lib/resources/resource.d.ts +49 -55
- package/lib/resources/responses/metadata.d.ts +1 -1
- package/lib/resources/responses/types.d.ts +1 -1
- package/lib/resources/types/action.d.ts +55 -69
- package/lib/resources/types/batch.d.ts +13 -8
- package/lib/resources/types/count.d.ts +16 -19
- package/lib/resources/types/entity-set.d.ts +24 -62
- package/lib/resources/types/entity.d.ts +35 -43
- package/lib/resources/types/function.d.ts +63 -71
- package/lib/resources/types/media.d.ts +20 -22
- package/lib/resources/types/metadata.d.ts +5 -7
- package/lib/resources/types/navigation-property.d.ts +100 -85
- package/lib/resources/types/options.d.ts +8 -8
- package/lib/resources/types/property.d.ts +63 -73
- package/lib/resources/types/reference.d.ts +72 -16
- package/lib/resources/types/singleton.d.ts +75 -43
- package/lib/resources/types/value.d.ts +18 -9
- package/lib/schema/annotation.d.ts +18 -0
- package/lib/schema/callable.d.ts +27 -11
- package/lib/schema/element.d.ts +39 -0
- package/lib/schema/entity-container.d.ts +3 -8
- package/lib/schema/entity-set.d.ts +3 -9
- package/lib/schema/enum-type.d.ts +41 -14
- package/lib/schema/index.d.ts +1 -0
- package/lib/{parsers → schema/parsers}/callable.d.ts +2 -2
- package/lib/schema/parsers/edm.d.ts +4 -0
- package/lib/{parsers → schema/parsers}/enum-type.d.ts +13 -7
- package/lib/{parsers → schema/parsers}/index.d.ts +0 -0
- package/lib/{parsers → schema/parsers}/structured-type.d.ts +14 -9
- package/lib/schema/schema.d.ts +6 -8
- package/lib/schema/structured-type.d.ts +97 -18
- package/lib/services/base.d.ts +12 -12
- package/lib/services/entity-set.d.ts +15 -12
- package/lib/services/entity.d.ts +4 -1
- package/lib/services/singleton.d.ts +6 -3
- package/lib/settings.d.ts +4 -4
- package/lib/types.d.ts +7 -3
- package/lib/utils/arraybuffers.d.ts +4 -0
- package/lib/{parsers/edm.d.ts → utils/durations.d.ts} +3 -3
- package/lib/utils/http.d.ts +9 -0
- package/lib/utils/index.d.ts +5 -2
- package/lib/utils/objects.d.ts +1 -1
- package/lib/utils/strings.d.ts +4 -0
- package/lib/utils/types.d.ts +2 -0
- package/package.json +21 -8
- package/bundles/angular-odata.umd.js +0 -10756
- package/bundles/angular-odata.umd.js.map +0 -1
- package/esm2015/lib/api.js +0 -251
- package/esm2015/lib/client.js +0 -197
- package/esm2015/lib/helper.js +0 -269
- package/esm2015/lib/index.js +0 -21
- package/esm2015/lib/models/collection.js +0 -660
- package/esm2015/lib/models/model.js +0 -421
- package/esm2015/lib/models/options.js +0 -889
- package/esm2015/lib/options.js +0 -31
- package/esm2015/lib/parsers/callable.js +0 -110
- package/esm2015/lib/parsers/edm.js +0 -310
- package/esm2015/lib/parsers/enum-type.js +0 -97
- package/esm2015/lib/parsers/index.js +0 -5
- package/esm2015/lib/parsers/structured-type.js +0 -394
- package/esm2015/lib/resources/builder.js +0 -537
- package/esm2015/lib/resources/index.js +0 -8
- package/esm2015/lib/resources/path-segments.js +0 -156
- package/esm2015/lib/resources/query-options.js +0 -157
- package/esm2015/lib/resources/request.js +0 -141
- package/esm2015/lib/resources/resource.js +0 -328
- package/esm2015/lib/resources/responses/annotations.js +0 -121
- package/esm2015/lib/resources/responses/metadata.js +0 -548
- package/esm2015/lib/resources/responses/response.js +0 -170
- package/esm2015/lib/resources/types/action.js +0 -146
- package/esm2015/lib/resources/types/batch.js +0 -330
- package/esm2015/lib/resources/types/count.js +0 -50
- package/esm2015/lib/resources/types/entity-set.js +0 -164
- package/esm2015/lib/resources/types/entity.js +0 -158
- package/esm2015/lib/resources/types/function.js +0 -166
- package/esm2015/lib/resources/types/media.js +0 -46
- package/esm2015/lib/resources/types/metadata.js +0 -36
- package/esm2015/lib/resources/types/navigation-property.js +0 -214
- package/esm2015/lib/resources/types/options.js +0 -2
- package/esm2015/lib/resources/types/property.js +0 -190
- package/esm2015/lib/resources/types/reference.js +0 -50
- package/esm2015/lib/resources/types/singleton.js +0 -147
- package/esm2015/lib/resources/types/value.js +0 -30
- package/esm2015/lib/schema/annotation.js +0 -7
- package/esm2015/lib/schema/callable.js +0 -50
- package/esm2015/lib/schema/entity-container.js +0 -17
- package/esm2015/lib/schema/entity-set.js +0 -23
- package/esm2015/lib/schema/enum-type.js +0 -68
- package/esm2015/lib/schema/schema.js +0 -55
- package/esm2015/lib/schema/structured-type.js +0 -107
- package/esm2015/lib/services/base.js +0 -23
- package/esm2015/lib/services/entity-set.js +0 -143
- package/esm2015/lib/services/entity.js +0 -10
- package/esm2015/lib/services/singleton.js +0 -46
- package/esm2015/lib/types.js +0 -37
- package/esm2015/lib/utils/http.js +0 -59
- package/esm2015/lib/utils/index.js +0 -7
- package/esm2015/lib/utils/objects.js +0 -140
- package/esm2015/lib/utils/odata.js +0 -21
- package/esm2015/lib/utils/types.js +0 -103
- package/fesm2015/angular-odata.js.map +0 -1
- package/lib/resources/query-options.d.ts +0 -57
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HttpClientModule } from '@angular/common/http';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
|
-
import { ODataSettings } from './settings';
|
|
4
3
|
import { ODataClient } from './client';
|
|
5
4
|
import { ODataServiceFactory } from './services/index';
|
|
5
|
+
import { ODataSettings } from './settings';
|
|
6
6
|
import { ODATA_CONFIGURATIONS } from './tokens';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export function createSettings(configs) {
|
|
@@ -25,14 +25,14 @@ export class ODataModule {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
ODataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
29
|
-
ODataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
30
|
-
ODataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
28
|
+
ODataModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ODataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
+
ODataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ODataModule, imports: [HttpClientModule] });
|
|
30
|
+
ODataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ODataModule, providers: [ODataClient, ODataServiceFactory], imports: [[HttpClientModule]] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ODataModule, decorators: [{
|
|
32
32
|
type: NgModule,
|
|
33
33
|
args: [{
|
|
34
34
|
imports: [HttpClientModule],
|
|
35
35
|
providers: [ODataClient, ODataServiceFactory],
|
|
36
36
|
}]
|
|
37
37
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUdoRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9CO0lBQ2pELE9BQU8sSUFBSSxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBTUQsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMsT0FBTyxDQUNuQixHQUFHLE9BQW9CO1FBRXZCLE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVztZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDcEQ7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDN0I7Z0JBQ0QsV0FBVztnQkFDWCxtQkFBbUI7YUFDcEI7U0FDRixDQUFDO0lBQ0osQ0FBQzs7d0dBakJVLFdBQVc7eUdBQVgsV0FBVyxZQUhaLGdCQUFnQjt5R0FHZixXQUFXLGFBRlgsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsWUFEcEMsQ0FBQyxnQkFBZ0IsQ0FBQzsyRkFHaEIsV0FBVztrQkFKdkIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0RhdGFDbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG5pbXBvcnQgeyBPRGF0YVNlcnZpY2VGYWN0b3J5IH0gZnJvbSAnLi9zZXJ2aWNlcy9pbmRleCc7XG5pbXBvcnQgeyBPRGF0YVNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBPREFUQV9DT05GSUdVUkFUSU9OUyB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7IEFwaUNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2V0dGluZ3MoY29uZmlnczogQXBpQ29uZmlnW10pIHtcbiAgcmV0dXJuIG5ldyBPRGF0YVNldHRpbmdzKC4uLmNvbmZpZ3MpO1xufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW09EYXRhQ2xpZW50LCBPRGF0YVNlcnZpY2VGYWN0b3J5XSxcbn0pXG5leHBvcnQgY2xhc3MgT0RhdGFNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoXG4gICAgLi4uY29uZmlnczogQXBpQ29uZmlnW11cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxPRGF0YU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogT0RhdGFNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBPREFUQV9DT05GSUdVUkFUSU9OUywgdXNlVmFsdWU6IGNvbmZpZ3MgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE9EYXRhU2V0dGluZ3MsXG4gICAgICAgICAgdXNlRmFjdG9yeTogY3JlYXRlU2V0dGluZ3MsXG4gICAgICAgICAgZGVwczogW09EQVRBX0NPTkZJR1VSQVRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgICAgT0RhdGFDbGllbnQsXG4gICAgICAgIE9EYXRhU2VydmljZUZhY3RvcnksXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
this.deleteRefBy = config.deleteRefBy || 'path';
|
|
18
|
+
}
|
|
19
|
+
get helper() {
|
|
20
|
+
return ODataHelper[this.version];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class ODataParserOptions {
|
|
24
|
+
constructor(config) {
|
|
25
|
+
this.version = config.version || DEFAULT_VERSION;
|
|
26
|
+
this.stringAsEnum = config.stringAsEnum;
|
|
27
|
+
}
|
|
28
|
+
get helper() {
|
|
29
|
+
return ODataHelper[this.version];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLE9BQU8sZUFBZTtJQXlFMUIsWUFBWSxNQUFrQjtRQTlCOUIsU0FBSSxHQVNBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFzQnhDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLHNCQUFzQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwaU9wdGlvbnMsXG4gIEZldGNoUG9saWN5LFxuICBPRGF0YU1ldGFkYXRhVHlwZSxcbiAgT0RhdGFWZXJzaW9uLFxuICBPcHRpb25zLFxuICBPcHRpb25zSGVscGVyLFxuICBRdWVyeU9wdGlvbk5hbWVzLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfRkVUQ0hfUE9MSUNZLFxuICBERUZBVUxUX1NUUklQX01FVEFEQVRBLFxuICBERUZBVUxUX1ZFUlNJT04sXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgT0RhdGFIZWxwZXIgfSBmcm9tICcuL2hlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUFwaU9wdGlvbnMgaW1wbGVtZW50cyBBcGlPcHRpb25zLCBPcHRpb25zSGVscGVyIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgT0RhdGEgdmVyc2lvblxuICAgKi9cbiAgdmVyc2lvbjogT0RhdGFWZXJzaW9uO1xuICAvKipcbiAgICogU2VuZCBlbnVtIGFzIHN0cmluZyBpbiB0aGUgcmVxdWVzdFxuICAgKi9cbiAgc3RyaW5nQXNFbnVtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN0cmlwIG1ldGFkYXRhIGZyb20gdGhlIHJlc3BvbnNlXG4gICAqL1xuICBzdHJpcE1ldGFkYXRhOiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgLyoqXG4gICAqIENhY2hlIGZldGNoIHBvbGljeVxuICAgKi9cbiAgZmV0Y2hQb2xpY3k6IEZldGNoUG9saWN5O1xuICAvKipcbiAgICogRXh0cmEgcGFyYW1zIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3RcbiAgICovXG4gIHBhcmFtczogeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gIC8qKlxuICAgKiBFeHRyYSBoZWFkZXJzIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3RcbiAgICovXG4gIGhlYWRlcnM6IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAvKipcbiAgICogSHR0cCByZXF1ZXN0IHdpdGggY3JlZGVudGlhbHNcbiAgICovXG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZW5kIHF1ZXJ5IG9wdGlvbnMgaW4gdGhlIHJlcXVlc3QgYm9keVxuICAgKi9cbiAgYm9keVF1ZXJ5T3B0aW9uczogUXVlcnlPcHRpb25OYW1lc1tdO1xuICAvKipcbiAgICogQ3VzdG9taXplIGFjY2VwdCBoZWFkZXIgd2l0aCBPRGF0YSBvcHRpb25zXG4gICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhLWpzb24tZm9ybWF0L3Y0LjAxL29kYXRhLWpzb24tZm9ybWF0LXY0LjAxLmh0bWwjc2VjX1JlcXVlc3Rpbmd0aGVKU09ORm9ybWF0XG4gICAqL1xuICBhY2NlcHQ/OiB7XG4gICAgZXhwb25lbnRpYWxEZWNpbWFscz86IGJvb2xlYW47XG4gICAgaWVlZTc1NENvbXBhdGlibGU/OiBib29sZWFuO1xuICAgIG1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gICAgc3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgfTtcbiAgZXRhZzoge1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhL3Y0LjAvZXJyYXRhMDIvb3MvY29tcGxldGUvcGFydDEtcHJvdG9jb2wvb2RhdGEtdjQuMC1lcnJhdGEwMi1vcy1wYXJ0MS1wcm90b2NvbC1jb21wbGV0ZS5odG1sI19Ub2M0MDYzOTgyMjlcbiAgICAgKi9cbiAgICBpZk1hdGNoOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhL3Y0LjAvZXJyYXRhMDIvb3MvY29tcGxldGUvcGFydDEtcHJvdG9jb2wvb2RhdGEtdjQuMC1lcnJhdGEwMi1vcy1wYXJ0MS1wcm90b2NvbC1jb21wbGV0ZS5odG1sI19Ub2M0MDYzOTgyMzBcbiAgICAgKi9cbiAgICBpZk5vbmVNYXRjaDogYm9vbGVhbjtcbiAgfSA9IHsgaWZNYXRjaDogdHJ1ZSwgaWZOb25lTWF0Y2g6IGZhbHNlIH07XG4gIHByZWZlcj86IHtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS92NC4wL2VycmF0YTAyL29zL2NvbXBsZXRlL3BhcnQxLXByb3RvY29sL29kYXRhLXY0LjAtZXJyYXRhMDItb3MtcGFydDEtcHJvdG9jb2wtY29tcGxldGUuaHRtbCNfVG9jNDA2Mzk4MjM4XG4gICAgICovXG4gICAgbWF4UGFnZVNpemU/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEvdjQuMC9lcnJhdGEwMi9vcy9jb21wbGV0ZS9wYXJ0MS1wcm90b2NvbC9vZGF0YS12NC4wLWVycmF0YTAyLW9zLXBhcnQxLXByb3RvY29sLWNvbXBsZXRlLmh0bWwjX1RvYzQwNjM5ODI0MFxuICAgICAqL1xuICAgIHJldHVybj86ICdyZXByZXNlbnRhdGlvbicgfCAnbWluaW1hbCc7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEvdjQuMC9lcnJhdGEwMi9vcy9jb21wbGV0ZS9wYXJ0MS1wcm90b2NvbC9vZGF0YS12NC4wLWVycmF0YTAyLW9zLXBhcnQxLXByb3RvY29sLWNvbXBsZXRlLmh0bWwjX1RvYzQwNjM5ODIzNlxuICAgICAqL1xuICAgIGNvbnRpbnVlT25FcnJvcj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEvdjQuMC9lcnJhdGEwMi9vcy9jb21wbGV0ZS9wYXJ0MS1wcm90b2NvbC9vZGF0YS12NC4wLWVycmF0YTAyLW9zLXBhcnQxLXByb3RvY29sLWNvbXBsZXRlLmh0bWwjX1RvYzQwNjM5ODIzN1xuICAgICAqL1xuICAgIGluY2x1ZGVBbm5vdGF0aW9ucz86IHN0cmluZztcbiAgfTtcbiAgZGVsZXRlUmVmQnk6ICdwYXRoJyB8ICdpZCc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBBcGlPcHRpb25zKSB7XG4gICAgdGhpcy52ZXJzaW9uID0gY29uZmlnLnZlcnNpb24gfHwgREVGQVVMVF9WRVJTSU9OO1xuICAgIHRoaXMuc3RyaW5nQXNFbnVtID0gY29uZmlnLnN0cmluZ0FzRW51bTtcbiAgICB0aGlzLnBhcmFtcyA9IGNvbmZpZy5wYXJhbXMgfHwge307XG4gICAgdGhpcy5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgfHwge307XG4gICAgdGhpcy53aXRoQ3JlZGVudGlhbHMgPSBjb25maWcud2l0aENyZWRlbnRpYWxzO1xuICAgIHRoaXMuc3RyaXBNZXRhZGF0YSA9IGNvbmZpZy5zdHJpcE1ldGFkYXRhIHx8IERFRkFVTFRfU1RSSVBfTUVUQURBVEE7XG4gICAgdGhpcy5mZXRjaFBvbGljeSA9IGNvbmZpZy5mZXRjaFBvbGljeSB8fCBERUZBVUxUX0ZFVENIX1BPTElDWTtcbiAgICB0aGlzLmJvZHlRdWVyeU9wdGlvbnMgPSBjb25maWcuYm9keVF1ZXJ5T3B0aW9ucyB8fCBbXTtcbiAgICB0aGlzLmFjY2VwdCA9IGNvbmZpZy5hY2NlcHQ7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmV0YWcsIGNvbmZpZy5ldGFnIHx8IHt9KTtcbiAgICB0aGlzLnByZWZlciA9IGNvbmZpZy5wcmVmZXI7XG4gICAgdGhpcy5kZWxldGVSZWZCeSA9IGNvbmZpZy5kZWxldGVSZWZCeSB8fCAncGF0aCc7XG4gIH1cblxuICBnZXQgaGVscGVyKCkge1xuICAgIHJldHVybiBPRGF0YUhlbHBlclt0aGlzLnZlcnNpb25dO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVBhcnNlck9wdGlvbnMgaW1wbGVtZW50cyBPcHRpb25zSGVscGVyIHtcbiAgdmVyc2lvbjogT0RhdGFWZXJzaW9uO1xuICBzdHJpbmdBc0VudW0/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogT3B0aW9ucykge1xuICAgIHRoaXMudmVyc2lvbiA9IGNvbmZpZy52ZXJzaW9uIHx8IERFRkFVTFRfVkVSU0lPTjtcbiAgICB0aGlzLnN0cmluZ0FzRW51bSA9IGNvbmZpZy5zdHJpbmdBc0VudW07XG4gIH1cblxuICBnZXQgaGVscGVyKCkge1xuICAgIHJldHVybiBPRGF0YUhlbHBlclt0aGlzLnZlcnNpb25dO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './query';
|
|
2
|
+
export * from './path';
|
|
3
|
+
export * from './request';
|
|
4
|
+
export * from './resource';
|
|
5
|
+
export * from './types';
|
|
6
|
+
export * from './responses';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3BhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3BvbnNlcyc7XG4iXX0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { PathSegmentNames } from '../../types';
|
|
2
|
+
import { Types } from '../../utils';
|
|
3
|
+
export class SegmentHandler {
|
|
4
|
+
constructor(segment) {
|
|
5
|
+
this.segment = segment;
|
|
6
|
+
}
|
|
7
|
+
get name() {
|
|
8
|
+
return this.segment.name;
|
|
9
|
+
}
|
|
10
|
+
type(value) {
|
|
11
|
+
if (value !== undefined)
|
|
12
|
+
this.segment.type = value;
|
|
13
|
+
return this.segment.type;
|
|
14
|
+
}
|
|
15
|
+
path(value) {
|
|
16
|
+
if (value !== undefined)
|
|
17
|
+
this.segment.path = value;
|
|
18
|
+
return this.segment.path;
|
|
19
|
+
}
|
|
20
|
+
key(value) {
|
|
21
|
+
if (value !== undefined)
|
|
22
|
+
this.segment.key = value;
|
|
23
|
+
return this.segment.key;
|
|
24
|
+
}
|
|
25
|
+
hasKey() {
|
|
26
|
+
return !Types.isEmpty(this.segment.key);
|
|
27
|
+
}
|
|
28
|
+
clearKey() {
|
|
29
|
+
delete this.segment.key;
|
|
30
|
+
}
|
|
31
|
+
parameters(value) {
|
|
32
|
+
if (value !== undefined)
|
|
33
|
+
this.segment.parameters = value;
|
|
34
|
+
return this.segment.parameters;
|
|
35
|
+
}
|
|
36
|
+
hasParameters() {
|
|
37
|
+
return !Types.isEmpty(this.segment.parameters);
|
|
38
|
+
}
|
|
39
|
+
clearParameters() {
|
|
40
|
+
delete this.segment.parameters;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class ODataPathSegmentsHandler {
|
|
44
|
+
constructor(segments) {
|
|
45
|
+
this.segments = segments;
|
|
46
|
+
}
|
|
47
|
+
entitySet() {
|
|
48
|
+
return this.segments.get(PathSegmentNames.entitySet);
|
|
49
|
+
}
|
|
50
|
+
singleton() {
|
|
51
|
+
return this.segments.get(PathSegmentNames.singleton);
|
|
52
|
+
}
|
|
53
|
+
action() {
|
|
54
|
+
return this.segments.get(PathSegmentNames.action);
|
|
55
|
+
}
|
|
56
|
+
function() {
|
|
57
|
+
return this.segments.get(PathSegmentNames.function);
|
|
58
|
+
}
|
|
59
|
+
keys(values) {
|
|
60
|
+
return this.segments.keys(values);
|
|
61
|
+
}
|
|
62
|
+
property() {
|
|
63
|
+
return this.segments.get(PathSegmentNames.property);
|
|
64
|
+
}
|
|
65
|
+
navigationProperty() {
|
|
66
|
+
return this.segments.get(PathSegmentNames.navigationProperty);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJcEMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsT0FBcUI7UUFBckIsWUFBTyxHQUFQLE9BQU8sQ0FBYztJQUFHLENBQUM7SUFDN0MsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQWM7UUFDakIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBYztRQUNqQixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUNELEdBQUcsQ0FBSSxLQUFvQjtRQUN6QixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFtQixDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNO1FBQ0osT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUNELFVBQVUsQ0FBSSxLQUFTO1FBQ3JCLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQWUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBc0IsUUFBMkI7UUFBM0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFBRyxDQUFDO0lBQ3JELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxJQUFJLENBQUMsTUFBcUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aFNlZ21lbnROYW1lcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRW50aXR5S2V5IH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBPRGF0YVBhdGhTZWdtZW50cywgT0RhdGFTZWdtZW50IH0gZnJvbSAnLi9zZWdtZW50cyc7XG5cbmV4cG9ydCBjbGFzcyBTZWdtZW50SGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VnbWVudDogT0RhdGFTZWdtZW50KSB7fVxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50Lm5hbWU7XG4gIH1cbiAgdHlwZSh2YWx1ZT86IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB0aGlzLnNlZ21lbnQudHlwZSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnQudHlwZTtcbiAgfVxuICBwYXRoKHZhbHVlPzogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHRoaXMuc2VnbWVudC5wYXRoID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudC5wYXRoO1xuICB9XG4gIGtleTxUPih2YWx1ZT86IEVudGl0eUtleTxUPikge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB0aGlzLnNlZ21lbnQua2V5ID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudC5rZXkgYXMgRW50aXR5S2V5PFQ+O1xuICB9XG4gIGhhc0tleSgpIHtcbiAgICByZXR1cm4gIVR5cGVzLmlzRW1wdHkodGhpcy5zZWdtZW50LmtleSk7XG4gIH1cbiAgY2xlYXJLZXkoKSB7XG4gICAgZGVsZXRlIHRoaXMuc2VnbWVudC5rZXk7XG4gIH1cbiAgcGFyYW1ldGVyczxUPih2YWx1ZT86IFQpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgdGhpcy5zZWdtZW50LnBhcmFtZXRlcnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50LnBhcmFtZXRlcnMgYXMgVDtcbiAgfVxuICBoYXNQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiAhVHlwZXMuaXNFbXB0eSh0aGlzLnNlZ21lbnQucGFyYW1ldGVycyk7XG4gIH1cbiAgY2xlYXJQYXJhbWV0ZXJzKCkge1xuICAgIGRlbGV0ZSB0aGlzLnNlZ21lbnQucGFyYW1ldGVycztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXRoU2VnbWVudHNIYW5kbGVyPFQ+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cykge31cbiAgZW50aXR5U2V0KCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmdldChQYXRoU2VnbWVudE5hbWVzLmVudGl0eVNldCk7XG4gIH1cbiAgc2luZ2xldG9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmdldChQYXRoU2VnbWVudE5hbWVzLnNpbmdsZXRvbik7XG4gIH1cbiAgYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmdldChQYXRoU2VnbWVudE5hbWVzLmFjdGlvbik7XG4gIH1cbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50TmFtZXMuZnVuY3Rpb24pO1xuICB9XG4gIGtleXModmFsdWVzPzogKEVudGl0eUtleTxUPiB8IHVuZGVmaW5lZClbXSkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmtleXModmFsdWVzKTtcbiAgfVxuICBwcm9wZXJ0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5nZXQoUGF0aFNlZ21lbnROYW1lcy5wcm9wZXJ0eSk7XG4gIH1cbiAgbmF2aWdhdGlvblByb3BlcnR5KCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmdldChQYXRoU2VnbWVudE5hbWVzLm5hdmlnYXRpb25Qcm9wZXJ0eSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './segments';
|
|
2
|
+
export * from './handlers';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlZ21lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMnO1xuIl19
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { PATH_SEPARATOR } from '../../constants';
|
|
2
|
+
import { PathSegmentNames } from '../../types';
|
|
3
|
+
import { Objects } from '../../utils';
|
|
4
|
+
import { buildPathAndQuery, raw } from '../query';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvc2VnbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVU1QyxTQUFTLG1CQUFtQixDQUMxQixPQUFxQixFQUNyQixTQUFrQixLQUFLO0lBRXZCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7UUFDOUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVTtZQUNyQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hCLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQzVDLE1BQU07YUFDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU07UUFD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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDekUsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUM1QixNQUFNLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQWtCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksT0FBTyxLQUFLLFNBQVM7WUFDdkIsTUFBTSxLQUFLLENBQUMsdUJBQXVCLElBQUksWUFBWSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQQVRIX1NFUEFSQVRPUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQYXRoU2VnbWVudE5hbWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JqZWN0cyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGJ1aWxkUGF0aEFuZFF1ZXJ5LCByYXcgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBFbnRpdHlLZXkgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBTZWdtZW50SGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMnO1xuXG5leHBvcnQgdHlwZSBPRGF0YVNlZ21lbnQgPSB7XG4gIG5hbWU6IFBhdGhTZWdtZW50TmFtZXM7XG4gIHBhdGg6IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAga2V5PzogYW55O1xuICBwYXJhbWV0ZXJzPzogYW55O1xufTtcblxuZnVuY3Rpb24gcGF0aFNlZ21lbnRzQnVpbGRlcihcbiAgc2VnbWVudDogT0RhdGFTZWdtZW50LFxuICBlc2NhcGU6IGJvb2xlYW4gPSBmYWxzZVxuKTogW3N0cmluZywgeyBbbmFtZTogc3RyaW5nXTogYW55IH1dIHtcbiAgaWYgKHNlZ21lbnQubmFtZSA9PT0gUGF0aFNlZ21lbnROYW1lcy5mdW5jdGlvbikge1xuICAgIGxldCBbcGF0aCwgcGFyYW1zXSA9IHNlZ21lbnQucGFyYW1ldGVyc1xuICAgICAgPyBidWlsZFBhdGhBbmRRdWVyeSh7XG4gICAgICAgICAgZnVuYzogeyBbc2VnbWVudC5wYXRoXTogc2VnbWVudC5wYXJhbWV0ZXJzIH0sXG4gICAgICAgICAgZXNjYXBlLFxuICAgICAgICB9KVxuICAgICAgOiBidWlsZFBhdGhBbmRRdWVyeSh7IGZ1bmM6IHNlZ21lbnQucGF0aCwgZXNjYXBlIH0pO1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoUEFUSF9TRVBBUkFUT1IpKSB7XG4gICAgICBwYXRoID0gcGF0aC5zbGljZSgxKTtcbiAgICB9XG4gICAgcmV0dXJuIFtwYXRoLCBwYXJhbXNdO1xuICB9IGVsc2Uge1xuICAgIGxldCBrZXkgPSBzZWdtZW50LmtleTtcbiAgICAvLyBIQUNLOiBDaGVjayBndWlkIHN0cmluZ1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAvXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQvLnRlc3QoXG4gICAgICAgIGtleVxuICAgICAgKVxuICAgICkge1xuICAgICAga2V5ID0gcmF3KGtleSk7XG4gICAgfVxuICAgIGxldCBbcGF0aCwgcGFyYW1zXSA9IGtleSA/IGJ1aWxkUGF0aEFuZFF1ZXJ5KHsga2V5LCBlc2NhcGUgfSkgOiBbJycsIHt9XTtcbiAgICByZXR1cm4gW3NlZ21lbnQucGF0aCArIHBhdGgsIHBhcmFtc107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhUGF0aFNlZ21lbnRzIHtcbiAgcHJpdmF0ZSBfc2VnbWVudHM6IE9EYXRhU2VnbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNlZ21lbnRzPzogT0RhdGFTZWdtZW50W10pIHtcbiAgICB0aGlzLl9zZWdtZW50cyA9IHNlZ21lbnRzIHx8IFtdO1xuICB9XG5cbiAgcGF0aEFuZFBhcmFtcyhlc2NhcGU6IGJvb2xlYW4gPSBmYWxzZSk6IFtzdHJpbmcsIHsgW25hbWU6IHN0cmluZ106IGFueSB9XSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fc2VnbWVudHMucmVkdWNlKFxuICAgICAgKGFjYywgc2VnbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBbcGF0aCwgcGFyYW1zXSA9IHBhdGhTZWdtZW50c0J1aWxkZXIoc2VnbWVudCwgZXNjYXBlKTtcbiAgICAgICAgYWNjLnBhdGhzLnB1c2gocGF0aCk7XG4gICAgICAgIGFjYy5wYXJhbXMgPSBPYmplY3QuYXNzaWduKGFjYy5wYXJhbXMsIHBhcmFtcyk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAgeyBwYXRoczogW10gYXMgc3RyaW5nW10sIHBhcmFtczoge30gYXMgeyBbbmFtZTogc3RyaW5nXTogYW55IH0gfVxuICAgICk7XG4gICAgcmV0dXJuIFtyZXN1bHQucGF0aHMuam9pbihQQVRIX1NFUEFSQVRPUiksIHJlc3VsdC5wYXJhbXNdO1xuICB9XG5cbiAgdHlwZXMoeyBrZXkgPSBmYWxzZSB9OiB7IGtleT86IGJvb2xlYW4gfSA9IHt9KTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzKHsga2V5IH0pXG4gICAgICAubWFwKChzKSA9PiBzLnR5cGUoKSlcbiAgICAgIC5maWx0ZXIoKHQpID0+IHQgIT09IHVuZGVmaW5lZCkgYXMgc3RyaW5nW107XG4gIH1cblxuICBrZXlzKHZhbHVlcz86IChFbnRpdHlLZXk8YW55PiB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5zZWdtZW50cyh7IGtleTogdHJ1ZSB9KTtcbiAgICBpZiAodmFsdWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNlZ21lbnRzLmZvckVhY2goKHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IHZhbHVlc1tpbmRleF07XG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNlZ21lbnQuY2xlYXJLZXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWdtZW50LmtleShrZXkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNlZ21lbnRzLm1hcCgocykgPT4gcy5rZXkoKSBhcyBFbnRpdHlLZXk8YW55PiB8IHVuZGVmaW5lZCk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IFtwYXRoLCBwYXJhbXNdID0gdGhpcy5wYXRoQW5kUGFyYW1zKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIHBhdGggK1xuICAgICAgT2JqZWN0LmVudHJpZXMocGFyYW1zKVxuICAgICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgICAuam9pbignJicpXG4gICAgKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VnbWVudHMubWFwKChzKSA9PiB7XG4gICAgICBsZXQganNvbiA9IHtcbiAgICAgICAgbmFtZTogcy5uYW1lIGFzIHN0cmluZyxcbiAgICAgICAgcGF0aDogcy5wYXRoLFxuICAgICAgfSBhcyBhbnk7XG4gICAgICBpZiAocy50eXBlICE9PSB1bmRlZmluZWQpIGpzb24udHlwZSA9IHMudHlwZTtcbiAgICAgIGlmIChzLmtleSAhPT0gdW5kZWZpbmVkKSBqc29uLmtleSA9IHMua2V5O1xuICAgICAgaWYgKHMucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSBqc29uLnBhcmFtZXRlcnMgPSBzLnBhcmFtZXRlcnM7XG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9KTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gT2JqZWN0cy5jbG9uZSh0aGlzLl9zZWdtZW50cyk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVBhdGhTZWdtZW50cyhzZWdtZW50cyk7XG4gIH1cblxuICBmaW5kKHByZWRpY2F0ZTogKHNlZ21lbnQ6IE9EYXRhU2VnbWVudCkgPT4gYm9vbGVhbikge1xuICAgIC8vQmFja3dhcmQgRmluZFxuICAgIHJldHVybiBbLi4udGhpcy5fc2VnbWVudHNdLnJldmVyc2UoKS5maW5kKHByZWRpY2F0ZSk7XG4gIH1cblxuICBzZWdtZW50cyh7IGtleSA9IGZhbHNlIH06IHsga2V5PzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICBsZXQgc2VnbWVudHMgPSBbLi4udGhpcy5fc2VnbWVudHNdO1xuICAgIGlmIChrZXkpXG4gICAgICBzZWdtZW50cyA9IHNlZ21lbnRzLmZpbHRlcihcbiAgICAgICAgKHMpID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgUGF0aFNlZ21lbnROYW1lcy5lbnRpdHlTZXQsXG4gICAgICAgICAgICBQYXRoU2VnbWVudE5hbWVzLm5hdmlnYXRpb25Qcm9wZXJ0eSxcbiAgICAgICAgICAgIFBhdGhTZWdtZW50TmFtZXMucHJvcGVydHksXG4gICAgICAgICAgXS5pbmRleE9mKHMubmFtZSkgIT09IC0xXG4gICAgICApO1xuICAgIHJldHVybiBzZWdtZW50cy5tYXAoKHMpID0+IG5ldyBTZWdtZW50SGFuZGxlcihzKSk7XG4gIH1cblxuICBmaXJzdCh7IGtleSA9IGZhbHNlIH06IHsga2V5PzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMuc2VnbWVudHMoeyBrZXkgfSk7XG4gICAgcmV0dXJuIHNlZ21lbnRzLmxlbmd0aCA+IDAgPyBzZWdtZW50c1swXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxhc3QoeyBrZXkgPSBmYWxzZSB9OiB7IGtleT86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnNlZ21lbnRzKHsga2V5IH0pO1xuICAgIHJldHVybiBzZWdtZW50cy5sZW5ndGggPiAwID8gc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBhZGQobmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWdtZW50ID0geyBuYW1lLCBwYXRoIH0gYXMgT0RhdGFTZWdtZW50O1xuICAgIHRoaXMuX3NlZ21lbnRzLnB1c2goc2VnbWVudCk7XG4gICAgcmV0dXJuIG5ldyBTZWdtZW50SGFuZGxlcihzZWdtZW50KTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgc2VnbWVudCA9IHRoaXMuZmluZCgocykgPT4gcy5uYW1lID09PSBuYW1lKTtcbiAgICBpZiAoc2VnbWVudCA9PT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlZ21lbnQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICByZXR1cm4gbmV3IFNlZ21lbnRIYW5kbGVyKHNlZ21lbnQpO1xuICB9XG59XG4iXX0=
|