angular-odata 0.130.0 → 0.131.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/fesm2022/angular-odata.mjs +2298 -2162
- package/fesm2022/angular-odata.mjs.map +1 -1
- package/lib/api.d.ts +10 -11
- package/lib/cache/cache.d.ts +2 -2
- package/lib/cache/memory.d.ts +2 -2
- package/lib/cache/storage.d.ts +2 -2
- package/lib/loaders.d.ts +8 -8
- package/lib/metadata/csdl/csdl-annotation.d.ts +3 -3
- package/lib/metadata/csdl/csdl-entity-container.d.ts +2 -2
- package/lib/metadata/csdl/csdl-entity-set.d.ts +2 -2
- package/lib/metadata/csdl/csdl-enum-type.d.ts +3 -3
- package/lib/metadata/csdl/csdl-function-action.d.ts +4 -4
- package/lib/metadata/csdl/csdl-reference.d.ts +2 -2
- package/lib/metadata/csdl/csdl-schema.d.ts +2 -2
- package/lib/metadata/csdl/csdl-structural-property.d.ts +3 -3
- package/lib/metadata/csdl/csdl-structured-type.d.ts +3 -3
- package/lib/metadata/metadata.d.ts +2 -2
- package/lib/models/options.d.ts +2 -2
- package/lib/module.d.ts +3 -3
- package/lib/options.d.ts +3 -3
- package/lib/resources/query/expressions/apply.d.ts +1 -1
- package/lib/resources/query/expressions/compute.d.ts +1 -1
- package/lib/resources/query/expressions/count.d.ts +1 -1
- package/lib/resources/query/expressions/expand.d.ts +4 -3
- package/lib/resources/query/expressions/filter.d.ts +2 -1
- package/lib/resources/query/expressions/orderby.d.ts +2 -1
- package/lib/resources/query/expressions/search.d.ts +2 -1
- package/lib/resources/query/expressions/select.d.ts +2 -1
- package/lib/resources/query/handlers.d.ts +17 -5
- package/lib/resources/resource.d.ts +5 -5
- package/lib/resources/types/action.d.ts +2 -2
- package/lib/resources/types/entity-set.d.ts +2 -2
- package/lib/resources/types/navigation-property.d.ts +2 -2
- package/lib/resources/types/property.d.ts +2 -2
- package/lib/schema/annotation.d.ts +3 -3
- package/lib/schema/callable.d.ts +3 -3
- package/lib/schema/element.d.ts +3 -3
- package/lib/schema/entity-container.d.ts +2 -2
- package/lib/schema/entity-set.d.ts +2 -2
- package/lib/schema/enum-type.d.ts +2 -2
- package/lib/schema/parsers/callable.d.ts +4 -4
- package/lib/schema/parsers/enum-type.d.ts +3 -3
- package/lib/schema/parsers/structured-type.d.ts +4 -4
- package/lib/schema/schema.d.ts +3 -3
- package/lib/schema/singleton.d.ts +2 -2
- package/lib/schema/structured-type.d.ts +3 -3
- package/lib/services/entity.d.ts +1 -1
- package/lib/settings.d.ts +2 -2
- package/lib/types.d.ts +76 -74
- package/lib/utils/odata.d.ts +2 -2
- package/package.json +3 -5
- package/schematics/apigen/files/api-config/__fileName__.ts +4 -4
- package/esm2022/angular-odata.mjs +0 -5
- package/esm2022/lib/annotations.mjs +0 -146
- package/esm2022/lib/api.mjs +0 -439
- package/esm2022/lib/cache/cache.mjs +0 -177
- package/esm2022/lib/cache/index.mjs +0 -4
- package/esm2022/lib/cache/memory.mjs +0 -30
- package/esm2022/lib/cache/storage.mjs +0 -57
- package/esm2022/lib/client.mjs +0 -215
- package/esm2022/lib/constants.mjs +0 -95
- package/esm2022/lib/helper.mjs +0 -288
- package/esm2022/lib/index.mjs +0 -22
- package/esm2022/lib/loaders.mjs +0 -43
- package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +0 -273
- package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +0 -59
- package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +0 -50
- package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +0 -74
- package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +0 -204
- package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +0 -15
- package/esm2022/lib/metadata/csdl/csdl-reference.mjs +0 -76
- package/esm2022/lib/metadata/csdl/csdl-schema.mjs +0 -87
- package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +0 -37
- package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +0 -145
- package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +0 -159
- package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +0 -46
- package/esm2022/lib/metadata/index.mjs +0 -3
- package/esm2022/lib/metadata/metadata.mjs +0 -41
- package/esm2022/lib/metadata/parser.mjs +0 -564
- package/esm2022/lib/models/collection.mjs +0 -816
- package/esm2022/lib/models/index.mjs +0 -4
- package/esm2022/lib/models/model.mjs +0 -577
- package/esm2022/lib/models/options.mjs +0 -1227
- package/esm2022/lib/module.mjs +0 -55
- package/esm2022/lib/options.mjs +0 -91
- package/esm2022/lib/resources/index.mjs +0 -7
- package/esm2022/lib/resources/options.mjs +0 -66
- package/esm2022/lib/resources/path/handlers.mjs +0 -81
- package/esm2022/lib/resources/path/index.mjs +0 -3
- package/esm2022/lib/resources/path/segments.mjs +0 -149
- package/esm2022/lib/resources/query/builder.mjs +0 -645
- package/esm2022/lib/resources/query/expressions/apply.mjs +0 -238
- package/esm2022/lib/resources/query/expressions/base.mjs +0 -26
- package/esm2022/lib/resources/query/expressions/compute.mjs +0 -55
- package/esm2022/lib/resources/query/expressions/count.mjs +0 -118
- package/esm2022/lib/resources/query/expressions/expand.mjs +0 -154
- package/esm2022/lib/resources/query/expressions/filter.mjs +0 -180
- package/esm2022/lib/resources/query/expressions/index.mjs +0 -10
- package/esm2022/lib/resources/query/expressions/orderby.mjs +0 -81
- package/esm2022/lib/resources/query/expressions/search.mjs +0 -144
- package/esm2022/lib/resources/query/expressions/select.mjs +0 -49
- package/esm2022/lib/resources/query/expressions/syntax.mjs +0 -770
- package/esm2022/lib/resources/query/handlers.mjs +0 -423
- package/esm2022/lib/resources/query/index.mjs +0 -5
- package/esm2022/lib/resources/query/options.mjs +0 -140
- package/esm2022/lib/resources/request.mjs +0 -210
- package/esm2022/lib/resources/resource.mjs +0 -316
- package/esm2022/lib/resources/response.mjs +0 -180
- package/esm2022/lib/resources/types/action.mjs +0 -118
- package/esm2022/lib/resources/types/batch.mjs +0 -428
- package/esm2022/lib/resources/types/count.mjs +0 -33
- package/esm2022/lib/resources/types/entity-set.mjs +0 -131
- package/esm2022/lib/resources/types/entity.mjs +0 -112
- package/esm2022/lib/resources/types/function.mjs +0 -149
- package/esm2022/lib/resources/types/index.mjs +0 -15
- package/esm2022/lib/resources/types/media.mjs +0 -44
- package/esm2022/lib/resources/types/metadata.mjs +0 -35
- package/esm2022/lib/resources/types/navigation-property.mjs +0 -246
- package/esm2022/lib/resources/types/options.mjs +0 -2
- package/esm2022/lib/resources/types/property.mjs +0 -187
- package/esm2022/lib/resources/types/reference.mjs +0 -87
- package/esm2022/lib/resources/types/singleton.mjs +0 -125
- package/esm2022/lib/resources/types/value.mjs +0 -48
- package/esm2022/lib/schema/annotation.mjs +0 -44
- package/esm2022/lib/schema/callable.mjs +0 -69
- package/esm2022/lib/schema/element.mjs +0 -70
- package/esm2022/lib/schema/entity-container.mjs +0 -13
- package/esm2022/lib/schema/entity-set.mjs +0 -11
- package/esm2022/lib/schema/enum-type.mjs +0 -69
- package/esm2022/lib/schema/index.mjs +0 -9
- package/esm2022/lib/schema/parsers/callable.mjs +0 -123
- package/esm2022/lib/schema/parsers/edm.mjs +0 -101
- package/esm2022/lib/schema/parsers/enum-type.mjs +0 -148
- package/esm2022/lib/schema/parsers/index.mjs +0 -5
- package/esm2022/lib/schema/parsers/structured-type.mjs +0 -548
- package/esm2022/lib/schema/schema.mjs +0 -52
- package/esm2022/lib/schema/singleton.mjs +0 -11
- package/esm2022/lib/schema/structured-type.mjs +0 -220
- package/esm2022/lib/services/base.mjs +0 -32
- package/esm2022/lib/services/entity-set.mjs +0 -161
- package/esm2022/lib/services/entity.mjs +0 -12
- package/esm2022/lib/services/factory.mjs +0 -39
- package/esm2022/lib/services/index.mjs +0 -5
- package/esm2022/lib/services/singleton.mjs +0 -55
- package/esm2022/lib/settings.mjs +0 -113
- package/esm2022/lib/types.mjs +0 -118
- package/esm2022/lib/utils/arraybuffers.mjs +0 -46
- package/esm2022/lib/utils/arrays.mjs +0 -10
- package/esm2022/lib/utils/dates.mjs +0 -18
- package/esm2022/lib/utils/durations.mjs +0 -40
- package/esm2022/lib/utils/enums.mjs +0 -61
- package/esm2022/lib/utils/http.mjs +0 -95
- package/esm2022/lib/utils/index.mjs +0 -10
- package/esm2022/lib/utils/objects.mjs +0 -204
- package/esm2022/lib/utils/odata.mjs +0 -22
- package/esm2022/lib/utils/strings.mjs +0 -20
- package/esm2022/lib/utils/types.mjs +0 -136
- package/esm2022/lib/utils/urls.mjs +0 -24
- package/esm2022/public-api.mjs +0 -5
package/esm2022/lib/module.mjs
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
-
import { InjectionToken, NgModule, makeEnvironmentProviders, } from '@angular/core';
|
|
4
|
-
import { ODataClient } from './client';
|
|
5
|
-
import { ODataConfigLoader, ODataConfigSyncLoader } from './loaders';
|
|
6
|
-
import { ODataServiceFactory } from './services/index';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export const ODATA_CONFIG = new InjectionToken('odata.config');
|
|
9
|
-
export function createSyncLoader(passedConfig) {
|
|
10
|
-
return new ODataConfigSyncLoader(passedConfig.config);
|
|
11
|
-
}
|
|
12
|
-
// Standalone version
|
|
13
|
-
export function provideODataClient(passedConfig) {
|
|
14
|
-
return makeEnvironmentProviders([
|
|
15
|
-
{ provide: ODATA_CONFIG, useValue: passedConfig },
|
|
16
|
-
passedConfig?.loader ?? {
|
|
17
|
-
provide: ODataConfigLoader,
|
|
18
|
-
useFactory: createSyncLoader,
|
|
19
|
-
deps: [ODATA_CONFIG],
|
|
20
|
-
},
|
|
21
|
-
ODataClient,
|
|
22
|
-
ODataServiceFactory,
|
|
23
|
-
]);
|
|
24
|
-
}
|
|
25
|
-
// Module version
|
|
26
|
-
export class ODataModule {
|
|
27
|
-
static forRoot(passedConfig) {
|
|
28
|
-
return {
|
|
29
|
-
ngModule: ODataModule,
|
|
30
|
-
providers: [
|
|
31
|
-
// Make the ODATA_CONFIG available through injection
|
|
32
|
-
{ provide: ODATA_CONFIG, useValue: passedConfig },
|
|
33
|
-
// Create the loader: Either the one getting passed or a sync one
|
|
34
|
-
passedConfig?.loader ?? {
|
|
35
|
-
provide: ODataConfigLoader,
|
|
36
|
-
useFactory: createSyncLoader,
|
|
37
|
-
deps: [ODATA_CONFIG],
|
|
38
|
-
},
|
|
39
|
-
ODataClient,
|
|
40
|
-
ODataServiceFactory,
|
|
41
|
-
],
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
45
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, imports: [CommonModule, HttpClientModule] });
|
|
46
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, providers: [ODataClient, ODataServiceFactory], imports: [CommonModule, HttpClientModule] });
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ODataModule, decorators: [{
|
|
49
|
-
type: NgModule,
|
|
50
|
-
args: [{
|
|
51
|
-
imports: [CommonModule, HttpClientModule],
|
|
52
|
-
providers: [ODataClient, ODataServiceFactory],
|
|
53
|
-
}]
|
|
54
|
-
}] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUVMLGNBQWMsRUFFZCxRQUFRLEVBRVIsd0JBQXdCLEdBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVF2RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVksY0FBYyxDQUFDLENBQUM7QUFFMUUsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFlBQWlDO0lBQ2hFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsTUFBTyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELHFCQUFxQjtBQUNyQixNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFlBQWlDO0lBRWpDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7UUFDakQsWUFBWSxFQUFFLE1BQU0sSUFBSTtZQUN0QixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQ3JCO1FBQ0QsV0FBVztRQUNYLG1CQUFtQjtLQUNwQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsaUJBQWlCO0FBS2pCLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQ1osWUFBaUM7UUFFakMsT0FBTztZQUNMLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxvREFBb0Q7Z0JBQ3BELEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO2dCQUVqRCxpRUFBaUU7Z0JBQ2pFLFlBQVksRUFBRSxNQUFNLElBQUk7b0JBQ3RCLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxnQkFBZ0I7b0JBQzVCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7Z0JBQ0QsV0FBVztnQkFDWCxtQkFBbUI7YUFDcEI7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0FwQlUsV0FBVzt3R0FBWCxXQUFXLFlBSFosWUFBWSxFQUFFLGdCQUFnQjt3R0FHN0IsV0FBVyxhQUZYLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLFlBRG5DLFlBQVksRUFBRSxnQkFBZ0I7OzJGQUc3QixXQUFXO2tCQUp2QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIEluamVjdGlvblRva2VuLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbiAgUHJvdmlkZXIsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPRGF0YUNsaWVudCB9IGZyb20gJy4vY2xpZW50JztcbmltcG9ydCB7IE9EYXRhQ29uZmlnTG9hZGVyLCBPRGF0YUNvbmZpZ1N5bmNMb2FkZXIgfSBmcm9tICcuL2xvYWRlcnMnO1xuaW1wb3J0IHsgT0RhdGFTZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4vc2VydmljZXMvaW5kZXgnO1xuaW1wb3J0IHsgQXBpQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc2VkSW5pdGlhbENvbmZpZyB7XG4gIGNvbmZpZz86IEFwaUNvbmZpZyB8IEFwaUNvbmZpZ1tdO1xuICBsb2FkZXI/OiBQcm92aWRlcjtcbn1cblxuZXhwb3J0IGNvbnN0IE9EQVRBX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcGlDb25maWc+KCdvZGF0YS5jb25maWcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN5bmNMb2FkZXIocGFzc2VkQ29uZmlnOiBQYXNzZWRJbml0aWFsQ29uZmlnKSB7XG4gIHJldHVybiBuZXcgT0RhdGFDb25maWdTeW5jTG9hZGVyKHBhc3NlZENvbmZpZy5jb25maWchKTtcbn1cblxuLy8gU3RhbmRhbG9uZSB2ZXJzaW9uXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9EYXRhQ2xpZW50KFxuICBwYXNzZWRDb25maWc6IFBhc3NlZEluaXRpYWxDb25maWcsXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHsgcHJvdmlkZTogT0RBVEFfQ09ORklHLCB1c2VWYWx1ZTogcGFzc2VkQ29uZmlnIH0sXG4gICAgcGFzc2VkQ29uZmlnPy5sb2FkZXIgPz8ge1xuICAgICAgcHJvdmlkZTogT0RhdGFDb25maWdMb2FkZXIsXG4gICAgICB1c2VGYWN0b3J5OiBjcmVhdGVTeW5jTG9hZGVyLFxuICAgICAgZGVwczogW09EQVRBX0NPTkZJR10sXG4gICAgfSxcbiAgICBPRGF0YUNsaWVudCxcbiAgICBPRGF0YVNlcnZpY2VGYWN0b3J5LFxuICBdKTtcbn1cblxuLy8gTW9kdWxlIHZlcnNpb25cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtPRGF0YUNsaWVudCwgT0RhdGFTZXJ2aWNlRmFjdG9yeV0sXG59KVxuZXhwb3J0IGNsYXNzIE9EYXRhTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgcGFzc2VkQ29uZmlnOiBQYXNzZWRJbml0aWFsQ29uZmlnLFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE9EYXRhTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBPRGF0YU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBNYWtlIHRoZSBPREFUQV9DT05GSUcgYXZhaWxhYmxlIHRocm91Z2ggaW5qZWN0aW9uXG4gICAgICAgIHsgcHJvdmlkZTogT0RBVEFfQ09ORklHLCB1c2VWYWx1ZTogcGFzc2VkQ29uZmlnIH0sXG5cbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBsb2FkZXI6IEVpdGhlciB0aGUgb25lIGdldHRpbmcgcGFzc2VkIG9yIGEgc3luYyBvbmVcbiAgICAgICAgcGFzc2VkQ29uZmlnPy5sb2FkZXIgPz8ge1xuICAgICAgICAgIHByb3ZpZGU6IE9EYXRhQ29uZmlnTG9hZGVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVN5bmNMb2FkZXIsXG4gICAgICAgICAgZGVwczogW09EQVRBX0NPTkZJR10sXG4gICAgICAgIH0sXG4gICAgICAgIE9EYXRhQ2xpZW50LFxuICAgICAgICBPRGF0YVNlcnZpY2VGYWN0b3J5LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/options.mjs
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_FETCH_POLICY, DEFAULT_STRIP_METADATA, DEFAULT_VERSION, } from './constants';
|
|
2
|
-
import { ODataHelper } from './helper';
|
|
3
|
-
export class ODataApiOptions {
|
|
4
|
-
/**
|
|
5
|
-
* Default OData version
|
|
6
|
-
*/
|
|
7
|
-
version;
|
|
8
|
-
/**
|
|
9
|
-
* Send enum as string in the request
|
|
10
|
-
*/
|
|
11
|
-
stringAsEnum;
|
|
12
|
-
/**
|
|
13
|
-
* Delete reference by path or by id
|
|
14
|
-
*/
|
|
15
|
-
deleteRefBy;
|
|
16
|
-
/**
|
|
17
|
-
* No use parenthesis for empty parameters functions
|
|
18
|
-
*/
|
|
19
|
-
nonParenthesisForEmptyParameterFunction;
|
|
20
|
-
/**
|
|
21
|
-
* Strip metadata from the response
|
|
22
|
-
*/
|
|
23
|
-
stripMetadata;
|
|
24
|
-
/**
|
|
25
|
-
* Use JSON Batch Format
|
|
26
|
-
*/
|
|
27
|
-
jsonBatchFormat;
|
|
28
|
-
/**
|
|
29
|
-
* Relative urls
|
|
30
|
-
* http://docs.oasis-open.org/odata/odata-json-format/v4.0/cs01/odata-json-format-v4.0-cs01.html#_Toc365464682
|
|
31
|
-
*/
|
|
32
|
-
relativeUrls;
|
|
33
|
-
/**
|
|
34
|
-
* Cache fetch policy
|
|
35
|
-
*/
|
|
36
|
-
fetchPolicy;
|
|
37
|
-
/**
|
|
38
|
-
* Extra params to be sent in the request
|
|
39
|
-
*/
|
|
40
|
-
params;
|
|
41
|
-
/**
|
|
42
|
-
* Extra headers to be sent in the request
|
|
43
|
-
*/
|
|
44
|
-
headers;
|
|
45
|
-
/**
|
|
46
|
-
* Http request with credentials
|
|
47
|
-
*/
|
|
48
|
-
withCredentials;
|
|
49
|
-
/**
|
|
50
|
-
* Send query options in the request body
|
|
51
|
-
*/
|
|
52
|
-
bodyQueryOptions;
|
|
53
|
-
/**
|
|
54
|
-
* Customize accept header with OData options
|
|
55
|
-
* @link http://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html#sec_RequestingtheJSONFormat
|
|
56
|
-
*/
|
|
57
|
-
accept;
|
|
58
|
-
etag = { ifMatch: true, ifNoneMatch: false };
|
|
59
|
-
prefer;
|
|
60
|
-
constructor(config) {
|
|
61
|
-
this.version = config.version || DEFAULT_VERSION;
|
|
62
|
-
this.stringAsEnum = config.stringAsEnum || false;
|
|
63
|
-
this.params = config.params || {};
|
|
64
|
-
this.headers = config.headers || {};
|
|
65
|
-
this.withCredentials = config.withCredentials;
|
|
66
|
-
this.stripMetadata = config.stripMetadata || DEFAULT_STRIP_METADATA;
|
|
67
|
-
this.fetchPolicy = config.fetchPolicy || DEFAULT_FETCH_POLICY;
|
|
68
|
-
this.bodyQueryOptions = config.bodyQueryOptions || [];
|
|
69
|
-
this.accept = config.accept;
|
|
70
|
-
Object.assign(this.etag, config.etag || {});
|
|
71
|
-
this.prefer = config.prefer;
|
|
72
|
-
this.deleteRefBy = config.deleteRefBy ?? 'path';
|
|
73
|
-
this.nonParenthesisForEmptyParameterFunction =
|
|
74
|
-
config.nonParenthesisForEmptyParameterFunction ?? false;
|
|
75
|
-
this.jsonBatchFormat = config.jsonBatchFormat ?? false;
|
|
76
|
-
this.relativeUrls = config.relativeUrls ?? true;
|
|
77
|
-
}
|
|
78
|
-
get parserOptions() {
|
|
79
|
-
return {
|
|
80
|
-
version: this.version,
|
|
81
|
-
stringAsEnum: this.stringAsEnum,
|
|
82
|
-
deleteRefBy: this.deleteRefBy,
|
|
83
|
-
nonParenthesisForEmptyParameterFunction: this.nonParenthesisForEmptyParameterFunction,
|
|
84
|
-
...this.accept,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
get helper() {
|
|
88
|
-
return ODataHelper[this.version];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLE9BQU8sZUFBZTtJQUMxQjs7T0FFRztJQUNILE9BQU8sQ0FBZTtJQUN0Qjs7T0FFRztJQUNILFlBQVksQ0FBVTtJQUN0Qjs7T0FFRztJQUNILFdBQVcsQ0FBZ0I7SUFDM0I7O09BRUc7SUFDSCx1Q0FBdUMsQ0FBVTtJQUNqRDs7T0FFRztJQUNILGFBQWEsQ0FBb0I7SUFDakM7O09BRUc7SUFDSCxlQUFlLENBQVU7SUFDekI7OztPQUdHO0lBQ0gsWUFBWSxDQUFVO0lBQ3RCOztPQUVHO0lBQ0gsV0FBVyxDQUFjO0lBQ3pCOztPQUVHO0lBQ0gsTUFBTSxDQUF5QztJQUMvQzs7T0FFRztJQUNILE9BQU8sQ0FBeUM7SUFDaEQ7O09BRUc7SUFDSCxlQUFlLENBQVc7SUFDMUI7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBZ0I7SUFDaEM7OztPQUdHO0lBQ0gsTUFBTSxDQUtKO0lBQ0YsSUFBSSxHQVNBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUMsTUFBTSxDQXFCSjtJQUVGLFlBQVksTUFBa0I7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLHNCQUFzQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFDaEQsSUFBSSxDQUFDLHVDQUF1QztZQUMxQyxNQUFNLENBQUMsdUNBQXVDLElBQUksS0FBSyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLHVDQUF1QyxFQUNyQyxJQUFJLENBQUMsdUNBQXVDO1lBQzlDLEdBQUcsSUFBSSxDQUFDLE1BQU07U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcGlPcHRpb25zLFxuICBGZXRjaFBvbGljeSxcbiAgT0RhdGFNZXRhZGF0YVR5cGUsXG4gIE9EYXRhVmVyc2lvbixcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUXVlcnlPcHRpb24sXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9GRVRDSF9QT0xJQ1ksXG4gIERFRkFVTFRfU1RSSVBfTUVUQURBVEEsXG4gIERFRkFVTFRfVkVSU0lPTixcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBPRGF0YUhlbHBlciB9IGZyb20gJy4vaGVscGVyJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhQXBpT3B0aW9ucyBpbXBsZW1lbnRzIEFwaU9wdGlvbnMge1xuICAvKipcbiAgICogRGVmYXVsdCBPRGF0YSB2ZXJzaW9uXG4gICAqL1xuICB2ZXJzaW9uOiBPRGF0YVZlcnNpb247XG4gIC8qKlxuICAgKiBTZW5kIGVudW0gYXMgc3RyaW5nIGluIHRoZSByZXF1ZXN0XG4gICAqL1xuICBzdHJpbmdBc0VudW06IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZWxldGUgcmVmZXJlbmNlIGJ5IHBhdGggb3IgYnkgaWRcbiAgICovXG4gIGRlbGV0ZVJlZkJ5OiAncGF0aCcgfCAnaWQnO1xuICAvKipcbiAgICogTm8gdXNlIHBhcmVudGhlc2lzIGZvciBlbXB0eSBwYXJhbWV0ZXJzIGZ1bmN0aW9uc1xuICAgKi9cbiAgbm9uUGFyZW50aGVzaXNGb3JFbXB0eVBhcmFtZXRlckZ1bmN0aW9uOiBib29sZWFuO1xuICAvKipcbiAgICogU3RyaXAgbWV0YWRhdGEgZnJvbSB0aGUgcmVzcG9uc2VcbiAgICovXG4gIHN0cmlwTWV0YWRhdGE6IE9EYXRhTWV0YWRhdGFUeXBlO1xuICAvKipcbiAgICogVXNlIEpTT04gQmF0Y2ggRm9ybWF0XG4gICAqL1xuICBqc29uQmF0Y2hGb3JtYXQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZWxhdGl2ZSB1cmxzXG4gICAqIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhLWpzb24tZm9ybWF0L3Y0LjAvY3MwMS9vZGF0YS1qc29uLWZvcm1hdC12NC4wLWNzMDEuaHRtbCNfVG9jMzY1NDY0NjgyXG4gICAqL1xuICByZWxhdGl2ZVVybHM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDYWNoZSBmZXRjaCBwb2xpY3lcbiAgICovXG4gIGZldGNoUG9saWN5OiBGZXRjaFBvbGljeTtcbiAgLyoqXG4gICAqIEV4dHJhIHBhcmFtcyB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0XG4gICAqL1xuICBwYXJhbXM6IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAvKipcbiAgICogRXh0cmEgaGVhZGVycyB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0XG4gICAqL1xuICBoZWFkZXJzOiB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcbiAgLyoqXG4gICAqIEh0dHAgcmVxdWVzdCB3aXRoIGNyZWRlbnRpYWxzXG4gICAqL1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VuZCBxdWVyeSBvcHRpb25zIGluIHRoZSByZXF1ZXN0IGJvZHlcbiAgICovXG4gIGJvZHlRdWVyeU9wdGlvbnM6IFF1ZXJ5T3B0aW9uW107XG4gIC8qKlxuICAgKiBDdXN0b21pemUgYWNjZXB0IGhlYWRlciB3aXRoIE9EYXRhIG9wdGlvbnNcbiAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEtanNvbi1mb3JtYXQvdjQuMDEvb2RhdGEtanNvbi1mb3JtYXQtdjQuMDEuaHRtbCNzZWNfUmVxdWVzdGluZ3RoZUpTT05Gb3JtYXRcbiAgICovXG4gIGFjY2VwdD86IHtcbiAgICBleHBvbmVudGlhbERlY2ltYWxzPzogYm9vbGVhbjtcbiAgICBpZWVlNzU0Q29tcGF0aWJsZT86IGJvb2xlYW47XG4gICAgbWV0YWRhdGE/OiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICB9O1xuICBldGFnOiB7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEvdjQuMC9lcnJhdGEwMi9vcy9jb21wbGV0ZS9wYXJ0MS1wcm90b2NvbC9vZGF0YS12NC4wLWVycmF0YTAyLW9zLXBhcnQxLXByb3RvY29sLWNvbXBsZXRlLmh0bWwjX1RvYzQwNjM5ODIyOVxuICAgICAqL1xuICAgIGlmTWF0Y2g6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvb2RhdGEvb2RhdGEvdjQuMC9lcnJhdGEwMi9vcy9jb21wbGV0ZS9wYXJ0MS1wcm90b2NvbC9vZGF0YS12NC4wLWVycmF0YTAyLW9zLXBhcnQxLXByb3RvY29sLWNvbXBsZXRlLmh0bWwjX1RvYzQwNjM5ODIzMFxuICAgICAqL1xuICAgIGlmTm9uZU1hdGNoOiBib29sZWFuO1xuICB9ID0geyBpZk1hdGNoOiB0cnVlLCBpZk5vbmVNYXRjaDogZmFsc2UgfTtcbiAgcHJlZmVyPzoge1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29kYXRhL29kYXRhL3Y0LjAvZXJyYXRhMDIvb3MvY29tcGxldGUvcGFydDEtcHJvdG9jb2wvb2RhdGEtdjQuMC1lcnJhdGEwMi1vcy1wYXJ0MS1wcm90b2NvbC1jb21wbGV0ZS5odG1sI19Ub2M0MDYzOTgyMzhcbiAgICAgKi9cbiAgICBtYXhQYWdlU2l6ZT86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS92NC4wL2VycmF0YTAyL29zL2NvbXBsZXRlL3BhcnQxLXByb3RvY29sL29kYXRhLXY0LjAtZXJyYXRhMDItb3MtcGFydDEtcHJvdG9jb2wtY29tcGxldGUuaHRtbCNfVG9jNDA2Mzk4MjQwXG4gICAgICovXG4gICAgcmV0dXJuPzogJ3JlcHJlc2VudGF0aW9uJyB8ICdtaW5pbWFsJztcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS92NC4wL2VycmF0YTAyL29zL2NvbXBsZXRlL3BhcnQxLXByb3RvY29sL29kYXRhLXY0LjAtZXJyYXRhMDItb3MtcGFydDEtcHJvdG9jb2wtY29tcGxldGUuaHRtbCNfVG9jNDA2Mzk4MjM2XG4gICAgICovXG4gICAgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZGF0YS9vZGF0YS92NC4wL2VycmF0YTAyL29zL2NvbXBsZXRlL3BhcnQxLXByb3RvY29sL29kYXRhLXY0LjAtZXJyYXRhMDItb3MtcGFydDEtcHJvdG9jb2wtY29tcGxldGUuaHRtbCNfVG9jNDA2Mzk4MjM3XG4gICAgICovXG4gICAgaW5jbHVkZUFubm90YXRpb25zPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2YmxvZ3MubWljcm9zb2Z0LmNvbS9vZGF0YS9leHRlbnNpb24tb21pdC1udWxsLXZhbHVlLXByb3BlcnRpZXMtaW4tYXNwLW5ldC1jb3JlLW9kYXRhL1xuICAgICAqL1xuICAgIG9taXROdWxsVmFsdWVzPzogYm9vbGVhbjtcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEFwaU9wdGlvbnMpIHtcbiAgICB0aGlzLnZlcnNpb24gPSBjb25maWcudmVyc2lvbiB8fCBERUZBVUxUX1ZFUlNJT047XG4gICAgdGhpcy5zdHJpbmdBc0VudW0gPSBjb25maWcuc3RyaW5nQXNFbnVtIHx8IGZhbHNlO1xuICAgIHRoaXMucGFyYW1zID0gY29uZmlnLnBhcmFtcyB8fCB7fTtcbiAgICB0aGlzLmhlYWRlcnMgPSBjb25maWcuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLndpdGhDcmVkZW50aWFscyA9IGNvbmZpZy53aXRoQ3JlZGVudGlhbHM7XG4gICAgdGhpcy5zdHJpcE1ldGFkYXRhID0gY29uZmlnLnN0cmlwTWV0YWRhdGEgfHwgREVGQVVMVF9TVFJJUF9NRVRBREFUQTtcbiAgICB0aGlzLmZldGNoUG9saWN5ID0gY29uZmlnLmZldGNoUG9saWN5IHx8IERFRkFVTFRfRkVUQ0hfUE9MSUNZO1xuICAgIHRoaXMuYm9keVF1ZXJ5T3B0aW9ucyA9IGNvbmZpZy5ib2R5UXVlcnlPcHRpb25zIHx8IFtdO1xuICAgIHRoaXMuYWNjZXB0ID0gY29uZmlnLmFjY2VwdDtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuZXRhZywgY29uZmlnLmV0YWcgfHwge30pO1xuICAgIHRoaXMucHJlZmVyID0gY29uZmlnLnByZWZlcjtcbiAgICB0aGlzLmRlbGV0ZVJlZkJ5ID0gY29uZmlnLmRlbGV0ZVJlZkJ5ID8/ICdwYXRoJztcbiAgICB0aGlzLm5vblBhcmVudGhlc2lzRm9yRW1wdHlQYXJhbWV0ZXJGdW5jdGlvbiA9XG4gICAgICBjb25maWcubm9uUGFyZW50aGVzaXNGb3JFbXB0eVBhcmFtZXRlckZ1bmN0aW9uID8/IGZhbHNlO1xuICAgIHRoaXMuanNvbkJhdGNoRm9ybWF0ID0gY29uZmlnLmpzb25CYXRjaEZvcm1hdCA/PyBmYWxzZTtcbiAgICB0aGlzLnJlbGF0aXZlVXJscyA9IGNvbmZpZy5yZWxhdGl2ZVVybHMgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBwYXJzZXJPcHRpb25zKCk6IFBhcnNlck9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICBzdHJpbmdBc0VudW06IHRoaXMuc3RyaW5nQXNFbnVtLFxuICAgICAgZGVsZXRlUmVmQnk6IHRoaXMuZGVsZXRlUmVmQnksXG4gICAgICBub25QYXJlbnRoZXNpc0ZvckVtcHR5UGFyYW1ldGVyRnVuY3Rpb246XG4gICAgICAgIHRoaXMubm9uUGFyZW50aGVzaXNGb3JFbXB0eVBhcmFtZXRlckZ1bmN0aW9uLFxuICAgICAgLi4udGhpcy5hY2NlcHQsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBoZWxwZXIoKSB7XG4gICAgcmV0dXJuIE9EYXRhSGVscGVyW3RoaXMudmVyc2lvbl07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './query';
|
|
2
|
-
export * from './path';
|
|
3
|
-
export * from './request';
|
|
4
|
-
export * from './resource';
|
|
5
|
-
export * from './types';
|
|
6
|
-
export * from './response';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3BhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3BvbnNlJztcbiJdfQ==
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_VERSION, MAX_AGE, VERSION_2_0, VERSION_3_0, VERSION_4_0, } from '../constants';
|
|
2
|
-
import { ODataHelper } from '../helper';
|
|
3
|
-
export class ODataResponseOptions {
|
|
4
|
-
version;
|
|
5
|
-
streaming;
|
|
6
|
-
// OData
|
|
7
|
-
metadata;
|
|
8
|
-
ieee754Compatible;
|
|
9
|
-
// Location
|
|
10
|
-
location;
|
|
11
|
-
// Cache
|
|
12
|
-
cacheability;
|
|
13
|
-
maxAge;
|
|
14
|
-
constructor(config) {
|
|
15
|
-
this.version = config.version || DEFAULT_VERSION;
|
|
16
|
-
}
|
|
17
|
-
get helper() {
|
|
18
|
-
return ODataHelper[this.version];
|
|
19
|
-
}
|
|
20
|
-
clone() {
|
|
21
|
-
return new ODataResponseOptions(this);
|
|
22
|
-
}
|
|
23
|
-
setFeatures(features) {
|
|
24
|
-
features.split(';').forEach((o) => {
|
|
25
|
-
let [k, v] = o.split('=');
|
|
26
|
-
switch (k.trim()) {
|
|
27
|
-
case 'odata.metadata':
|
|
28
|
-
this.metadata = v;
|
|
29
|
-
break;
|
|
30
|
-
case 'odata.streaming':
|
|
31
|
-
this.streaming = v == 'true';
|
|
32
|
-
break;
|
|
33
|
-
case 'IEEE754Compatible':
|
|
34
|
-
this.ieee754Compatible = v == 'true';
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
setVersion(version) {
|
|
40
|
-
const value = version.replace(/\;/g, '').trim();
|
|
41
|
-
if ([VERSION_2_0, VERSION_3_0, VERSION_4_0].indexOf(value) !== -1)
|
|
42
|
-
this.version = value;
|
|
43
|
-
}
|
|
44
|
-
setLocation(location) {
|
|
45
|
-
// TODO: resolve location?
|
|
46
|
-
this.location = location;
|
|
47
|
-
}
|
|
48
|
-
setPreferenceApplied(preference) {
|
|
49
|
-
preference.split(',').forEach((prefer) => {
|
|
50
|
-
// TODO: resolve preference
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
setCache(cacheControl) {
|
|
54
|
-
cacheControl.split(',').forEach((directive) => {
|
|
55
|
-
if (directive.startsWith(MAX_AGE)) {
|
|
56
|
-
let maxAge = Number(directive.split('=')[1]);
|
|
57
|
-
if (!Number.isNaN(maxAge))
|
|
58
|
-
this.maxAge = maxAge;
|
|
59
|
-
}
|
|
60
|
-
if (['public', 'private', 'no-cache', 'no-store'].indexOf(directive) !== -1) {
|
|
61
|
-
this.cacheability = directive;
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsT0FBTyxDQUFlO0lBQ3RCLFNBQVMsQ0FBVztJQUNwQixRQUFRO0lBQ1IsUUFBUSxDQUFxQjtJQUM3QixpQkFBaUIsQ0FBVztJQUM1QixXQUFXO0lBQ1gsUUFBUSxDQUFVO0lBQ2xCLFFBQVE7SUFDUixZQUFZLENBQWtEO0lBQzlELE1BQU0sQ0FBVTtJQUVoQixZQUFZLE1BQXFCO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQXNCLENBQUM7b0JBQ3ZDLE1BQU07Z0JBQ1IsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQztvQkFDN0IsTUFBTTtnQkFDUixLQUFLLG1CQUFtQjtvQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxNQUFNLENBQUM7b0JBQ3JDLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQXFCLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWtCO1FBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkMsMkJBQTJCO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUFvQjtRQUMzQixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzVDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDbEQsQ0FBQztZQUNELElBQ0UsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3ZFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUE4QixDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhY2hlQ2FjaGVhYmlsaXR5LFxuICBPRGF0YU1ldGFkYXRhVHlwZSxcbiAgT0RhdGFWZXJzaW9uLFxuICBQYXJzZXJPcHRpb25zLFxuICBSZXNwb25zZU9wdGlvbnMsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfVkVSU0lPTixcbiAgTUFYX0FHRSxcbiAgVkVSU0lPTl8yXzAsXG4gIFZFUlNJT05fM18wLFxuICBWRVJTSU9OXzRfMCxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgT0RhdGFIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFSZXNwb25zZU9wdGlvbnMgaW1wbGVtZW50cyBSZXNwb25zZU9wdGlvbnMge1xuICB2ZXJzaW9uOiBPRGF0YVZlcnNpb247XG4gIHN0cmVhbWluZz86IGJvb2xlYW47XG4gIC8vIE9EYXRhXG4gIG1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgLy8gTG9jYXRpb25cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8vIENhY2hlXG4gIGNhY2hlYWJpbGl0eT86ICdwdWJsaWMnIHwgJ3ByaXZhdGUnIHwgJ25vLWNhY2hlJyB8ICduby1zdG9yZSc7XG4gIG1heEFnZT86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFBhcnNlck9wdGlvbnMpIHtcbiAgICB0aGlzLnZlcnNpb24gPSBjb25maWcudmVyc2lvbiB8fCBERUZBVUxUX1ZFUlNJT047XG4gIH1cblxuICBnZXQgaGVscGVyKCkge1xuICAgIHJldHVybiBPRGF0YUhlbHBlclt0aGlzLnZlcnNpb25dO1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVJlc3BvbnNlT3B0aW9ucyh0aGlzKTtcbiAgfVxuXG4gIHNldEZlYXR1cmVzKGZlYXR1cmVzOiBzdHJpbmcpIHtcbiAgICBmZWF0dXJlcy5zcGxpdCgnOycpLmZvckVhY2goKG8pID0+IHtcbiAgICAgIGxldCBbaywgdl0gPSBvLnNwbGl0KCc9Jyk7XG4gICAgICBzd2l0Y2ggKGsudHJpbSgpKSB7XG4gICAgICAgIGNhc2UgJ29kYXRhLm1ldGFkYXRhJzpcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhID0gdiBhcyBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb2RhdGEuc3RyZWFtaW5nJzpcbiAgICAgICAgICB0aGlzLnN0cmVhbWluZyA9IHYgPT0gJ3RydWUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdJRUVFNzU0Q29tcGF0aWJsZSc6XG4gICAgICAgICAgdGhpcy5pZWVlNzU0Q29tcGF0aWJsZSA9IHYgPT0gJ3RydWUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0VmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHZlcnNpb24ucmVwbGFjZSgvXFw7L2csICcnKS50cmltKCk7XG4gICAgaWYgKFtWRVJTSU9OXzJfMCwgVkVSU0lPTl8zXzAsIFZFUlNJT05fNF8wXS5pbmRleE9mKHZhbHVlKSAhPT0gLTEpXG4gICAgICB0aGlzLnZlcnNpb24gPSB2YWx1ZSBhcyBPRGF0YVZlcnNpb247XG4gIH1cblxuICBzZXRMb2NhdGlvbihsb2NhdGlvbjogc3RyaW5nKSB7XG4gICAgLy8gVE9ETzogcmVzb2x2ZSBsb2NhdGlvbj9cbiAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247XG4gIH1cblxuICBzZXRQcmVmZXJlbmNlQXBwbGllZChwcmVmZXJlbmNlOiBzdHJpbmcpIHtcbiAgICBwcmVmZXJlbmNlLnNwbGl0KCcsJykuZm9yRWFjaCgocHJlZmVyKSA9PiB7XG4gICAgICAvLyBUT0RPOiByZXNvbHZlIHByZWZlcmVuY2VcbiAgICB9KTtcbiAgfVxuXG4gIHNldENhY2hlKGNhY2hlQ29udHJvbDogc3RyaW5nKSB7XG4gICAgY2FjaGVDb250cm9sLnNwbGl0KCcsJykuZm9yRWFjaCgoZGlyZWN0aXZlKSA9PiB7XG4gICAgICBpZiAoZGlyZWN0aXZlLnN0YXJ0c1dpdGgoTUFYX0FHRSkpIHtcbiAgICAgICAgbGV0IG1heEFnZSA9IE51bWJlcihkaXJlY3RpdmUuc3BsaXQoJz0nKVsxXSk7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG1heEFnZSkpIHRoaXMubWF4QWdlID0gbWF4QWdlO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBbJ3B1YmxpYycsICdwcml2YXRlJywgJ25vLWNhY2hlJywgJ25vLXN0b3JlJ10uaW5kZXhPZihkaXJlY3RpdmUpICE9PSAtMVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2FjaGVhYmlsaXR5ID0gZGlyZWN0aXZlIGFzIENhY2hlQ2FjaGVhYmlsaXR5O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { PathSegment } from '../../types';
|
|
2
|
-
import { Types } from '../../utils';
|
|
3
|
-
export class SegmentHandler {
|
|
4
|
-
segment;
|
|
5
|
-
constructor(segment) {
|
|
6
|
-
this.segment = segment;
|
|
7
|
-
}
|
|
8
|
-
get name() {
|
|
9
|
-
return this.segment.name;
|
|
10
|
-
}
|
|
11
|
-
outgoingType(value) {
|
|
12
|
-
if (value !== undefined)
|
|
13
|
-
this.segment.outgoingType = value;
|
|
14
|
-
return this.segment.outgoingType;
|
|
15
|
-
}
|
|
16
|
-
incomingType(value) {
|
|
17
|
-
if (value !== undefined)
|
|
18
|
-
this.segment.incomingType = value;
|
|
19
|
-
return this.segment.incomingType;
|
|
20
|
-
}
|
|
21
|
-
bindingType(value) {
|
|
22
|
-
if (value !== undefined)
|
|
23
|
-
this.segment.bindingType = value;
|
|
24
|
-
return this.segment.bindingType;
|
|
25
|
-
}
|
|
26
|
-
path(value) {
|
|
27
|
-
if (value !== undefined)
|
|
28
|
-
this.segment.path = value;
|
|
29
|
-
return this.segment.path;
|
|
30
|
-
}
|
|
31
|
-
key(value) {
|
|
32
|
-
if (value !== undefined)
|
|
33
|
-
this.segment.key = value;
|
|
34
|
-
return this.segment.key;
|
|
35
|
-
}
|
|
36
|
-
hasKey() {
|
|
37
|
-
return !Types.isEmpty(this.segment.key);
|
|
38
|
-
}
|
|
39
|
-
clearKey() {
|
|
40
|
-
delete this.segment.key;
|
|
41
|
-
}
|
|
42
|
-
parameters(value) {
|
|
43
|
-
if (value !== undefined)
|
|
44
|
-
this.segment.parameters = value;
|
|
45
|
-
return this.segment.parameters;
|
|
46
|
-
}
|
|
47
|
-
hasParameters() {
|
|
48
|
-
return !Types.isEmpty(this.segment.parameters);
|
|
49
|
-
}
|
|
50
|
-
clearParameters() {
|
|
51
|
-
delete this.segment.parameters;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
export class ODataPathSegmentsHandler {
|
|
55
|
-
segments;
|
|
56
|
-
constructor(segments) {
|
|
57
|
-
this.segments = segments;
|
|
58
|
-
}
|
|
59
|
-
entitySet() {
|
|
60
|
-
return this.segments.get(PathSegment.entitySet);
|
|
61
|
-
}
|
|
62
|
-
singleton() {
|
|
63
|
-
return this.segments.get(PathSegment.singleton);
|
|
64
|
-
}
|
|
65
|
-
action() {
|
|
66
|
-
return this.segments.get(PathSegment.action);
|
|
67
|
-
}
|
|
68
|
-
function() {
|
|
69
|
-
return this.segments.get(PathSegment.function);
|
|
70
|
-
}
|
|
71
|
-
keys(values) {
|
|
72
|
-
return this.segments.keys(values);
|
|
73
|
-
}
|
|
74
|
-
property() {
|
|
75
|
-
return this.segments.get(PathSegment.property);
|
|
76
|
-
}
|
|
77
|
-
navigationProperty() {
|
|
78
|
-
return this.segments.get(PathSegment.navigationProperty);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXBDLE1BQU0sT0FBTyxjQUFjO0lBQ0w7SUFBcEIsWUFBb0IsT0FBcUI7UUFBckIsWUFBTyxHQUFQLE9BQU8sQ0FBYztJQUFHLENBQUM7SUFDN0MsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFjO1FBQ3hCLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQWM7UUFDakIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFDRCxHQUFHLENBQUksS0FBb0I7UUFDekIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBbUIsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTTtRQUNKLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzFCLENBQUM7SUFDRCxVQUFVLENBQUksS0FBUztRQUNyQixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFlLENBQUM7SUFDdEMsQ0FBQztJQUNELGFBQWE7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2I7SUFBdEIsWUFBc0IsUUFBMkI7UUFBM0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFBRyxDQUFDO0lBQ3JELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQXFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aFNlZ21lbnQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzLCBPRGF0YVNlZ21lbnQgfSBmcm9tICcuL3NlZ21lbnRzJztcblxuZXhwb3J0IGNsYXNzIFNlZ21lbnRIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWdtZW50OiBPRGF0YVNlZ21lbnQpIHt9XG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnQubmFtZTtcbiAgfVxuICBvdXRnb2luZ1R5cGUodmFsdWU/OiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgdGhpcy5zZWdtZW50Lm91dGdvaW5nVHlwZSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnQub3V0Z29pbmdUeXBlO1xuICB9XG4gIGluY29taW5nVHlwZSh2YWx1ZT86IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB0aGlzLnNlZ21lbnQuaW5jb21pbmdUeXBlID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudC5pbmNvbWluZ1R5cGU7XG4gIH1cbiAgYmluZGluZ1R5cGUodmFsdWU/OiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgdGhpcy5zZWdtZW50LmJpbmRpbmdUeXBlID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudC5iaW5kaW5nVHlwZTtcbiAgfVxuICBwYXRoKHZhbHVlPzogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHRoaXMuc2VnbWVudC5wYXRoID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudC5wYXRoO1xuICB9XG4gIGtleTxUPih2YWx1ZT86IEVudGl0eUtleTxUPikge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB0aGlzLnNlZ21lbnQua2V5ID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudC5rZXkgYXMgRW50aXR5S2V5PFQ+O1xuICB9XG4gIGhhc0tleSgpIHtcbiAgICByZXR1cm4gIVR5cGVzLmlzRW1wdHkodGhpcy5zZWdtZW50LmtleSk7XG4gIH1cbiAgY2xlYXJLZXkoKSB7XG4gICAgZGVsZXRlIHRoaXMuc2VnbWVudC5rZXk7XG4gIH1cbiAgcGFyYW1ldGVyczxUPih2YWx1ZT86IFQpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkgdGhpcy5zZWdtZW50LnBhcmFtZXRlcnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50LnBhcmFtZXRlcnMgYXMgVDtcbiAgfVxuICBoYXNQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiAhVHlwZXMuaXNFbXB0eSh0aGlzLnNlZ21lbnQucGFyYW1ldGVycyk7XG4gIH1cbiAgY2xlYXJQYXJhbWV0ZXJzKCkge1xuICAgIGRlbGV0ZSB0aGlzLnNlZ21lbnQucGFyYW1ldGVycztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXRoU2VnbWVudHNIYW5kbGVyPFQ+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cykge31cbiAgZW50aXR5U2V0KCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmdldChQYXRoU2VnbWVudC5lbnRpdHlTZXQpO1xuICB9XG4gIHNpbmdsZXRvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5nZXQoUGF0aFNlZ21lbnQuc2luZ2xldG9uKTtcbiAgfVxuICBhY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50LmFjdGlvbik7XG4gIH1cbiAgZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50LmZ1bmN0aW9uKTtcbiAgfVxuICBrZXlzKHZhbHVlcz86IChFbnRpdHlLZXk8VD4gfCB1bmRlZmluZWQpW10pIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5rZXlzKHZhbHVlcyk7XG4gIH1cbiAgcHJvcGVydHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50LnByb3BlcnR5KTtcbiAgfVxuICBuYXZpZ2F0aW9uUHJvcGVydHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZ2V0KFBhdGhTZWdtZW50Lm5hdmlnYXRpb25Qcm9wZXJ0eSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './segments';
|
|
2
|
-
export * from './handlers';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlZ21lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMnO1xuIl19
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { PATH_SEPARATOR } from '../../constants';
|
|
2
|
-
import { PathSegment } from '../../types';
|
|
3
|
-
import { Objects } from '../../utils';
|
|
4
|
-
import { buildPathAndQuery, raw } from '../query';
|
|
5
|
-
import { SegmentHandler } from './handlers';
|
|
6
|
-
function pathSegmentsBuilder(segment, escape = false, parser, options) {
|
|
7
|
-
if (segment.name === PathSegment.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
|
-
// HACK: Remove parenthesis
|
|
18
|
-
if (path.endsWith('()') &&
|
|
19
|
-
options?.nonParenthesisForEmptyParameterFunction) {
|
|
20
|
-
path = path.substring(0, path.length - 2);
|
|
21
|
-
}
|
|
22
|
-
return [path, params];
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
//TODO: Parser key
|
|
26
|
-
let key = segment.key;
|
|
27
|
-
// HACK: Check guid string
|
|
28
|
-
if (typeof key === 'string' &&
|
|
29
|
-
/^[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)) {
|
|
30
|
-
key = raw(key);
|
|
31
|
-
}
|
|
32
|
-
let [path, params] = key ? buildPathAndQuery({ key, escape }) : ['', {}];
|
|
33
|
-
return [segment.path + path, params];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export const pathAndParamsFromSegments = (segments, { escape, parser, options, } = {}) => {
|
|
37
|
-
const result = segments.reduce((acc, segment) => {
|
|
38
|
-
const [path, params] = pathSegmentsBuilder(segment, escape, parser, options);
|
|
39
|
-
acc.paths.push(path);
|
|
40
|
-
acc.params = Object.assign(acc.params, params);
|
|
41
|
-
return acc;
|
|
42
|
-
}, { paths: [], params: {} });
|
|
43
|
-
return [result.paths.join(PATH_SEPARATOR), result.params];
|
|
44
|
-
};
|
|
45
|
-
export class ODataPathSegments {
|
|
46
|
-
_segments;
|
|
47
|
-
constructor(segments) {
|
|
48
|
-
this._segments = segments || [];
|
|
49
|
-
}
|
|
50
|
-
pathAndParams({ escape, parser, options, } = {}) {
|
|
51
|
-
return pathAndParamsFromSegments(this._segments, {
|
|
52
|
-
escape,
|
|
53
|
-
parser,
|
|
54
|
-
options,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
types({ key = false } = {}) {
|
|
58
|
-
return this.segments({ key })
|
|
59
|
-
.map((s) => s.outgoingType())
|
|
60
|
-
.filter((t) => t !== undefined);
|
|
61
|
-
}
|
|
62
|
-
keys(values) {
|
|
63
|
-
const segments = this.segments({ key: true });
|
|
64
|
-
if (values !== undefined) {
|
|
65
|
-
segments.forEach((segment, index) => {
|
|
66
|
-
const key = values[index];
|
|
67
|
-
if (key === undefined) {
|
|
68
|
-
segment.clearKey();
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
segment.key(key);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
return segments.map((s) => s.key());
|
|
76
|
-
}
|
|
77
|
-
toString({ escape } = {}) {
|
|
78
|
-
const [path, params] = this.pathAndParams({ escape });
|
|
79
|
-
return (path +
|
|
80
|
-
Object.entries(params)
|
|
81
|
-
.filter(([, value]) => value)
|
|
82
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
83
|
-
.join('&'));
|
|
84
|
-
}
|
|
85
|
-
toJson() {
|
|
86
|
-
return this._segments.map((s) => {
|
|
87
|
-
let json = {
|
|
88
|
-
name: s.name,
|
|
89
|
-
path: s.path,
|
|
90
|
-
};
|
|
91
|
-
if (s.incomingType !== undefined)
|
|
92
|
-
json.incomingType = s.incomingType;
|
|
93
|
-
if (s.outgoingType !== undefined)
|
|
94
|
-
json.outgoingType = s.outgoingType;
|
|
95
|
-
if (s.key !== undefined)
|
|
96
|
-
json.key = s.key;
|
|
97
|
-
if (s.parameters !== undefined)
|
|
98
|
-
json.parameters = s.parameters;
|
|
99
|
-
return json;
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
static fromJson(json) {
|
|
103
|
-
return new ODataPathSegments(json.map((s) => ({
|
|
104
|
-
name: s.name,
|
|
105
|
-
path: s.path,
|
|
106
|
-
type: s.type,
|
|
107
|
-
key: s.key,
|
|
108
|
-
parameters: s.parameters,
|
|
109
|
-
})));
|
|
110
|
-
}
|
|
111
|
-
clone() {
|
|
112
|
-
const segments = Objects.clone(this._segments);
|
|
113
|
-
return new ODataPathSegments(segments);
|
|
114
|
-
}
|
|
115
|
-
find(predicate) {
|
|
116
|
-
//Backward Find
|
|
117
|
-
return [...this._segments].reverse().find(predicate);
|
|
118
|
-
}
|
|
119
|
-
segments({ key = false } = {}) {
|
|
120
|
-
let segments = [...this._segments];
|
|
121
|
-
if (key)
|
|
122
|
-
segments = segments.filter((s) => [
|
|
123
|
-
PathSegment.entitySet,
|
|
124
|
-
PathSegment.navigationProperty,
|
|
125
|
-
PathSegment.property,
|
|
126
|
-
].indexOf(s.name) !== -1);
|
|
127
|
-
return segments.map((s) => new SegmentHandler(s));
|
|
128
|
-
}
|
|
129
|
-
first({ key = false } = {}) {
|
|
130
|
-
const segments = this.segments({ key });
|
|
131
|
-
return segments.length > 0 ? segments[0] : undefined;
|
|
132
|
-
}
|
|
133
|
-
last({ key = false } = {}) {
|
|
134
|
-
const segments = this.segments({ key });
|
|
135
|
-
return segments.length > 0 ? segments[segments.length - 1] : undefined;
|
|
136
|
-
}
|
|
137
|
-
add(name, path) {
|
|
138
|
-
const segment = { name, path };
|
|
139
|
-
this._segments.push(segment);
|
|
140
|
-
return new SegmentHandler(segment);
|
|
141
|
-
}
|
|
142
|
-
get(name) {
|
|
143
|
-
let segment = this.find((s) => s.name === name);
|
|
144
|
-
if (segment === undefined)
|
|
145
|
-
throw Error(`No Segment for name ${name} was found`);
|
|
146
|
-
return new SegmentHandler(segment);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3BhdGgvc2VnbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBeUIsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBWTVDLFNBQVMsbUJBQW1CLENBQzFCLE9BQXFCLEVBQ3JCLFNBQWtCLEtBQUssRUFDdkIsTUFBb0IsRUFDcEIsT0FBdUI7SUFFdkIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVO1lBQ3JDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEIsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDNUMsTUFBTTthQUNQLENBQUM7WUFDSixDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCwyQkFBMkI7UUFDM0Is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QUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzVCLE1BQU0sT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBa0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztZQUN2QixNQUFNLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBBVEhfU0VQQVJBVE9SIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBhcnNlciwgUGFyc2VyT3B0aW9ucywgUGF0aFNlZ21lbnQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPYmplY3RzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgYnVpbGRQYXRoQW5kUXVlcnksIHJhdyB9IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IFNlZ21lbnRIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycyc7XG5cbmV4cG9ydCB0eXBlIE9EYXRhU2VnbWVudCA9IHtcbiAgbmFtZTogUGF0aFNlZ21lbnQ7XG4gIHBhdGg6IHN0cmluZztcbiAgb3V0Z29pbmdUeXBlPzogc3RyaW5nO1xuICBpbmNvbWluZ1R5cGU/OiBzdHJpbmc7XG4gIGJpbmRpbmdUeXBlPzogc3RyaW5nO1xuICBrZXk/OiBhbnk7XG4gIHBhcmFtZXRlcnM/OiBhbnk7XG59O1xuXG5mdW5jdGlvbiBwYXRoU2VnbWVudHNCdWlsZGVyKFxuICBzZWdtZW50OiBPRGF0YVNlZ21lbnQsXG4gIGVzY2FwZTogYm9vbGVhbiA9IGZhbHNlLFxuICBwYXJzZXI/OiBQYXJzZXI8YW55PixcbiAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMsXG4pOiBbc3RyaW5nLCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfV0ge1xuICBpZiAoc2VnbWVudC5uYW1lID09PSBQYXRoU2VnbWVudC5mdW5jdGlvbikge1xuICAgIGxldCBbcGF0aCwgcGFyYW1zXSA9IHNlZ21lbnQucGFyYW1ldGVyc1xuICAgICAgPyBidWlsZFBhdGhBbmRRdWVyeSh7XG4gICAgICAgICAgZnVuYzogeyBbc2VnbWVudC5wYXRoXTogc2VnbWVudC5wYXJhbWV0ZXJzIH0sXG4gICAgICAgICAgZXNjYXBlLFxuICAgICAgICB9KVxuICAgICAgOiBidWlsZFBhdGhBbmRRdWVyeSh7IGZ1bmM6IHNlZ21lbnQucGF0aCwgZXNjYXBlIH0pO1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoUEFUSF9TRVBBUkFUT1IpKSB7XG4gICAgICBwYXRoID0gcGF0aC5zbGljZSgxKTtcbiAgICB9XG4gICAgLy8gSEFDSzogUmVtb3ZlIHBhcmVudGhlc2lzXG4gICAgaWYgKFxuICAgICAgcGF0aC5lbmRzV2l0aCgnKCknKSAmJlxuICAgICAgb3B0aW9ucz8ubm9uUGFyZW50aGVzaXNGb3JFbXB0eVBhcmFtZXRlckZ1bmN0aW9uXG4gICAgKSB7XG4gICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgcGF0aC5sZW5ndGggLSAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3BhdGgsIHBhcmFtc107XG4gIH0gZWxzZSB7XG4gICAgLy9UT0RPOiBQYXJzZXIga2V5XG4gICAgbGV0IGtleSA9IHNlZ21lbnQua2V5O1xuICAgIC8vIEhBQ0s6IENoZWNrIGd1aWQgc3RyaW5nXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiZcbiAgICAgIC9eWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JC8udGVzdChcbiAgICAgICAga2V5LFxuICAgICAgKVxuICAgICkge1xuICAgICAga2V5ID0gcmF3KGtleSk7XG4gICAgfVxuICAgIGxldCBbcGF0aCwgcGFyYW1zXSA9IGtleSA/IGJ1aWxkUGF0aEFuZFF1ZXJ5KHsga2V5LCBlc2NhcGUgfSkgOiBbJycsIHt9XTtcbiAgICByZXR1cm4gW3NlZ21lbnQucGF0aCArIHBhdGgsIHBhcmFtc107XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHBhdGhBbmRQYXJhbXNGcm9tU2VnbWVudHMgPSAoXG4gIHNlZ21lbnRzOiBPRGF0YVNlZ21lbnRbXSxcbiAge1xuICAgIGVzY2FwZSxcbiAgICBwYXJzZXIsXG4gICAgb3B0aW9ucyxcbiAgfToge1xuICAgIGVzY2FwZT86IGJvb2xlYW47XG4gICAgcGFyc2VyPzogUGFyc2VyPGFueT47XG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG4gIH0gPSB7fSxcbik6IFtzdHJpbmcsIHsgW25hbWU6IHN0cmluZ106IGFueSB9XSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IHNlZ21lbnRzLnJlZHVjZShcbiAgICAoYWNjLCBzZWdtZW50KSA9PiB7XG4gICAgICBjb25zdCBbcGF0aCwgcGFyYW1zXSA9IHBhdGhTZWdtZW50c0J1aWxkZXIoXG4gICAgICAgIHNlZ21lbnQsXG4gICAgICAgIGVzY2FwZSxcbiAgICAgICAgcGFyc2VyLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKTtcbiAgICAgIGFjYy5wYXRocy5wdXNoKHBhdGgpO1xuICAgICAgYWNjLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24oYWNjLnBhcmFtcywgcGFyYW1zKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7IHBhdGhzOiBbXSBhcyBzdHJpbmdbXSwgcGFyYW1zOiB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB9LFxuICApO1xuICByZXR1cm4gW3Jlc3VsdC5wYXRocy5qb2luKFBBVEhfU0VQQVJBVE9SKSwgcmVzdWx0LnBhcmFtc107XG59O1xuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXRoU2VnbWVudHMge1xuICBwcml2YXRlIF9zZWdtZW50czogT0RhdGFTZWdtZW50W107XG5cbiAgY29uc3RydWN0b3Ioc2VnbWVudHM/OiBPRGF0YVNlZ21lbnRbXSkge1xuICAgIHRoaXMuX3NlZ21lbnRzID0gc2VnbWVudHMgfHwgW107XG4gIH1cblxuICBwYXRoQW5kUGFyYW1zKHtcbiAgICBlc2NhcGUsXG4gICAgcGFyc2VyLFxuICAgIG9wdGlvbnMsXG4gIH06IHtcbiAgICBlc2NhcGU/OiBib29sZWFuO1xuICAgIHBhcnNlcj86IFBhcnNlcjxhbnk+O1xuICAgIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuICB9ID0ge30pOiBbc3RyaW5nLCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfV0ge1xuICAgIHJldHVybiBwYXRoQW5kUGFyYW1zRnJvbVNlZ21lbnRzKHRoaXMuX3NlZ21lbnRzLCB7XG4gICAgICBlc2NhcGUsXG4gICAgICBwYXJzZXIsXG4gICAgICBvcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgdHlwZXMoeyBrZXkgPSBmYWxzZSB9OiB7IGtleT86IGJvb2xlYW4gfSA9IHt9KTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzKHsga2V5IH0pXG4gICAgICAubWFwKChzKSA9PiBzLm91dGdvaW5nVHlwZSgpKVxuICAgICAgLmZpbHRlcigodCkgPT4gdCAhPT0gdW5kZWZpbmVkKSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIGtleXModmFsdWVzPzogKEVudGl0eUtleTxhbnk+IHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnNlZ21lbnRzKHsga2V5OiB0cnVlIH0pO1xuICAgIGlmICh2YWx1ZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2VnbWVudHMuZm9yRWFjaCgoc2VnbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gdmFsdWVzW2luZGV4XTtcbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2VnbWVudC5jbGVhcktleSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlZ21lbnQua2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudHMubWFwKChzKSA9PiBzLmtleSgpIGFzIEVudGl0eUtleTxhbnk+IHwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHRvU3RyaW5nKHsgZXNjYXBlIH06IHsgZXNjYXBlPzogYm9vbGVhbiB9ID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IFtwYXRoLCBwYXJhbXNdID0gdGhpcy5wYXRoQW5kUGFyYW1zKHsgZXNjYXBlIH0pO1xuICAgIHJldHVybiAoXG4gICAgICBwYXRoICtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtcylcbiAgICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSlcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgICk7XG4gIH1cblxuICB0b0pzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlZ21lbnRzLm1hcCgocykgPT4ge1xuICAgICAgbGV0IGpzb24gPSB7XG4gICAgICAgIG5hbWU6IHMubmFtZSBhcyBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHMucGF0aCxcbiAgICAgIH0gYXMgYW55O1xuICAgICAgaWYgKHMuaW5jb21pbmdUeXBlICE9PSB1bmRlZmluZWQpIGpzb24uaW5jb21pbmdUeXBlID0gcy5pbmNvbWluZ1R5cGU7XG4gICAgICBpZiAocy5vdXRnb2luZ1R5cGUgIT09IHVuZGVmaW5lZCkganNvbi5vdXRnb2luZ1R5cGUgPSBzLm91dGdvaW5nVHlwZTtcbiAgICAgIGlmIChzLmtleSAhPT0gdW5kZWZpbmVkKSBqc29uLmtleSA9IHMua2V5O1xuICAgICAgaWYgKHMucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSBqc29uLnBhcmFtZXRlcnMgPSBzLnBhcmFtZXRlcnM7XG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbihqc29uOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVtdKTogT0RhdGFQYXRoU2VnbWVudHMge1xuICAgIHJldHVybiBuZXcgT0RhdGFQYXRoU2VnbWVudHMoXG4gICAgICBqc29uLm1hcCgoczogYW55KSA9PiAoe1xuICAgICAgICBuYW1lOiBzLm5hbWUsXG4gICAgICAgIHBhdGg6IHMucGF0aCxcbiAgICAgICAgdHlwZTogcy50eXBlLFxuICAgICAgICBrZXk6IHMua2V5LFxuICAgICAgICBwYXJhbWV0ZXJzOiBzLnBhcmFtZXRlcnMsXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gT2JqZWN0cy5jbG9uZSh0aGlzLl9zZWdtZW50cyk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVBhdGhTZWdtZW50cyhzZWdtZW50cyk7XG4gIH1cblxuICBmaW5kKHByZWRpY2F0ZTogKHNlZ21lbnQ6IE9EYXRhU2VnbWVudCkgPT4gYm9vbGVhbikge1xuICAgIC8vQmFja3dhcmQgRmluZFxuICAgIHJldHVybiBbLi4udGhpcy5fc2VnbWVudHNdLnJldmVyc2UoKS5maW5kKHByZWRpY2F0ZSk7XG4gIH1cblxuICBzZWdtZW50cyh7IGtleSA9IGZhbHNlIH06IHsga2V5PzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICBsZXQgc2VnbWVudHMgPSBbLi4udGhpcy5fc2VnbWVudHNdO1xuICAgIGlmIChrZXkpXG4gICAgICBzZWdtZW50cyA9IHNlZ21lbnRzLmZpbHRlcihcbiAgICAgICAgKHMpID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgUGF0aFNlZ21lbnQuZW50aXR5U2V0LFxuICAgICAgICAgICAgUGF0aFNlZ21lbnQubmF2aWdhdGlvblByb3BlcnR5LFxuICAgICAgICAgICAgUGF0aFNlZ21lbnQucHJvcGVydHksXG4gICAgICAgICAgXS5pbmRleE9mKHMubmFtZSkgIT09IC0xLFxuICAgICAgKTtcbiAgICByZXR1cm4gc2VnbWVudHMubWFwKChzKSA9PiBuZXcgU2VnbWVudEhhbmRsZXIocykpO1xuICB9XG5cbiAgZmlyc3QoeyBrZXkgPSBmYWxzZSB9OiB7IGtleT86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnNlZ21lbnRzKHsga2V5IH0pO1xuICAgIHJldHVybiBzZWdtZW50cy5sZW5ndGggPiAwID8gc2VnbWVudHNbMF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBsYXN0KHsga2V5ID0gZmFsc2UgfTogeyBrZXk/OiBib29sZWFuIH0gPSB7fSkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5zZWdtZW50cyh7IGtleSB9KTtcbiAgICByZXR1cm4gc2VnbWVudHMubGVuZ3RoID4gMCA/IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgYWRkKG5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VnbWVudCA9IHsgbmFtZSwgcGF0aCB9IGFzIE9EYXRhU2VnbWVudDtcbiAgICB0aGlzLl9zZWdtZW50cy5wdXNoKHNlZ21lbnQpO1xuICAgIHJldHVybiBuZXcgU2VnbWVudEhhbmRsZXIoc2VnbWVudCk7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHNlZ21lbnQgPSB0aGlzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gbmFtZSk7XG4gICAgaWYgKHNlZ21lbnQgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IEVycm9yKGBObyBTZWdtZW50IGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgcmV0dXJuIG5ldyBTZWdtZW50SGFuZGxlcihzZWdtZW50KTtcbiAgfVxufVxuIl19
|