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.
Files changed (159) hide show
  1. package/fesm2022/angular-odata.mjs +2298 -2162
  2. package/fesm2022/angular-odata.mjs.map +1 -1
  3. package/lib/api.d.ts +10 -11
  4. package/lib/cache/cache.d.ts +2 -2
  5. package/lib/cache/memory.d.ts +2 -2
  6. package/lib/cache/storage.d.ts +2 -2
  7. package/lib/loaders.d.ts +8 -8
  8. package/lib/metadata/csdl/csdl-annotation.d.ts +3 -3
  9. package/lib/metadata/csdl/csdl-entity-container.d.ts +2 -2
  10. package/lib/metadata/csdl/csdl-entity-set.d.ts +2 -2
  11. package/lib/metadata/csdl/csdl-enum-type.d.ts +3 -3
  12. package/lib/metadata/csdl/csdl-function-action.d.ts +4 -4
  13. package/lib/metadata/csdl/csdl-reference.d.ts +2 -2
  14. package/lib/metadata/csdl/csdl-schema.d.ts +2 -2
  15. package/lib/metadata/csdl/csdl-structural-property.d.ts +3 -3
  16. package/lib/metadata/csdl/csdl-structured-type.d.ts +3 -3
  17. package/lib/metadata/metadata.d.ts +2 -2
  18. package/lib/models/options.d.ts +2 -2
  19. package/lib/module.d.ts +3 -3
  20. package/lib/options.d.ts +3 -3
  21. package/lib/resources/query/expressions/apply.d.ts +1 -1
  22. package/lib/resources/query/expressions/compute.d.ts +1 -1
  23. package/lib/resources/query/expressions/count.d.ts +1 -1
  24. package/lib/resources/query/expressions/expand.d.ts +4 -3
  25. package/lib/resources/query/expressions/filter.d.ts +2 -1
  26. package/lib/resources/query/expressions/orderby.d.ts +2 -1
  27. package/lib/resources/query/expressions/search.d.ts +2 -1
  28. package/lib/resources/query/expressions/select.d.ts +2 -1
  29. package/lib/resources/query/handlers.d.ts +17 -5
  30. package/lib/resources/resource.d.ts +5 -5
  31. package/lib/resources/types/action.d.ts +2 -2
  32. package/lib/resources/types/entity-set.d.ts +2 -2
  33. package/lib/resources/types/navigation-property.d.ts +2 -2
  34. package/lib/resources/types/property.d.ts +2 -2
  35. package/lib/schema/annotation.d.ts +3 -3
  36. package/lib/schema/callable.d.ts +3 -3
  37. package/lib/schema/element.d.ts +3 -3
  38. package/lib/schema/entity-container.d.ts +2 -2
  39. package/lib/schema/entity-set.d.ts +2 -2
  40. package/lib/schema/enum-type.d.ts +2 -2
  41. package/lib/schema/parsers/callable.d.ts +4 -4
  42. package/lib/schema/parsers/enum-type.d.ts +3 -3
  43. package/lib/schema/parsers/structured-type.d.ts +4 -4
  44. package/lib/schema/schema.d.ts +3 -3
  45. package/lib/schema/singleton.d.ts +2 -2
  46. package/lib/schema/structured-type.d.ts +3 -3
  47. package/lib/services/entity.d.ts +1 -1
  48. package/lib/settings.d.ts +2 -2
  49. package/lib/types.d.ts +76 -74
  50. package/lib/utils/odata.d.ts +2 -2
  51. package/package.json +3 -5
  52. package/schematics/apigen/files/api-config/__fileName__.ts +4 -4
  53. package/esm2022/angular-odata.mjs +0 -5
  54. package/esm2022/lib/annotations.mjs +0 -146
  55. package/esm2022/lib/api.mjs +0 -439
  56. package/esm2022/lib/cache/cache.mjs +0 -177
  57. package/esm2022/lib/cache/index.mjs +0 -4
  58. package/esm2022/lib/cache/memory.mjs +0 -30
  59. package/esm2022/lib/cache/storage.mjs +0 -57
  60. package/esm2022/lib/client.mjs +0 -215
  61. package/esm2022/lib/constants.mjs +0 -95
  62. package/esm2022/lib/helper.mjs +0 -288
  63. package/esm2022/lib/index.mjs +0 -22
  64. package/esm2022/lib/loaders.mjs +0 -43
  65. package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +0 -273
  66. package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +0 -59
  67. package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +0 -50
  68. package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +0 -74
  69. package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +0 -204
  70. package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +0 -15
  71. package/esm2022/lib/metadata/csdl/csdl-reference.mjs +0 -76
  72. package/esm2022/lib/metadata/csdl/csdl-schema.mjs +0 -87
  73. package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +0 -37
  74. package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +0 -145
  75. package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +0 -159
  76. package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +0 -46
  77. package/esm2022/lib/metadata/index.mjs +0 -3
  78. package/esm2022/lib/metadata/metadata.mjs +0 -41
  79. package/esm2022/lib/metadata/parser.mjs +0 -564
  80. package/esm2022/lib/models/collection.mjs +0 -816
  81. package/esm2022/lib/models/index.mjs +0 -4
  82. package/esm2022/lib/models/model.mjs +0 -577
  83. package/esm2022/lib/models/options.mjs +0 -1227
  84. package/esm2022/lib/module.mjs +0 -55
  85. package/esm2022/lib/options.mjs +0 -91
  86. package/esm2022/lib/resources/index.mjs +0 -7
  87. package/esm2022/lib/resources/options.mjs +0 -66
  88. package/esm2022/lib/resources/path/handlers.mjs +0 -81
  89. package/esm2022/lib/resources/path/index.mjs +0 -3
  90. package/esm2022/lib/resources/path/segments.mjs +0 -149
  91. package/esm2022/lib/resources/query/builder.mjs +0 -645
  92. package/esm2022/lib/resources/query/expressions/apply.mjs +0 -238
  93. package/esm2022/lib/resources/query/expressions/base.mjs +0 -26
  94. package/esm2022/lib/resources/query/expressions/compute.mjs +0 -55
  95. package/esm2022/lib/resources/query/expressions/count.mjs +0 -118
  96. package/esm2022/lib/resources/query/expressions/expand.mjs +0 -154
  97. package/esm2022/lib/resources/query/expressions/filter.mjs +0 -180
  98. package/esm2022/lib/resources/query/expressions/index.mjs +0 -10
  99. package/esm2022/lib/resources/query/expressions/orderby.mjs +0 -81
  100. package/esm2022/lib/resources/query/expressions/search.mjs +0 -144
  101. package/esm2022/lib/resources/query/expressions/select.mjs +0 -49
  102. package/esm2022/lib/resources/query/expressions/syntax.mjs +0 -770
  103. package/esm2022/lib/resources/query/handlers.mjs +0 -423
  104. package/esm2022/lib/resources/query/index.mjs +0 -5
  105. package/esm2022/lib/resources/query/options.mjs +0 -140
  106. package/esm2022/lib/resources/request.mjs +0 -210
  107. package/esm2022/lib/resources/resource.mjs +0 -316
  108. package/esm2022/lib/resources/response.mjs +0 -180
  109. package/esm2022/lib/resources/types/action.mjs +0 -118
  110. package/esm2022/lib/resources/types/batch.mjs +0 -428
  111. package/esm2022/lib/resources/types/count.mjs +0 -33
  112. package/esm2022/lib/resources/types/entity-set.mjs +0 -131
  113. package/esm2022/lib/resources/types/entity.mjs +0 -112
  114. package/esm2022/lib/resources/types/function.mjs +0 -149
  115. package/esm2022/lib/resources/types/index.mjs +0 -15
  116. package/esm2022/lib/resources/types/media.mjs +0 -44
  117. package/esm2022/lib/resources/types/metadata.mjs +0 -35
  118. package/esm2022/lib/resources/types/navigation-property.mjs +0 -246
  119. package/esm2022/lib/resources/types/options.mjs +0 -2
  120. package/esm2022/lib/resources/types/property.mjs +0 -187
  121. package/esm2022/lib/resources/types/reference.mjs +0 -87
  122. package/esm2022/lib/resources/types/singleton.mjs +0 -125
  123. package/esm2022/lib/resources/types/value.mjs +0 -48
  124. package/esm2022/lib/schema/annotation.mjs +0 -44
  125. package/esm2022/lib/schema/callable.mjs +0 -69
  126. package/esm2022/lib/schema/element.mjs +0 -70
  127. package/esm2022/lib/schema/entity-container.mjs +0 -13
  128. package/esm2022/lib/schema/entity-set.mjs +0 -11
  129. package/esm2022/lib/schema/enum-type.mjs +0 -69
  130. package/esm2022/lib/schema/index.mjs +0 -9
  131. package/esm2022/lib/schema/parsers/callable.mjs +0 -123
  132. package/esm2022/lib/schema/parsers/edm.mjs +0 -101
  133. package/esm2022/lib/schema/parsers/enum-type.mjs +0 -148
  134. package/esm2022/lib/schema/parsers/index.mjs +0 -5
  135. package/esm2022/lib/schema/parsers/structured-type.mjs +0 -548
  136. package/esm2022/lib/schema/schema.mjs +0 -52
  137. package/esm2022/lib/schema/singleton.mjs +0 -11
  138. package/esm2022/lib/schema/structured-type.mjs +0 -220
  139. package/esm2022/lib/services/base.mjs +0 -32
  140. package/esm2022/lib/services/entity-set.mjs +0 -161
  141. package/esm2022/lib/services/entity.mjs +0 -12
  142. package/esm2022/lib/services/factory.mjs +0 -39
  143. package/esm2022/lib/services/index.mjs +0 -5
  144. package/esm2022/lib/services/singleton.mjs +0 -55
  145. package/esm2022/lib/settings.mjs +0 -113
  146. package/esm2022/lib/types.mjs +0 -118
  147. package/esm2022/lib/utils/arraybuffers.mjs +0 -46
  148. package/esm2022/lib/utils/arrays.mjs +0 -10
  149. package/esm2022/lib/utils/dates.mjs +0 -18
  150. package/esm2022/lib/utils/durations.mjs +0 -40
  151. package/esm2022/lib/utils/enums.mjs +0 -61
  152. package/esm2022/lib/utils/http.mjs +0 -95
  153. package/esm2022/lib/utils/index.mjs +0 -10
  154. package/esm2022/lib/utils/objects.mjs +0 -204
  155. package/esm2022/lib/utils/odata.mjs +0 -22
  156. package/esm2022/lib/utils/strings.mjs +0 -20
  157. package/esm2022/lib/utils/types.mjs +0 -136
  158. package/esm2022/lib/utils/urls.mjs +0 -24
  159. package/esm2022/public-api.mjs +0 -5
@@ -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=
@@ -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