@ngrx/data 11.0.0-rc.0 → 11.1.1
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/bundles/ngrx-data.umd.js +902 -4475
- package/bundles/ngrx-data.umd.js.map +1 -1
- package/bundles/ngrx-data.umd.min.js +15 -1
- package/bundles/ngrx-data.umd.min.js.map +1 -1
- package/esm2015/index.js +2 -7
- package/esm2015/ngrx-data.js +2 -7
- package/esm2015/public_api.js +2 -7
- package/esm2015/src/actions/entity-action-factory.js +6 -31
- package/esm2015/src/actions/entity-action-guard.js +23 -130
- package/esm2015/src/actions/entity-action-operators.js +11 -64
- package/esm2015/src/actions/entity-action.js +2 -68
- package/esm2015/src/actions/entity-cache-action.js +14 -125
- package/esm2015/src/actions/entity-cache-change-set.js +15 -126
- package/esm2015/src/actions/entity-op.js +70 -89
- package/esm2015/src/actions/merge-strategy.js +8 -16
- package/esm2015/src/actions/update-response-data.js +2 -36
- package/esm2015/src/dataservices/data-service-error.js +1 -34
- package/esm2015/src/dataservices/default-data-service-config.js +1 -41
- package/esm2015/src/dataservices/default-data.service.js +5 -163
- package/esm2015/src/dataservices/entity-cache-data.service.js +17 -103
- package/esm2015/src/dataservices/entity-data.service.js +5 -31
- package/esm2015/src/dataservices/http-url-generator.js +11 -97
- package/esm2015/src/dataservices/interfaces.js +2 -71
- package/esm2015/src/dataservices/persistence-result-handler.service.js +7 -66
- package/esm2015/src/dispatchers/entity-cache-dispatcher.js +40 -97
- package/esm2015/src/dispatchers/entity-commands.js +2 -247
- package/esm2015/src/dispatchers/entity-dispatcher-base.js +65 -287
- package/esm2015/src/dispatchers/entity-dispatcher-default-options.js +6 -48
- package/esm2015/src/dispatchers/entity-dispatcher-factory.js +2 -64
- package/esm2015/src/dispatchers/entity-dispatcher.js +1 -74
- package/esm2015/src/effects/entity-cache-effects.js +21 -135
- package/esm2015/src/effects/entity-effects-scheduler.js +2 -10
- package/esm2015/src/effects/entity-effects.js +18 -128
- package/esm2015/src/entity-data-without-effects.module.js +7 -79
- package/esm2015/src/entity-data.module.js +3 -25
- package/esm2015/src/entity-metadata/entity-definition.js +2 -42
- package/esm2015/src/entity-metadata/entity-definition.service.js +14 -52
- package/esm2015/src/entity-metadata/entity-filters.js +5 -33
- package/esm2015/src/entity-metadata/entity-metadata.js +1 -34
- package/esm2015/src/entity-services/entity-collection-service-base.js +56 -208
- package/esm2015/src/entity-services/entity-collection-service-elements-factory.js +3 -60
- package/esm2015/src/entity-services/entity-collection-service-factory.js +5 -20
- package/esm2015/src/entity-services/entity-collection-service.js +2 -53
- package/esm2015/src/entity-services/entity-services-base.js +18 -78
- package/esm2015/src/entity-services/entity-services-elements.js +9 -44
- package/esm2015/src/entity-services/entity-services.js +1 -70
- package/esm2015/src/index.js +1 -6
- package/esm2015/src/reducers/constants.js +1 -11
- package/esm2015/src/reducers/entity-cache-reducer.js +33 -175
- package/esm2015/src/reducers/entity-cache.js +2 -10
- package/esm2015/src/reducers/entity-change-tracker-base.js +115 -262
- package/esm2015/src/reducers/entity-change-tracker.js +2 -179
- package/esm2015/src/reducers/entity-collection-creator.js +5 -29
- package/esm2015/src/reducers/entity-collection-reducer-methods.js +44 -503
- package/esm2015/src/reducers/entity-collection-reducer-registry.js +8 -50
- package/esm2015/src/reducers/entity-collection-reducer.js +5 -34
- package/esm2015/src/reducers/entity-collection.js +9 -65
- package/esm2015/src/selectors/entity-cache-selector.js +1 -12
- package/esm2015/src/selectors/entity-selectors$.js +11 -137
- package/esm2015/src/selectors/entity-selectors.js +23 -262
- package/esm2015/src/utils/correlation-id-generator.js +4 -30
- package/esm2015/src/utils/default-logger.js +1 -21
- package/esm2015/src/utils/default-pluralizer.js +3 -24
- package/esm2015/src/utils/guid-fns.js +9 -41
- package/esm2015/src/utils/interfaces.js +1 -49
- package/esm2015/src/utils/utilities.js +6 -25
- package/fesm2015/ngrx-data.js +721 -4410
- package/fesm2015/ngrx-data.js.map +1 -1
- package/package.json +5 -5
- package/schematics-core/index.js +4 -1
- package/schematics-core/index.js.map +1 -1
- package/schematics-core/utility/ast-utils.js +127 -1
- package/schematics-core/utility/ast-utils.js.map +1 -1
- package/schematics-core/utility/config.js +1 -1
- package/schematics-core/utility/config.js.map +1 -1
- package/schematics-core/utility/find-component.js +101 -0
- package/schematics-core/utility/find-component.js.map +1 -0
- package/schematics-core/utility/libs-version.js +1 -1
- package/schematics-core/utility/libs-version.js.map +1 -1
- package/schematics-core/utility/project.js +4 -2
- package/schematics-core/utility/project.js.map +1 -1
- package/CHANGELOG.md +0 -3
- package/esm2015/index.ngsummary.json +0 -1
- package/esm2015/ngrx-data.ngsummary.json +0 -1
- package/esm2015/public_api.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action-factory.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action-guard.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action-operators.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-cache-action.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-cache-change-set.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-op.ngsummary.json +0 -1
- package/esm2015/src/actions/merge-strategy.ngsummary.json +0 -1
- package/esm2015/src/actions/update-response-data.ngsummary.json +0 -1
- package/esm2015/src/dataservices/data-service-error.ngsummary.json +0 -1
- package/esm2015/src/dataservices/default-data-service-config.ngsummary.json +0 -1
- package/esm2015/src/dataservices/default-data.service.ngsummary.json +0 -1
- package/esm2015/src/dataservices/entity-cache-data.service.ngsummary.json +0 -1
- package/esm2015/src/dataservices/entity-data.service.ngsummary.json +0 -1
- package/esm2015/src/dataservices/http-url-generator.ngsummary.json +0 -1
- package/esm2015/src/dataservices/interfaces.ngsummary.json +0 -1
- package/esm2015/src/dataservices/persistence-result-handler.service.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-cache-dispatcher.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-commands.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher-base.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher-default-options.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher-factory.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher.ngsummary.json +0 -1
- package/esm2015/src/effects/entity-cache-effects.ngsummary.json +0 -1
- package/esm2015/src/effects/entity-effects-scheduler.ngsummary.json +0 -1
- package/esm2015/src/effects/entity-effects.ngsummary.json +0 -1
- package/esm2015/src/entity-data-without-effects.module.ngfactory.js +0 -36
- package/esm2015/src/entity-data-without-effects.module.ngsummary.json +0 -1
- package/esm2015/src/entity-data.module.ngfactory.js +0 -48
- package/esm2015/src/entity-data.module.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-definition.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-definition.service.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-filters.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-metadata.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service-base.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service-elements-factory.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service-factory.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-services-base.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-services-elements.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-services.ngsummary.json +0 -1
- package/esm2015/src/index.ngsummary.json +0 -1
- package/esm2015/src/reducers/constants.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-cache-reducer.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-cache.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-change-tracker-base.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-change-tracker.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-creator.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-reducer-methods.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-reducer-registry.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-reducer.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection.ngsummary.json +0 -1
- package/esm2015/src/selectors/entity-cache-selector.ngsummary.json +0 -1
- package/esm2015/src/selectors/entity-selectors$.ngsummary.json +0 -1
- package/esm2015/src/selectors/entity-selectors.ngsummary.json +0 -1
- package/esm2015/src/utils/correlation-id-generator.ngsummary.json +0 -1
- package/esm2015/src/utils/default-logger.ngsummary.json +0 -1
- package/esm2015/src/utils/default-pluralizer.ngsummary.json +0 -1
- package/esm2015/src/utils/guid-fns.ngsummary.json +0 -1
- package/esm2015/src/utils/interfaces.ngsummary.json +0 -1
- package/esm2015/src/utils/utilities.ngsummary.json +0 -1
- package/schematics/ng-add/files/entity-metadata.ts.template +0 -10
- package/src/entity-data-without-effects.module.ngfactory.d.ts +0 -3
- package/src/entity-data.module.ngfactory.d.ts +0 -3
|
@@ -1,148 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/selectors/entity-selectors.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
import { Inject, Injectable, Optional } from '@angular/core';
|
|
7
2
|
import { createSelector } from '@ngrx/store';
|
|
8
3
|
import { ENTITY_CACHE_SELECTOR_TOKEN, createEntityCacheSelector, } from './entity-cache-selector';
|
|
9
4
|
import { ENTITY_CACHE_NAME } from '../reducers/constants';
|
|
10
5
|
import { EntityCollectionCreator } from '../reducers/entity-collection-creator';
|
|
11
|
-
/**
|
|
12
|
-
* The selector functions for entity collection members,
|
|
13
|
-
* Selects from the entity collection to the collection member
|
|
14
|
-
* Contrast with {EntitySelectors}.
|
|
15
|
-
* @record
|
|
16
|
-
* @template T
|
|
17
|
-
*/
|
|
18
|
-
export function CollectionSelectors() { }
|
|
19
|
-
if (false) {
|
|
20
|
-
/**
|
|
21
|
-
* Count of entities in the cached collection.
|
|
22
|
-
* @type {?}
|
|
23
|
-
*/
|
|
24
|
-
CollectionSelectors.prototype.selectCount;
|
|
25
|
-
/**
|
|
26
|
-
* All entities in the cached collection.
|
|
27
|
-
* @type {?}
|
|
28
|
-
*/
|
|
29
|
-
CollectionSelectors.prototype.selectEntities;
|
|
30
|
-
/**
|
|
31
|
-
* Map of entity keys to entities
|
|
32
|
-
* @type {?}
|
|
33
|
-
*/
|
|
34
|
-
CollectionSelectors.prototype.selectEntityMap;
|
|
35
|
-
/**
|
|
36
|
-
* Filter pattern applied by the entity collection's filter function
|
|
37
|
-
* @type {?}
|
|
38
|
-
*/
|
|
39
|
-
CollectionSelectors.prototype.selectFilter;
|
|
40
|
-
/**
|
|
41
|
-
* Entities in the cached collection that pass the filter function
|
|
42
|
-
* @type {?}
|
|
43
|
-
*/
|
|
44
|
-
CollectionSelectors.prototype.selectFilteredEntities;
|
|
45
|
-
/**
|
|
46
|
-
* Keys of the cached collection, in the collection's native sort order
|
|
47
|
-
* @type {?}
|
|
48
|
-
*/
|
|
49
|
-
CollectionSelectors.prototype.selectKeys;
|
|
50
|
-
/**
|
|
51
|
-
* True when the collection has been fully loaded.
|
|
52
|
-
* @type {?}
|
|
53
|
-
*/
|
|
54
|
-
CollectionSelectors.prototype.selectLoaded;
|
|
55
|
-
/**
|
|
56
|
-
* True when a multi-entity query command is in progress.
|
|
57
|
-
* @type {?}
|
|
58
|
-
*/
|
|
59
|
-
CollectionSelectors.prototype.selectLoading;
|
|
60
|
-
/**
|
|
61
|
-
* ChangeState (including original values) of entities with unsaved changes
|
|
62
|
-
* @type {?}
|
|
63
|
-
*/
|
|
64
|
-
CollectionSelectors.prototype.selectChangeState;
|
|
65
|
-
/* Skipping unhandled member: readonly [selector: string]: any;*/
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* The selector functions for entity collection members,
|
|
69
|
-
* Selects from store root, through EntityCache, to the entity collection member
|
|
70
|
-
* Contrast with {CollectionSelectors}.
|
|
71
|
-
* @record
|
|
72
|
-
* @template T
|
|
73
|
-
*/
|
|
74
|
-
export function EntitySelectors() { }
|
|
75
|
-
if (false) {
|
|
76
|
-
/**
|
|
77
|
-
* Name of the entity collection for these selectors
|
|
78
|
-
* @type {?}
|
|
79
|
-
*/
|
|
80
|
-
EntitySelectors.prototype.entityName;
|
|
81
|
-
/**
|
|
82
|
-
* The cached EntityCollection itself
|
|
83
|
-
* @type {?}
|
|
84
|
-
*/
|
|
85
|
-
EntitySelectors.prototype.selectCollection;
|
|
86
|
-
/**
|
|
87
|
-
* Count of entities in the cached collection.
|
|
88
|
-
* @type {?}
|
|
89
|
-
*/
|
|
90
|
-
EntitySelectors.prototype.selectCount;
|
|
91
|
-
/**
|
|
92
|
-
* All entities in the cached collection.
|
|
93
|
-
* @type {?}
|
|
94
|
-
*/
|
|
95
|
-
EntitySelectors.prototype.selectEntities;
|
|
96
|
-
/**
|
|
97
|
-
* The EntityCache
|
|
98
|
-
* @type {?}
|
|
99
|
-
*/
|
|
100
|
-
EntitySelectors.prototype.selectEntityCache;
|
|
101
|
-
/**
|
|
102
|
-
* Map of entity keys to entities
|
|
103
|
-
* @type {?}
|
|
104
|
-
*/
|
|
105
|
-
EntitySelectors.prototype.selectEntityMap;
|
|
106
|
-
/**
|
|
107
|
-
* Filter pattern applied by the entity collection's filter function
|
|
108
|
-
* @type {?}
|
|
109
|
-
*/
|
|
110
|
-
EntitySelectors.prototype.selectFilter;
|
|
111
|
-
/**
|
|
112
|
-
* Entities in the cached collection that pass the filter function
|
|
113
|
-
* @type {?}
|
|
114
|
-
*/
|
|
115
|
-
EntitySelectors.prototype.selectFilteredEntities;
|
|
116
|
-
/**
|
|
117
|
-
* Keys of the cached collection, in the collection's native sort order
|
|
118
|
-
* @type {?}
|
|
119
|
-
*/
|
|
120
|
-
EntitySelectors.prototype.selectKeys;
|
|
121
|
-
/**
|
|
122
|
-
* True when the collection has been fully loaded.
|
|
123
|
-
* @type {?}
|
|
124
|
-
*/
|
|
125
|
-
EntitySelectors.prototype.selectLoaded;
|
|
126
|
-
/**
|
|
127
|
-
* True when a multi-entity query command is in progress.
|
|
128
|
-
* @type {?}
|
|
129
|
-
*/
|
|
130
|
-
EntitySelectors.prototype.selectLoading;
|
|
131
|
-
/**
|
|
132
|
-
* ChangeState (including original values) of entities with unsaved changes
|
|
133
|
-
* @type {?}
|
|
134
|
-
*/
|
|
135
|
-
EntitySelectors.prototype.selectChangeState;
|
|
136
|
-
/* Skipping unhandled member: readonly [name: string]: MemoizedSelector<EntityCollection<T>, any> | string;*/
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Creates EntitySelector functions for entity collections.
|
|
140
|
-
*/
|
|
6
|
+
/** Creates EntitySelector functions for entity collections. */
|
|
141
7
|
export class EntitySelectorsFactory {
|
|
142
|
-
/**
|
|
143
|
-
* @param {?=} entityCollectionCreator
|
|
144
|
-
* @param {?=} selectEntityCache
|
|
145
|
-
*/
|
|
146
8
|
constructor(entityCollectionCreator, selectEntityCache) {
|
|
147
9
|
this.entityCollectionCreator =
|
|
148
10
|
entityCollectionCreator || new EntityCollectionCreator();
|
|
@@ -152,114 +14,39 @@ export class EntitySelectorsFactory {
|
|
|
152
14
|
/**
|
|
153
15
|
* Create the NgRx selector from the store root to the named collection,
|
|
154
16
|
* e.g. from Object to Heroes.
|
|
155
|
-
* @
|
|
156
|
-
* @param {?} entityName the name of the collection
|
|
157
|
-
* @return {?}
|
|
17
|
+
* @param entityName the name of the collection
|
|
158
18
|
*/
|
|
159
19
|
createCollectionSelector(entityName) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
* @param {?=} cache
|
|
163
|
-
* @return {?}
|
|
164
|
-
*/
|
|
165
|
-
(cache = {}) => (/** @type {?} */ (((cache[entityName] ||
|
|
166
|
-
this.entityCollectionCreator.create(entityName))))));
|
|
20
|
+
const getCollection = (cache = {}) => ((cache[entityName] ||
|
|
21
|
+
this.entityCollectionCreator.create(entityName)));
|
|
167
22
|
return createSelector(this.selectEntityCache, getCollection);
|
|
168
23
|
}
|
|
169
24
|
// createCollectionSelectors implementation
|
|
170
|
-
/**
|
|
171
|
-
* @template T, S
|
|
172
|
-
* @param {?} metadataOrName
|
|
173
|
-
* @return {?}
|
|
174
|
-
*/
|
|
175
25
|
createCollectionSelectors(metadataOrName) {
|
|
176
|
-
/** @type {?} */
|
|
177
26
|
const metadata = typeof metadataOrName === 'string'
|
|
178
27
|
? { entityName: metadataOrName }
|
|
179
28
|
: metadataOrName;
|
|
180
|
-
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
*/
|
|
185
|
-
(c) => c.ids);
|
|
186
|
-
/** @type {?} */
|
|
187
|
-
const selectEntityMap = (/**
|
|
188
|
-
* @param {?} c
|
|
189
|
-
* @return {?}
|
|
190
|
-
*/
|
|
191
|
-
(c) => c.entities);
|
|
192
|
-
/** @type {?} */
|
|
193
|
-
const selectEntities = createSelector(selectKeys, selectEntityMap, (/**
|
|
194
|
-
* @param {?} keys
|
|
195
|
-
* @param {?} entities
|
|
196
|
-
* @return {?}
|
|
197
|
-
*/
|
|
198
|
-
(keys, entities) => keys.map((/**
|
|
199
|
-
* @param {?} key
|
|
200
|
-
* @return {?}
|
|
201
|
-
*/
|
|
202
|
-
(key) => (/** @type {?} */ (entities[key]))))));
|
|
203
|
-
/** @type {?} */
|
|
204
|
-
const selectCount = createSelector(selectKeys, (/**
|
|
205
|
-
* @param {?} keys
|
|
206
|
-
* @return {?}
|
|
207
|
-
*/
|
|
208
|
-
(keys) => keys.length));
|
|
29
|
+
const selectKeys = (c) => c.ids;
|
|
30
|
+
const selectEntityMap = (c) => c.entities;
|
|
31
|
+
const selectEntities = createSelector(selectKeys, selectEntityMap, (keys, entities) => keys.map((key) => entities[key]));
|
|
32
|
+
const selectCount = createSelector(selectKeys, (keys) => keys.length);
|
|
209
33
|
// EntityCollection selectors that go beyond the ngrx/entity/EntityState selectors
|
|
210
|
-
|
|
211
|
-
const selectFilter = (/**
|
|
212
|
-
* @param {?} c
|
|
213
|
-
* @return {?}
|
|
214
|
-
*/
|
|
215
|
-
(c) => c.filter);
|
|
216
|
-
/** @type {?} */
|
|
34
|
+
const selectFilter = (c) => c.filter;
|
|
217
35
|
const filterFn = metadata.filterFn;
|
|
218
|
-
/** @type {?} */
|
|
219
36
|
const selectFilteredEntities = filterFn
|
|
220
|
-
? createSelector(selectEntities, selectFilter, (
|
|
221
|
-
* @param {?} entities
|
|
222
|
-
* @param {?} pattern
|
|
223
|
-
* @return {?}
|
|
224
|
-
*/
|
|
225
|
-
(entities, pattern) => filterFn(entities, pattern)))
|
|
37
|
+
? createSelector(selectEntities, selectFilter, (entities, pattern) => filterFn(entities, pattern))
|
|
226
38
|
: selectEntities;
|
|
227
|
-
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
* @return {?}
|
|
231
|
-
*/
|
|
232
|
-
(c) => c.loaded);
|
|
233
|
-
/** @type {?} */
|
|
234
|
-
const selectLoading = (/**
|
|
235
|
-
* @param {?} c
|
|
236
|
-
* @return {?}
|
|
237
|
-
*/
|
|
238
|
-
(c) => c.loading);
|
|
239
|
-
/** @type {?} */
|
|
240
|
-
const selectChangeState = (/**
|
|
241
|
-
* @param {?} c
|
|
242
|
-
* @return {?}
|
|
243
|
-
*/
|
|
244
|
-
(c) => c.changeState);
|
|
39
|
+
const selectLoaded = (c) => c.loaded;
|
|
40
|
+
const selectLoading = (c) => c.loading;
|
|
41
|
+
const selectChangeState = (c) => c.changeState;
|
|
245
42
|
// Create collection selectors for each `additionalCollectionState` property.
|
|
246
43
|
// These all extend from `selectCollection`
|
|
247
|
-
/** @type {?} */
|
|
248
44
|
const extra = metadata.additionalCollectionState || {};
|
|
249
|
-
/** @type {?} */
|
|
250
45
|
const extraSelectors = {};
|
|
251
|
-
Object.keys(extra).forEach((
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
(k) => {
|
|
256
|
-
extraSelectors['select' + k[0].toUpperCase() + k.slice(1)] = (/**
|
|
257
|
-
* @param {?} c
|
|
258
|
-
* @return {?}
|
|
259
|
-
*/
|
|
260
|
-
(c) => ((/** @type {?} */ (c)))[k]);
|
|
261
|
-
}));
|
|
262
|
-
return (/** @type {?} */ (Object.assign({ selectCount,
|
|
46
|
+
Object.keys(extra).forEach((k) => {
|
|
47
|
+
extraSelectors['select' + k[0].toUpperCase() + k.slice(1)] = (c) => c[k];
|
|
48
|
+
});
|
|
49
|
+
return Object.assign({ selectCount,
|
|
263
50
|
selectEntities,
|
|
264
51
|
selectEntityMap,
|
|
265
52
|
selectFilter,
|
|
@@ -267,36 +54,22 @@ export class EntitySelectorsFactory {
|
|
|
267
54
|
selectKeys,
|
|
268
55
|
selectLoaded,
|
|
269
56
|
selectLoading,
|
|
270
|
-
selectChangeState }, extraSelectors)
|
|
57
|
+
selectChangeState }, extraSelectors);
|
|
271
58
|
}
|
|
272
59
|
// createCollectionSelectors implementation
|
|
273
|
-
/**
|
|
274
|
-
* @template T, S
|
|
275
|
-
* @param {?} metadataOrName
|
|
276
|
-
* @return {?}
|
|
277
|
-
*/
|
|
278
60
|
create(metadataOrName) {
|
|
279
|
-
/** @type {?} */
|
|
280
61
|
const metadata = typeof metadataOrName === 'string'
|
|
281
62
|
? { entityName: metadataOrName }
|
|
282
63
|
: metadataOrName;
|
|
283
|
-
/** @type {?} */
|
|
284
64
|
const entityName = metadata.entityName;
|
|
285
|
-
/** @type {?} */
|
|
286
65
|
const selectCollection = this.createCollectionSelector(entityName);
|
|
287
|
-
/** @type {?} */
|
|
288
66
|
const collectionSelectors = this.createCollectionSelectors(metadata);
|
|
289
|
-
/** @type {?} */
|
|
290
67
|
const entitySelectors = {};
|
|
291
|
-
Object.keys(collectionSelectors).forEach((
|
|
292
|
-
* @param {?} k
|
|
293
|
-
* @return {?}
|
|
294
|
-
*/
|
|
295
|
-
(k) => {
|
|
68
|
+
Object.keys(collectionSelectors).forEach((k) => {
|
|
296
69
|
entitySelectors[k] = createSelector(selectCollection, collectionSelectors[k]);
|
|
297
|
-
})
|
|
298
|
-
return
|
|
299
|
-
selectCollection, selectEntityCache: this.selectEntityCache }, entitySelectors)
|
|
70
|
+
});
|
|
71
|
+
return Object.assign({ entityName,
|
|
72
|
+
selectCollection, selectEntityCache: this.selectEntityCache }, entitySelectors);
|
|
300
73
|
}
|
|
301
74
|
}
|
|
302
75
|
EntitySelectorsFactory.decorators = [
|
|
@@ -307,16 +80,4 @@ EntitySelectorsFactory.ctorParameters = () => [
|
|
|
307
80
|
{ type: EntityCollectionCreator, decorators: [{ type: Optional }] },
|
|
308
81
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [ENTITY_CACHE_SELECTOR_TOKEN,] }] }
|
|
309
82
|
];
|
|
310
|
-
if (false) {
|
|
311
|
-
/**
|
|
312
|
-
* @type {?}
|
|
313
|
-
* @private
|
|
314
|
-
*/
|
|
315
|
-
EntitySelectorsFactory.prototype.entityCollectionCreator;
|
|
316
|
-
/**
|
|
317
|
-
* @type {?}
|
|
318
|
-
* @private
|
|
319
|
-
*/
|
|
320
|
-
EntitySelectorsFactory.prototype.selectEntityCache;
|
|
321
|
-
}
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGEvIiwic291cmNlcyI6WyJzcmMvc2VsZWN0b3JzL2VudGl0eS1zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJN0QsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGFBQWEsQ0FBQztBQUl2RCxPQUFPLEVBQ0wsMkJBQTJCLEVBRTNCLHlCQUF5QixHQUMxQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7OztBQVFoRix5Q0E2QkM7Ozs7OztJQXpCQywwQ0FBNEQ7Ozs7O0lBRzVELDZDQUE0RDs7Ozs7SUFHNUQsOENBQXVFOzs7OztJQUd2RSwyQ0FBNkQ7Ozs7O0lBRzdELHFEQUFvRTs7Ozs7SUFHcEUseUNBQXdFOzs7OztJQUd4RSwyQ0FBOEQ7Ozs7O0lBRzlELDRDQUErRDs7Ozs7SUFHL0QsZ0RBQTZFOzs7Ozs7Ozs7O0FBUS9FLHFDQXNDQzs7Ozs7O0lBcENDLHFDQUE0Qjs7Ozs7SUFLNUIsMkNBQXlFOzs7OztJQUd6RSxzQ0FBdUQ7Ozs7O0lBR3ZELHlDQUF1RDs7Ozs7SUFHdkQsNENBQWtFOzs7OztJQUdsRSwwQ0FBa0U7Ozs7O0lBR2xFLHVDQUF3RDs7Ozs7SUFHeEQsaURBQStEOzs7OztJQUcvRCxxQ0FBbUU7Ozs7O0lBR25FLHVDQUF5RDs7Ozs7SUFHekQsd0NBQTBEOzs7OztJQUcxRCw0Q0FBd0U7Ozs7OztBQUsxRSxNQUFNLE9BQU8sc0JBQXNCOzs7OztJQUlqQyxZQUNjLHVCQUFpRCxFQUc3RCxpQkFBdUM7UUFFdkMsSUFBSSxDQUFDLHVCQUF1QjtZQUMx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QUNaLGFBQWE7WUFDYixpQkFBaUIsSUFDZCxjQUFjLEdBQ2IsQ0FBQztJQUNULENBQUM7Ozs7Ozs7SUFzQ0QsTUFBTSxDQUNKLGNBQTBDOztjQUVwQyxRQUFRLEdBQ1osT0FBTyxjQUFjLEtBQUssUUFBUTtZQUNoQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFO1lBQ2hDLENBQUMsQ0FBQyxjQUFjOztjQUNkLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVTs7Y0FDaEMsZ0JBQWdCLEdBR2xCLElBQUksQ0FBQyx3QkFBd0IsQ0FBSSxVQUFVLENBQUM7O2NBQzFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBSSxRQUFRLENBQUM7O2NBRWpFLGVBQWUsR0FFakIsRUFBRTtRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3QyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUNqQyxnQkFBZ0IsRUFDaEIsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQ3ZCLENBQUM7UUFDSixDQUFDLEVBQUMsQ0FBQztRQUVILE9BQU8sbUNBQ0wsVUFBVTtZQUNWLGdCQUFnQixFQUNoQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQ3RDLGVBQWUsR0FDZCxDQUFDO0lBQ1QsQ0FBQzs7O1lBck1GLFVBQVU7Ozs7WUFyRkYsdUJBQXVCLHVCQTJGM0IsUUFBUTs0Q0FDUixRQUFRLFlBQ1IsTUFBTSxTQUFDLDJCQUEyQjs7Ozs7OztJQU5yQyx5REFBeUQ7Ozs7O0lBQ3pELG1EQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gUHJvZCBidWlsZCByZXF1aXJlcyBgTWVtb2l6ZWRTZWxlY3RvciBldmVuIHRob3VnaCBub3QgdXNlZC5cbmltcG9ydCB7IE1lbW9pemVkU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciwgU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnQG5ncngvZW50aXR5JztcblxuaW1wb3J0IHsgRW50aXR5Q2FjaGUgfSBmcm9tICcuLi9yZWR1Y2Vycy9lbnRpdHktY2FjaGUnO1xuaW1wb3J0IHtcbiAgRU5USVRZX0NBQ0hFX1NFTEVDVE9SX1RPS0VOLFxuICBFbnRpdHlDYWNoZVNlbGVjdG9yLFxuICBjcmVhdGVFbnRpdHlDYWNoZVNlbGVjdG9yLFxufSBmcm9tICcuL2VudGl0eS1jYWNoZS1zZWxlY3Rvcic7XG5pbXBvcnQgeyBFTlRJVFlfQ0FDSEVfTkFNRSB9IGZyb20gJy4uL3JlZHVjZXJzL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBFbnRpdHlDb2xsZWN0aW9uLFxuICBDaGFuZ2VTdGF0ZU1hcCxcbn0gZnJvbSAnLi4vcmVkdWNlcnMvZW50aXR5LWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRW50aXR5Q29sbGVjdGlvbkNyZWF0b3IgfSBmcm9tICcuLi9yZWR1Y2Vycy9lbnRpdHktY29sbGVjdGlvbi1jcmVhdG9yJztcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSAnLi4vZW50aXR5LW1ldGFkYXRhL2VudGl0eS1tZXRhZGF0YSc7XG5cbi8qKlxuICogVGhlIHNlbGVjdG9yIGZ1bmN0aW9ucyBmb3IgZW50aXR5IGNvbGxlY3Rpb24gbWVtYmVycyxcbiAqIFNlbGVjdHMgZnJvbSB0aGUgZW50aXR5IGNvbGxlY3Rpb24gdG8gdGhlIGNvbGxlY3Rpb24gbWVtYmVyXG4gKiBDb250cmFzdCB3aXRoIHtFbnRpdHlTZWxlY3RvcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25TZWxlY3RvcnM8VD4ge1xuICByZWFkb25seSBbc2VsZWN0b3I6IHN0cmluZ106IGFueTtcblxuICAvKiogQ291bnQgb2YgZW50aXRpZXMgaW4gdGhlIGNhY2hlZCBjb2xsZWN0aW9uLiAqL1xuICByZWFkb25seSBzZWxlY3RDb3VudDogU2VsZWN0b3I8RW50aXR5Q29sbGVjdGlvbjxUPiwgbnVtYmVyPjtcblxuICAvKiogQWxsIGVudGl0aWVzIGluIHRoZSBjYWNoZWQgY29sbGVjdGlvbi4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0RW50aXRpZXM6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIFRbXT47XG5cbiAgLyoqIE1hcCBvZiBlbnRpdHkga2V5cyB0byBlbnRpdGllcyAqL1xuICByZWFkb25seSBzZWxlY3RFbnRpdHlNYXA6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIERpY3Rpb25hcnk8VD4+O1xuXG4gIC8qKiBGaWx0ZXIgcGF0dGVybiBhcHBsaWVkIGJ5IHRoZSBlbnRpdHkgY29sbGVjdGlvbidzIGZpbHRlciBmdW5jdGlvbiAqL1xuICByZWFkb25seSBzZWxlY3RGaWx0ZXI6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIHN0cmluZz47XG5cbiAgLyoqIEVudGl0aWVzIGluIHRoZSBjYWNoZWQgY29sbGVjdGlvbiB0aGF0IHBhc3MgdGhlIGZpbHRlciBmdW5jdGlvbiAqL1xuICByZWFkb25seSBzZWxlY3RGaWx0ZXJlZEVudGl0aWVzOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBUW10+O1xuXG4gIC8qKiBLZXlzIG9mIHRoZSBjYWNoZWQgY29sbGVjdGlvbiwgaW4gdGhlIGNvbGxlY3Rpb24ncyBuYXRpdmUgc29ydCBvcmRlciAqL1xuICByZWFkb25seSBzZWxlY3RLZXlzOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBzdHJpbmdbXSB8IG51bWJlcltdPjtcblxuICAvKiogVHJ1ZSB3aGVuIHRoZSBjb2xsZWN0aW9uIGhhcyBiZWVuIGZ1bGx5IGxvYWRlZC4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0TG9hZGVkOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBib29sZWFuPjtcblxuICAvKiogVHJ1ZSB3aGVuIGEgbXVsdGktZW50aXR5IHF1ZXJ5IGNvbW1hbmQgaXMgaW4gcHJvZ3Jlc3MuICovXG4gIHJlYWRvbmx5IHNlbGVjdExvYWRpbmc6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIGJvb2xlYW4+O1xuXG4gIC8qKiBDaGFuZ2VTdGF0ZSAoaW5jbHVkaW5nIG9yaWdpbmFsIHZhbHVlcykgb2YgZW50aXRpZXMgd2l0aCB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgcmVhZG9ubHkgc2VsZWN0Q2hhbmdlU3RhdGU6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIENoYW5nZVN0YXRlTWFwPFQ+Pjtcbn1cblxuLyoqXG4gKiBUaGUgc2VsZWN0b3IgZnVuY3Rpb25zIGZvciBlbnRpdHkgY29sbGVjdGlvbiBtZW1iZXJzLFxuICogU2VsZWN0cyBmcm9tIHN0b3JlIHJvb3QsIHRocm91Z2ggRW50aXR5Q2FjaGUsIHRvIHRoZSBlbnRpdHkgY29sbGVjdGlvbiBtZW1iZXJcbiAqIENvbnRyYXN0IHdpdGgge0NvbGxlY3Rpb25TZWxlY3RvcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdG9yczxUPiB7XG4gIC8qKiBOYW1lIG9mIHRoZSBlbnRpdHkgY29sbGVjdGlvbiBmb3IgdGhlc2Ugc2VsZWN0b3JzICovXG4gIHJlYWRvbmx5IGVudGl0eU5hbWU6IHN0cmluZztcblxuICByZWFkb25seSBbbmFtZTogc3RyaW5nXTogTWVtb2l6ZWRTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBhbnk+IHwgc3RyaW5nO1xuXG4gIC8qKiBUaGUgY2FjaGVkIEVudGl0eUNvbGxlY3Rpb24gaXRzZWxmICovXG4gIHJlYWRvbmx5IHNlbGVjdENvbGxlY3Rpb246IE1lbW9pemVkU2VsZWN0b3I8T2JqZWN0LCBFbnRpdHlDb2xsZWN0aW9uPFQ+PjtcblxuICAvKiogQ291bnQgb2YgZW50aXRpZXMgaW4gdGhlIGNhY2hlZCBjb2xsZWN0aW9uLiAqL1xuICByZWFkb25seSBzZWxlY3RDb3VudDogTWVtb2l6ZWRTZWxlY3RvcjxPYmplY3QsIG51bWJlcj47XG5cbiAgLyoqIEFsbCBlbnRpdGllcyBpbiB0aGUgY2FjaGVkIGNvbGxlY3Rpb24uICovXG4gIHJlYWRvbmx5IHNlbGVjdEVudGl0aWVzOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgVFtdPjtcblxuICAvKiogVGhlIEVudGl0eUNhY2hlICovXG4gIHJlYWRvbmx5IHNlbGVjdEVudGl0eUNhY2hlOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgRW50aXR5Q2FjaGU+O1xuXG4gIC8qKiBNYXAgb2YgZW50aXR5IGtleXMgdG8gZW50aXRpZXMgKi9cbiAgcmVhZG9ubHkgc2VsZWN0RW50aXR5TWFwOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgRGljdGlvbmFyeTxUPj47XG5cbiAgLyoqIEZpbHRlciBwYXR0ZXJuIGFwcGxpZWQgYnkgdGhlIGVudGl0eSBjb2xsZWN0aW9uJ3MgZmlsdGVyIGZ1bmN0aW9uICovXG4gIHJlYWRvbmx5IHNlbGVjdEZpbHRlcjogTWVtb2l6ZWRTZWxlY3RvcjxPYmplY3QsIHN0cmluZz47XG5cbiAgLyoqIEVudGl0aWVzIGluIHRoZSBjYWNoZWQgY29sbGVjdGlvbiB0aGF0IHBhc3MgdGhlIGZpbHRlciBmdW5jdGlvbiAqL1xuICByZWFkb25seSBzZWxlY3RGaWx0ZXJlZEVudGl0aWVzOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgVFtdPjtcblxuICAvKiogS2V5cyBvZiB0aGUgY2FjaGVkIGNvbGxlY3Rpb24sIGluIHRoZSBjb2xsZWN0aW9uJ3MgbmF0aXZlIHNvcnQgb3JkZXIgKi9cbiAgcmVhZG9ubHkgc2VsZWN0S2V5czogTWVtb2l6ZWRTZWxlY3RvcjxPYmplY3QsIHN0cmluZ1tdIHwgbnVtYmVyW10+O1xuXG4gIC8qKiBUcnVlIHdoZW4gdGhlIGNvbGxlY3Rpb24gaGFzIGJlZW4gZnVsbHkgbG9hZGVkLiAqL1xuICByZWFkb25seSBzZWxlY3RMb2FkZWQ6IE1lbW9pemVkU2VsZWN0b3I8T2JqZWN0LCBib29sZWFuPjtcblxuICAvKiogVHJ1ZSB3aGVuIGEgbXVsdGktZW50aXR5IHF1ZXJ5IGNvbW1hbmQgaXMgaW4gcHJvZ3Jlc3MuICovXG4gIHJlYWRvbmx5IHNlbGVjdExvYWRpbmc6IE1lbW9pemVkU2VsZWN0b3I8T2JqZWN0LCBib29sZWFuPjtcblxuICAvKiogQ2hhbmdlU3RhdGUgKGluY2x1ZGluZyBvcmlnaW5hbCB2YWx1ZXMpIG9mIGVudGl0aWVzIHdpdGggdW5zYXZlZCBjaGFuZ2VzICovXG4gIHJlYWRvbmx5IHNlbGVjdENoYW5nZVN0YXRlOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgQ2hhbmdlU3RhdGVNYXA8VD4+O1xufVxuXG4vKiogQ3JlYXRlcyBFbnRpdHlTZWxlY3RvciBmdW5jdGlvbnMgZm9yIGVudGl0eSBjb2xsZWN0aW9ucy4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbnRpdHlTZWxlY3RvcnNGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlDb2xsZWN0aW9uQ3JlYXRvcjogRW50aXR5Q29sbGVjdGlvbkNyZWF0b3I7XG4gIHByaXZhdGUgc2VsZWN0RW50aXR5Q2FjaGU6IEVudGl0eUNhY2hlU2VsZWN0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgZW50aXR5Q29sbGVjdGlvbkNyZWF0b3I/OiBFbnRpdHlDb2xsZWN0aW9uQ3JlYXRvcixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRU5USVRZX0NBQ0hFX1NFTEVDVE9SX1RPS0VOKVxuICAgIHNlbGVjdEVudGl0eUNhY2hlPzogRW50aXR5Q2FjaGVTZWxlY3RvclxuICApIHtcbiAgICB0aGlzLmVudGl0eUNvbGxlY3Rpb25DcmVhdG9yID1cbiAgICAgIGVudGl0eUNvbGxlY3Rpb25DcmVhdG9yIHx8IG5ldyBFbnRpdHlDb2xsZWN0aW9uQ3JlYXRvcigpO1xuICAgIHRoaXMuc2VsZWN0RW50aXR5Q2FjaGUgPVxuICAgICAgc2VsZWN0RW50aXR5Q2FjaGUgfHwgY3JlYXRlRW50aXR5Q2FjaGVTZWxlY3RvcihFTlRJVFlfQ0FDSEVfTkFNRSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBOZ1J4IHNlbGVjdG9yIGZyb20gdGhlIHN0b3JlIHJvb3QgdG8gdGhlIG5hbWVkIGNvbGxlY3Rpb24sXG4gICAqIGUuZy4gZnJvbSBPYmplY3QgdG8gSGVyb2VzLlxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9yPFxuICAgIFQgPSBhbnksXG4gICAgQyBleHRlbmRzIEVudGl0eUNvbGxlY3Rpb248VD4gPSBFbnRpdHlDb2xsZWN0aW9uPFQ+XG4gID4oZW50aXR5TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZ2V0Q29sbGVjdGlvbiA9IChjYWNoZTogRW50aXR5Q2FjaGUgPSB7fSkgPT5cbiAgICAgIDxDPihcbiAgICAgICAgKGNhY2hlW2VudGl0eU5hbWVdIHx8XG4gICAgICAgICAgdGhpcy5lbnRpdHlDb2xsZWN0aW9uQ3JlYXRvci5jcmVhdGU8VD4oZW50aXR5TmFtZSkpXG4gICAgICApO1xuICAgIHJldHVybiBjcmVhdGVTZWxlY3Rvcih0aGlzLnNlbGVjdEVudGl0eUNhY2hlLCBnZXRDb2xsZWN0aW9uKTtcbiAgfVxuXG4gIC8vLy8vLy8gY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9ycyAvLy8vLy8vLy8vXG5cbiAgLy8gQmFzZWQgb24gQG5ncngvZW50aXR5L3N0YXRlX3NlbGVjdG9ycy50c1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAvLyBjcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3JzKG1ldGFkYXRhKSBvdmVybG9hZFxuICAvKipcbiAgICogQ3JlYXRlcyBlbnRpdHkgY29sbGVjdGlvbiBzZWxlY3RvcnMgZnJvbSBtZXRhZGF0YS5cbiAgICogQHBhcmFtIG1ldGFkYXRhIC0gRW50aXR5TWV0YWRhdGEgZm9yIHRoZSBjb2xsZWN0aW9uLlxuICAgKiBNYXkgYmUgcGFydGlhbCBidXQgbXVjaCBoYXZlIGBlbnRpdHlOYW1lYC5cbiAgICovXG4gIGNyZWF0ZUNvbGxlY3Rpb25TZWxlY3RvcnM8XG4gICAgVCxcbiAgICBTIGV4dGVuZHMgQ29sbGVjdGlvblNlbGVjdG9yczxUPiA9IENvbGxlY3Rpb25TZWxlY3RvcnM8VD5cbiAgPihtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VD4pOiBTO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAvLyBjcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3JzKGVudGl0eU5hbWUpIG92ZXJsb2FkXG4gIC8qKlxuICAgKiBDcmVhdGVzIGRlZmF1bHQgZW50aXR5IGNvbGxlY3Rpb24gc2VsZWN0b3JzIGZvciBhbiBlbnRpdHkgdHlwZS5cbiAgICogVXNlIHRoZSBtZXRhZGF0YSBvdmVybG9hZCBmb3IgYWRkaXRpb25hbCBjb2xsZWN0aW9uIHNlbGVjdG9ycy5cbiAgICogQHBhcmFtIGVudGl0eU5hbWUgLSBuYW1lIG9mIHRoZSBlbnRpdHkgdHlwZVxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9yczxcbiAgICBULFxuICAgIFMgZXh0ZW5kcyBDb2xsZWN0aW9uU2VsZWN0b3JzPFQ+ID0gQ29sbGVjdGlvblNlbGVjdG9yczxUPlxuICA+KGVudGl0eU5hbWU6IHN0cmluZyk6IFM7XG5cbiAgLy8gY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9ycyBpbXBsZW1lbnRhdGlvblxuICBjcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3JzPFxuICAgIFQsXG4gICAgUyBleHRlbmRzIENvbGxlY3Rpb25TZWxlY3RvcnM8VD4gPSBDb2xsZWN0aW9uU2VsZWN0b3JzPFQ+XG4gID4obWV0YWRhdGFPck5hbWU6IEVudGl0eU1ldGFkYXRhPFQ+IHwgc3RyaW5nKTogUyB7XG4gICAgY29uc3QgbWV0YWRhdGEgPVxuICAgICAgdHlwZW9mIG1ldGFkYXRhT3JOYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICA/IHsgZW50aXR5TmFtZTogbWV0YWRhdGFPck5hbWUgfVxuICAgICAgICA6IG1ldGFkYXRhT3JOYW1lO1xuICAgIGNvbnN0IHNlbGVjdEtleXMgPSAoYzogRW50aXR5Q29sbGVjdGlvbjxUPikgPT4gYy5pZHM7XG4gICAgY29uc3Qgc2VsZWN0RW50aXR5TWFwID0gKGM6IEVudGl0eUNvbGxlY3Rpb248VD4pID0+IGMuZW50aXRpZXM7XG5cbiAgICBjb25zdCBzZWxlY3RFbnRpdGllczogU2VsZWN0b3I8XG4gICAgICBFbnRpdHlDb2xsZWN0aW9uPFQ+LFxuICAgICAgVFtdXG4gICAgPiA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgc2VsZWN0S2V5cyxcbiAgICAgIHNlbGVjdEVudGl0eU1hcCxcbiAgICAgIChrZXlzOiAobnVtYmVyIHwgc3RyaW5nKVtdLCBlbnRpdGllczogRGljdGlvbmFyeTxUPik6IFRbXSA9PlxuICAgICAgICBrZXlzLm1hcCgoa2V5KSA9PiBlbnRpdGllc1trZXldIGFzIFQpXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdENvdW50OiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBudW1iZXI+ID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBzZWxlY3RLZXlzLFxuICAgICAgKGtleXMpID0+IGtleXMubGVuZ3RoXG4gICAgKTtcblxuICAgIC8vIEVudGl0eUNvbGxlY3Rpb24gc2VsZWN0b3JzIHRoYXQgZ28gYmV5b25kIHRoZSBuZ3J4L2VudGl0eS9FbnRpdHlTdGF0ZSBzZWxlY3RvcnNcbiAgICBjb25zdCBzZWxlY3RGaWx0ZXIgPSAoYzogRW50aXR5Q29sbGVjdGlvbjxUPikgPT4gYy5maWx0ZXI7XG5cbiAgICBjb25zdCBmaWx0ZXJGbiA9IG1ldGFkYXRhLmZpbHRlckZuO1xuICAgIGNvbnN0IHNlbGVjdEZpbHRlcmVkRW50aXRpZXM6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIFRbXT4gPSBmaWx0ZXJGblxuICAgICAgPyBjcmVhdGVTZWxlY3RvcihcbiAgICAgICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgICAgICBzZWxlY3RGaWx0ZXIsXG4gICAgICAgICAgKGVudGl0aWVzOiBUW10sIHBhdHRlcm46IGFueSk6IFRbXSA9PiBmaWx0ZXJGbihlbnRpdGllcywgcGF0dGVybilcbiAgICAgICAgKVxuICAgICAgOiBzZWxlY3RFbnRpdGllcztcblxuICAgIGNvbnN0IHNlbGVjdExvYWRlZCA9IChjOiBFbnRpdHlDb2xsZWN0aW9uPFQ+KSA9PiBjLmxvYWRlZDtcbiAgICBjb25zdCBzZWxlY3RMb2FkaW5nID0gKGM6IEVudGl0eUNvbGxlY3Rpb248VD4pID0+IGMubG9hZGluZztcbiAgICBjb25zdCBzZWxlY3RDaGFuZ2VTdGF0ZSA9IChjOiBFbnRpdHlDb2xsZWN0aW9uPFQ+KSA9PiBjLmNoYW5nZVN0YXRlO1xuXG4gICAgLy8gQ3JlYXRlIGNvbGxlY3Rpb24gc2VsZWN0b3JzIGZvciBlYWNoIGBhZGRpdGlvbmFsQ29sbGVjdGlvblN0YXRlYCBwcm9wZXJ0eS5cbiAgICAvLyBUaGVzZSBhbGwgZXh0ZW5kIGZyb20gYHNlbGVjdENvbGxlY3Rpb25gXG4gICAgY29uc3QgZXh0cmEgPSBtZXRhZGF0YS5hZGRpdGlvbmFsQ29sbGVjdGlvblN0YXRlIHx8IHt9O1xuICAgIGNvbnN0IGV4dHJhU2VsZWN0b3JzOiB7XG4gICAgICBbbmFtZTogc3RyaW5nXTogU2VsZWN0b3I8RW50aXR5Q29sbGVjdGlvbjxUPiwgYW55PjtcbiAgICB9ID0ge307XG4gICAgT2JqZWN0LmtleXMoZXh0cmEpLmZvckVhY2goKGspID0+IHtcbiAgICAgIGV4dHJhU2VsZWN0b3JzWydzZWxlY3QnICsga1swXS50b1VwcGVyQ2FzZSgpICsgay5zbGljZSgxKV0gPSAoXG4gICAgICAgIGM6IEVudGl0eUNvbGxlY3Rpb248VD5cbiAgICAgICkgPT4gKDxhbnk+Yylba107XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0Q291bnQsXG4gICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgIHNlbGVjdEVudGl0eU1hcCxcbiAgICAgIHNlbGVjdEZpbHRlcixcbiAgICAgIHNlbGVjdEZpbHRlcmVkRW50aXRpZXMsXG4gICAgICBzZWxlY3RLZXlzLFxuICAgICAgc2VsZWN0TG9hZGVkLFxuICAgICAgc2VsZWN0TG9hZGluZyxcbiAgICAgIHNlbGVjdENoYW5nZVN0YXRlLFxuICAgICAgLi4uZXh0cmFTZWxlY3RvcnMsXG4gICAgfSBhcyBTO1xuICB9XG5cbiAgLy8vLy8vLyBjcmVhdGUgLy8vLy8vLy8vL1xuXG4gIC8vIGNyZWF0ZShtZXRhZGF0YSkgb3ZlcmxvYWRcbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHN0b3JlLXJvb3RlZCBzZWxlY3RvcnMgZm9yIGFuIGVudGl0eSBjb2xsZWN0aW9uLlxuICAgKiB7RW50aXR5U2VsZWN0b3JzJEZhY3Rvcnl9IHR1cm5zIHRoZW0gaW50byBzZWxlY3RvcnMkLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBFbnRpdHlNZXRhZGF0YSBmb3IgdGhlIGNvbGxlY3Rpb24uXG4gICAqIE1heSBiZSBwYXJ0aWFsIGJ1dCBtdWNoIGhhdmUgYGVudGl0eU5hbWVgLlxuICAgKlxuICAgKiBCYXNlZCBvbiBuZ3J4L2VudGl0eS9zdGF0ZV9zZWxlY3RvcnMudHNcbiAgICogRGlmZmVycyBpbiB0aGF0IHRoZXNlIHNlbGVjdG9ycyBzZWxlY3QgZnJvbSB0aGUgTmdSeCBzdG9yZSByb290LFxuICAgKiB0aHJvdWdoIHRoZSBjb2xsZWN0aW9uLCB0byB0aGUgY29sbGVjdGlvbiBtZW1iZXJzLlxuICAgKi9cbiAgY3JlYXRlPFQsIFMgZXh0ZW5kcyBFbnRpdHlTZWxlY3RvcnM8VD4gPSBFbnRpdHlTZWxlY3RvcnM8VD4+KFxuICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUPlxuICApOiBTO1xuXG4gIC8vIGNyZWF0ZShlbnRpdHlOYW1lKSBvdmVybG9hZFxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBzdG9yZS1yb290ZWQgc2VsZWN0b3JzIGZvciBhbiBlbnRpdHkgY29sbGVjdGlvbi5cbiAgICoge0VudGl0eVNlbGVjdG9ycyRGYWN0b3J5fSB0dXJucyB0aGVtIGludG8gc2VsZWN0b3JzJC5cbiAgICogVXNlIHRoZSBtZXRhZGF0YSBvdmVybG9hZCBmb3IgYWRkaXRpb25hbCBjb2xsZWN0aW9uIHNlbGVjdG9ycy5cbiAgICpcbiAgICogQHBhcmFtIGVudGl0eU5hbWUgLSBuYW1lIG9mIHRoZSBlbnRpdHkgdHlwZS5cbiAgICpcbiAgICogQmFzZWQgb24gbmdyeC9lbnRpdHkvc3RhdGVfc2VsZWN0b3JzLnRzXG4gICAqIERpZmZlcnMgaW4gdGhhdCB0aGVzZSBzZWxlY3RvcnMgc2VsZWN0IGZyb20gdGhlIE5nUnggc3RvcmUgcm9vdCxcbiAgICogdGhyb3VnaCB0aGUgY29sbGVjdGlvbiwgdG8gdGhlIGNvbGxlY3Rpb24gbWVtYmVycy5cbiAgICovXG4gIGNyZWF0ZTxULCBTIGV4dGVuZHMgRW50aXR5U2VsZWN0b3JzPFQ+ID0gRW50aXR5U2VsZWN0b3JzPFQ+PihcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dW5pZmllZC1zaWduYXR1cmVzXG4gICAgZW50aXR5TmFtZTogc3RyaW5nXG4gICk6IFM7XG5cbiAgLy8gY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9ycyBpbXBsZW1lbnRhdGlvblxuICBjcmVhdGU8VCwgUyBleHRlbmRzIEVudGl0eVNlbGVjdG9yczxUPiA9IEVudGl0eVNlbGVjdG9yczxUPj4oXG4gICAgbWV0YWRhdGFPck5hbWU6IEVudGl0eU1ldGFkYXRhPFQ+IHwgc3RyaW5nXG4gICk6IFMge1xuICAgIGNvbnN0IG1ldGFkYXRhID1cbiAgICAgIHR5cGVvZiBtZXRhZGF0YU9yTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB7IGVudGl0eU5hbWU6IG1ldGFkYXRhT3JOYW1lIH1cbiAgICAgICAgOiBtZXRhZGF0YU9yTmFtZTtcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gbWV0YWRhdGEuZW50aXR5TmFtZTtcbiAgICBjb25zdCBzZWxlY3RDb2xsZWN0aW9uOiBTZWxlY3RvcjxcbiAgICAgIE9iamVjdCxcbiAgICAgIEVudGl0eUNvbGxlY3Rpb248VD5cbiAgICA+ID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3I8VD4oZW50aXR5TmFtZSk7XG4gICAgY29uc3QgY29sbGVjdGlvblNlbGVjdG9ycyA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9yczxUPihtZXRhZGF0YSk7XG5cbiAgICBjb25zdCBlbnRpdHlTZWxlY3RvcnM6IHtcbiAgICAgIFtuYW1lOiBzdHJpbmddOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBhbnk+O1xuICAgIH0gPSB7fTtcbiAgICBPYmplY3Qua2V5cyhjb2xsZWN0aW9uU2VsZWN0b3JzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICBlbnRpdHlTZWxlY3RvcnNba10gPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgICAgc2VsZWN0Q29sbGVjdGlvbixcbiAgICAgICAgY29sbGVjdGlvblNlbGVjdG9yc1trXVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgc2VsZWN0Q29sbGVjdGlvbixcbiAgICAgIHNlbGVjdEVudGl0eUNhY2hlOiB0aGlzLnNlbGVjdEVudGl0eUNhY2hlLFxuICAgICAgLi4uZW50aXR5U2VsZWN0b3JzLFxuICAgIH0gYXMgUztcbiAgfVxufVxuIl19
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0YS9zcmMvc2VsZWN0b3JzL2VudGl0eS1zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdELE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxhQUFhLENBQUM7QUFJdkQsT0FBTyxFQUNMLDJCQUEyQixFQUUzQix5QkFBeUIsR0FDMUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQW9GaEYsK0RBQStEO0FBRS9ELE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFDYyx1QkFBaUQsRUFHN0QsaUJBQXVDO1FBRXZDLElBQUksQ0FBQyx1QkFBdUI7WUFDMUIsdUJBQXVCLElBQUksSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxpQkFBaUI7WUFDcEIsaUJBQWlCLElBQUkseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHdCQUF3QixDQUd0QixVQUFrQjtRQUNsQixNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQXFCLEVBQUUsRUFBRSxFQUFFLENBQzdDLENBQ0QsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ2hCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUksVUFBVSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztRQUNKLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBOEJELDJDQUEyQztJQUMzQyx5QkFBeUIs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UUFBUSxDQUFDLENBQUM7UUFFeEUsTUFBTSxlQUFlLEdBRWpCLEVBQUUsQ0FBQztRQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3QyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUNqQyxnQkFBZ0IsRUFDaEIsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQ3ZCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQ0wsVUFBVTtZQUNWLGdCQUFnQixFQUNoQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQ3RDLGVBQWUsQ0FDZCxDQUFDO0lBQ1QsQ0FBQzs7O1lBck1GLFVBQVU7Ozs7WUFyRkYsdUJBQXVCLHVCQTJGM0IsUUFBUTs0Q0FDUixRQUFRLFlBQ1IsTUFBTSxTQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gUHJvZCBidWlsZCByZXF1aXJlcyBgTWVtb2l6ZWRTZWxlY3RvciBldmVuIHRob3VnaCBub3QgdXNlZC5cbmltcG9ydCB7IE1lbW9pemVkU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciwgU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnQG5ncngvZW50aXR5JztcblxuaW1wb3J0IHsgRW50aXR5Q2FjaGUgfSBmcm9tICcuLi9yZWR1Y2Vycy9lbnRpdHktY2FjaGUnO1xuaW1wb3J0IHtcbiAgRU5USVRZX0NBQ0hFX1NFTEVDVE9SX1RPS0VOLFxuICBFbnRpdHlDYWNoZVNlbGVjdG9yLFxuICBjcmVhdGVFbnRpdHlDYWNoZVNlbGVjdG9yLFxufSBmcm9tICcuL2VudGl0eS1jYWNoZS1zZWxlY3Rvcic7XG5pbXBvcnQgeyBFTlRJVFlfQ0FDSEVfTkFNRSB9IGZyb20gJy4uL3JlZHVjZXJzL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBFbnRpdHlDb2xsZWN0aW9uLFxuICBDaGFuZ2VTdGF0ZU1hcCxcbn0gZnJvbSAnLi4vcmVkdWNlcnMvZW50aXR5LWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRW50aXR5Q29sbGVjdGlvbkNyZWF0b3IgfSBmcm9tICcuLi9yZWR1Y2Vycy9lbnRpdHktY29sbGVjdGlvbi1jcmVhdG9yJztcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSAnLi4vZW50aXR5LW1ldGFkYXRhL2VudGl0eS1tZXRhZGF0YSc7XG5cbi8qKlxuICogVGhlIHNlbGVjdG9yIGZ1bmN0aW9ucyBmb3IgZW50aXR5IGNvbGxlY3Rpb24gbWVtYmVycyxcbiAqIFNlbGVjdHMgZnJvbSB0aGUgZW50aXR5IGNvbGxlY3Rpb24gdG8gdGhlIGNvbGxlY3Rpb24gbWVtYmVyXG4gKiBDb250cmFzdCB3aXRoIHtFbnRpdHlTZWxlY3RvcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25TZWxlY3RvcnM8VD4ge1xuICByZWFkb25seSBbc2VsZWN0b3I6IHN0cmluZ106IGFueTtcblxuICAvKiogQ291bnQgb2YgZW50aXRpZXMgaW4gdGhlIGNhY2hlZCBjb2xsZWN0aW9uLiAqL1xuICByZWFkb25seSBzZWxlY3RDb3VudDogU2VsZWN0b3I8RW50aXR5Q29sbGVjdGlvbjxUPiwgbnVtYmVyPjtcblxuICAvKiogQWxsIGVudGl0aWVzIGluIHRoZSBjYWNoZWQgY29sbGVjdGlvbi4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0RW50aXRpZXM6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIFRbXT47XG5cbiAgLyoqIE1hcCBvZiBlbnRpdHkga2V5cyB0byBlbnRpdGllcyAqL1xuICByZWFkb25seSBzZWxlY3RFbnRpdHlNYXA6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIERpY3Rpb25hcnk8VD4+O1xuXG4gIC8qKiBGaWx0ZXIgcGF0dGVybiBhcHBsaWVkIGJ5IHRoZSBlbnRpdHkgY29sbGVjdGlvbidzIGZpbHRlciBmdW5jdGlvbiAqL1xuICByZWFkb25seSBzZWxlY3RGaWx0ZXI6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIHN0cmluZz47XG5cbiAgLyoqIEVudGl0aWVzIGluIHRoZSBjYWNoZWQgY29sbGVjdGlvbiB0aGF0IHBhc3MgdGhlIGZpbHRlciBmdW5jdGlvbiAqL1xuICByZWFkb25seSBzZWxlY3RGaWx0ZXJlZEVudGl0aWVzOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBUW10+O1xuXG4gIC8qKiBLZXlzIG9mIHRoZSBjYWNoZWQgY29sbGVjdGlvbiwgaW4gdGhlIGNvbGxlY3Rpb24ncyBuYXRpdmUgc29ydCBvcmRlciAqL1xuICByZWFkb25seSBzZWxlY3RLZXlzOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBzdHJpbmdbXSB8IG51bWJlcltdPjtcblxuICAvKiogVHJ1ZSB3aGVuIHRoZSBjb2xsZWN0aW9uIGhhcyBiZWVuIGZ1bGx5IGxvYWRlZC4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0TG9hZGVkOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBib29sZWFuPjtcblxuICAvKiogVHJ1ZSB3aGVuIGEgbXVsdGktZW50aXR5IHF1ZXJ5IGNvbW1hbmQgaXMgaW4gcHJvZ3Jlc3MuICovXG4gIHJlYWRvbmx5IHNlbGVjdExvYWRpbmc6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIGJvb2xlYW4+O1xuXG4gIC8qKiBDaGFuZ2VTdGF0ZSAoaW5jbHVkaW5nIG9yaWdpbmFsIHZhbHVlcykgb2YgZW50aXRpZXMgd2l0aCB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgcmVhZG9ubHkgc2VsZWN0Q2hhbmdlU3RhdGU6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIENoYW5nZVN0YXRlTWFwPFQ+Pjtcbn1cblxuLyoqXG4gKiBUaGUgc2VsZWN0b3IgZnVuY3Rpb25zIGZvciBlbnRpdHkgY29sbGVjdGlvbiBtZW1iZXJzLFxuICogU2VsZWN0cyBmcm9tIHN0b3JlIHJvb3QsIHRocm91Z2ggRW50aXR5Q2FjaGUsIHRvIHRoZSBlbnRpdHkgY29sbGVjdGlvbiBtZW1iZXJcbiAqIENvbnRyYXN0IHdpdGgge0NvbGxlY3Rpb25TZWxlY3RvcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdG9yczxUPiB7XG4gIC8qKiBOYW1lIG9mIHRoZSBlbnRpdHkgY29sbGVjdGlvbiBmb3IgdGhlc2Ugc2VsZWN0b3JzICovXG4gIHJlYWRvbmx5IGVudGl0eU5hbWU6IHN0cmluZztcblxuICByZWFkb25seSBbbmFtZTogc3RyaW5nXTogTWVtb2l6ZWRTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBhbnk+IHwgc3RyaW5nO1xuXG4gIC8qKiBUaGUgY2FjaGVkIEVudGl0eUNvbGxlY3Rpb24gaXRzZWxmICovXG4gIHJlYWRvbmx5IHNlbGVjdENvbGxlY3Rpb246IE1lbW9pemVkU2VsZWN0b3I8T2JqZWN0LCBFbnRpdHlDb2xsZWN0aW9uPFQ+PjtcblxuICAvKiogQ291bnQgb2YgZW50aXRpZXMgaW4gdGhlIGNhY2hlZCBjb2xsZWN0aW9uLiAqL1xuICByZWFkb25seSBzZWxlY3RDb3VudDogTWVtb2l6ZWRTZWxlY3RvcjxPYmplY3QsIG51bWJlcj47XG5cbiAgLyoqIEFsbCBlbnRpdGllcyBpbiB0aGUgY2FjaGVkIGNvbGxlY3Rpb24uICovXG4gIHJlYWRvbmx5IHNlbGVjdEVudGl0aWVzOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgVFtdPjtcblxuICAvKiogVGhlIEVudGl0eUNhY2hlICovXG4gIHJlYWRvbmx5IHNlbGVjdEVudGl0eUNhY2hlOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgRW50aXR5Q2FjaGU+O1xuXG4gIC8qKiBNYXAgb2YgZW50aXR5IGtleXMgdG8gZW50aXRpZXMgKi9cbiAgcmVhZG9ubHkgc2VsZWN0RW50aXR5TWFwOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgRGljdGlvbmFyeTxUPj47XG5cbiAgLyoqIEZpbHRlciBwYXR0ZXJuIGFwcGxpZWQgYnkgdGhlIGVudGl0eSBjb2xsZWN0aW9uJ3MgZmlsdGVyIGZ1bmN0aW9uICovXG4gIHJlYWRvbmx5IHNlbGVjdEZpbHRlcjogTWVtb2l6ZWRTZWxlY3RvcjxPYmplY3QsIHN0cmluZz47XG5cbiAgLyoqIEVudGl0aWVzIGluIHRoZSBjYWNoZWQgY29sbGVjdGlvbiB0aGF0IHBhc3MgdGhlIGZpbHRlciBmdW5jdGlvbiAqL1xuICByZWFkb25seSBzZWxlY3RGaWx0ZXJlZEVudGl0aWVzOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgVFtdPjtcblxuICAvKiogS2V5cyBvZiB0aGUgY2FjaGVkIGNvbGxlY3Rpb24sIGluIHRoZSBjb2xsZWN0aW9uJ3MgbmF0aXZlIHNvcnQgb3JkZXIgKi9cbiAgcmVhZG9ubHkgc2VsZWN0S2V5czogTWVtb2l6ZWRTZWxlY3RvcjxPYmplY3QsIHN0cmluZ1tdIHwgbnVtYmVyW10+O1xuXG4gIC8qKiBUcnVlIHdoZW4gdGhlIGNvbGxlY3Rpb24gaGFzIGJlZW4gZnVsbHkgbG9hZGVkLiAqL1xuICByZWFkb25seSBzZWxlY3RMb2FkZWQ6IE1lbW9pemVkU2VsZWN0b3I8T2JqZWN0LCBib29sZWFuPjtcblxuICAvKiogVHJ1ZSB3aGVuIGEgbXVsdGktZW50aXR5IHF1ZXJ5IGNvbW1hbmQgaXMgaW4gcHJvZ3Jlc3MuICovXG4gIHJlYWRvbmx5IHNlbGVjdExvYWRpbmc6IE1lbW9pemVkU2VsZWN0b3I8T2JqZWN0LCBib29sZWFuPjtcblxuICAvKiogQ2hhbmdlU3RhdGUgKGluY2x1ZGluZyBvcmlnaW5hbCB2YWx1ZXMpIG9mIGVudGl0aWVzIHdpdGggdW5zYXZlZCBjaGFuZ2VzICovXG4gIHJlYWRvbmx5IHNlbGVjdENoYW5nZVN0YXRlOiBNZW1vaXplZFNlbGVjdG9yPE9iamVjdCwgQ2hhbmdlU3RhdGVNYXA8VD4+O1xufVxuXG4vKiogQ3JlYXRlcyBFbnRpdHlTZWxlY3RvciBmdW5jdGlvbnMgZm9yIGVudGl0eSBjb2xsZWN0aW9ucy4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbnRpdHlTZWxlY3RvcnNGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlDb2xsZWN0aW9uQ3JlYXRvcjogRW50aXR5Q29sbGVjdGlvbkNyZWF0b3I7XG4gIHByaXZhdGUgc2VsZWN0RW50aXR5Q2FjaGU6IEVudGl0eUNhY2hlU2VsZWN0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgZW50aXR5Q29sbGVjdGlvbkNyZWF0b3I/OiBFbnRpdHlDb2xsZWN0aW9uQ3JlYXRvcixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRU5USVRZX0NBQ0hFX1NFTEVDVE9SX1RPS0VOKVxuICAgIHNlbGVjdEVudGl0eUNhY2hlPzogRW50aXR5Q2FjaGVTZWxlY3RvclxuICApIHtcbiAgICB0aGlzLmVudGl0eUNvbGxlY3Rpb25DcmVhdG9yID1cbiAgICAgIGVudGl0eUNvbGxlY3Rpb25DcmVhdG9yIHx8IG5ldyBFbnRpdHlDb2xsZWN0aW9uQ3JlYXRvcigpO1xuICAgIHRoaXMuc2VsZWN0RW50aXR5Q2FjaGUgPVxuICAgICAgc2VsZWN0RW50aXR5Q2FjaGUgfHwgY3JlYXRlRW50aXR5Q2FjaGVTZWxlY3RvcihFTlRJVFlfQ0FDSEVfTkFNRSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBOZ1J4IHNlbGVjdG9yIGZyb20gdGhlIHN0b3JlIHJvb3QgdG8gdGhlIG5hbWVkIGNvbGxlY3Rpb24sXG4gICAqIGUuZy4gZnJvbSBPYmplY3QgdG8gSGVyb2VzLlxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9yPFxuICAgIFQgPSBhbnksXG4gICAgQyBleHRlbmRzIEVudGl0eUNvbGxlY3Rpb248VD4gPSBFbnRpdHlDb2xsZWN0aW9uPFQ+XG4gID4oZW50aXR5TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZ2V0Q29sbGVjdGlvbiA9IChjYWNoZTogRW50aXR5Q2FjaGUgPSB7fSkgPT5cbiAgICAgIDxDPihcbiAgICAgICAgKGNhY2hlW2VudGl0eU5hbWVdIHx8XG4gICAgICAgICAgdGhpcy5lbnRpdHlDb2xsZWN0aW9uQ3JlYXRvci5jcmVhdGU8VD4oZW50aXR5TmFtZSkpXG4gICAgICApO1xuICAgIHJldHVybiBjcmVhdGVTZWxlY3Rvcih0aGlzLnNlbGVjdEVudGl0eUNhY2hlLCBnZXRDb2xsZWN0aW9uKTtcbiAgfVxuXG4gIC8vLy8vLy8gY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9ycyAvLy8vLy8vLy8vXG5cbiAgLy8gQmFzZWQgb24gQG5ncngvZW50aXR5L3N0YXRlX3NlbGVjdG9ycy50c1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAvLyBjcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3JzKG1ldGFkYXRhKSBvdmVybG9hZFxuICAvKipcbiAgICogQ3JlYXRlcyBlbnRpdHkgY29sbGVjdGlvbiBzZWxlY3RvcnMgZnJvbSBtZXRhZGF0YS5cbiAgICogQHBhcmFtIG1ldGFkYXRhIC0gRW50aXR5TWV0YWRhdGEgZm9yIHRoZSBjb2xsZWN0aW9uLlxuICAgKiBNYXkgYmUgcGFydGlhbCBidXQgbXVjaCBoYXZlIGBlbnRpdHlOYW1lYC5cbiAgICovXG4gIGNyZWF0ZUNvbGxlY3Rpb25TZWxlY3RvcnM8XG4gICAgVCxcbiAgICBTIGV4dGVuZHMgQ29sbGVjdGlvblNlbGVjdG9yczxUPiA9IENvbGxlY3Rpb25TZWxlY3RvcnM8VD5cbiAgPihtZXRhZGF0YTogRW50aXR5TWV0YWRhdGE8VD4pOiBTO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOnVuaWZpZWQtc2lnbmF0dXJlc1xuICAvLyBjcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3JzKGVudGl0eU5hbWUpIG92ZXJsb2FkXG4gIC8qKlxuICAgKiBDcmVhdGVzIGRlZmF1bHQgZW50aXR5IGNvbGxlY3Rpb24gc2VsZWN0b3JzIGZvciBhbiBlbnRpdHkgdHlwZS5cbiAgICogVXNlIHRoZSBtZXRhZGF0YSBvdmVybG9hZCBmb3IgYWRkaXRpb25hbCBjb2xsZWN0aW9uIHNlbGVjdG9ycy5cbiAgICogQHBhcmFtIGVudGl0eU5hbWUgLSBuYW1lIG9mIHRoZSBlbnRpdHkgdHlwZVxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9yczxcbiAgICBULFxuICAgIFMgZXh0ZW5kcyBDb2xsZWN0aW9uU2VsZWN0b3JzPFQ+ID0gQ29sbGVjdGlvblNlbGVjdG9yczxUPlxuICA+KGVudGl0eU5hbWU6IHN0cmluZyk6IFM7XG5cbiAgLy8gY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9ycyBpbXBsZW1lbnRhdGlvblxuICBjcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3JzPFxuICAgIFQsXG4gICAgUyBleHRlbmRzIENvbGxlY3Rpb25TZWxlY3RvcnM8VD4gPSBDb2xsZWN0aW9uU2VsZWN0b3JzPFQ+XG4gID4obWV0YWRhdGFPck5hbWU6IEVudGl0eU1ldGFkYXRhPFQ+IHwgc3RyaW5nKTogUyB7XG4gICAgY29uc3QgbWV0YWRhdGEgPVxuICAgICAgdHlwZW9mIG1ldGFkYXRhT3JOYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICA/IHsgZW50aXR5TmFtZTogbWV0YWRhdGFPck5hbWUgfVxuICAgICAgICA6IG1ldGFkYXRhT3JOYW1lO1xuICAgIGNvbnN0IHNlbGVjdEtleXMgPSAoYzogRW50aXR5Q29sbGVjdGlvbjxUPikgPT4gYy5pZHM7XG4gICAgY29uc3Qgc2VsZWN0RW50aXR5TWFwID0gKGM6IEVudGl0eUNvbGxlY3Rpb248VD4pID0+IGMuZW50aXRpZXM7XG5cbiAgICBjb25zdCBzZWxlY3RFbnRpdGllczogU2VsZWN0b3I8XG4gICAgICBFbnRpdHlDb2xsZWN0aW9uPFQ+LFxuICAgICAgVFtdXG4gICAgPiA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgc2VsZWN0S2V5cyxcbiAgICAgIHNlbGVjdEVudGl0eU1hcCxcbiAgICAgIChrZXlzOiAobnVtYmVyIHwgc3RyaW5nKVtdLCBlbnRpdGllczogRGljdGlvbmFyeTxUPik6IFRbXSA9PlxuICAgICAgICBrZXlzLm1hcCgoa2V5KSA9PiBlbnRpdGllc1trZXldIGFzIFQpXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdENvdW50OiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBudW1iZXI+ID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBzZWxlY3RLZXlzLFxuICAgICAgKGtleXMpID0+IGtleXMubGVuZ3RoXG4gICAgKTtcblxuICAgIC8vIEVudGl0eUNvbGxlY3Rpb24gc2VsZWN0b3JzIHRoYXQgZ28gYmV5b25kIHRoZSBuZ3J4L2VudGl0eS9FbnRpdHlTdGF0ZSBzZWxlY3RvcnNcbiAgICBjb25zdCBzZWxlY3RGaWx0ZXIgPSAoYzogRW50aXR5Q29sbGVjdGlvbjxUPikgPT4gYy5maWx0ZXI7XG5cbiAgICBjb25zdCBmaWx0ZXJGbiA9IG1ldGFkYXRhLmZpbHRlckZuO1xuICAgIGNvbnN0IHNlbGVjdEZpbHRlcmVkRW50aXRpZXM6IFNlbGVjdG9yPEVudGl0eUNvbGxlY3Rpb248VD4sIFRbXT4gPSBmaWx0ZXJGblxuICAgICAgPyBjcmVhdGVTZWxlY3RvcihcbiAgICAgICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgICAgICBzZWxlY3RGaWx0ZXIsXG4gICAgICAgICAgKGVudGl0aWVzOiBUW10sIHBhdHRlcm46IGFueSk6IFRbXSA9PiBmaWx0ZXJGbihlbnRpdGllcywgcGF0dGVybilcbiAgICAgICAgKVxuICAgICAgOiBzZWxlY3RFbnRpdGllcztcblxuICAgIGNvbnN0IHNlbGVjdExvYWRlZCA9IChjOiBFbnRpdHlDb2xsZWN0aW9uPFQ+KSA9PiBjLmxvYWRlZDtcbiAgICBjb25zdCBzZWxlY3RMb2FkaW5nID0gKGM6IEVudGl0eUNvbGxlY3Rpb248VD4pID0+IGMubG9hZGluZztcbiAgICBjb25zdCBzZWxlY3RDaGFuZ2VTdGF0ZSA9IChjOiBFbnRpdHlDb2xsZWN0aW9uPFQ+KSA9PiBjLmNoYW5nZVN0YXRlO1xuXG4gICAgLy8gQ3JlYXRlIGNvbGxlY3Rpb24gc2VsZWN0b3JzIGZvciBlYWNoIGBhZGRpdGlvbmFsQ29sbGVjdGlvblN0YXRlYCBwcm9wZXJ0eS5cbiAgICAvLyBUaGVzZSBhbGwgZXh0ZW5kIGZyb20gYHNlbGVjdENvbGxlY3Rpb25gXG4gICAgY29uc3QgZXh0cmEgPSBtZXRhZGF0YS5hZGRpdGlvbmFsQ29sbGVjdGlvblN0YXRlIHx8IHt9O1xuICAgIGNvbnN0IGV4dHJhU2VsZWN0b3JzOiB7XG4gICAgICBbbmFtZTogc3RyaW5nXTogU2VsZWN0b3I8RW50aXR5Q29sbGVjdGlvbjxUPiwgYW55PjtcbiAgICB9ID0ge307XG4gICAgT2JqZWN0LmtleXMoZXh0cmEpLmZvckVhY2goKGspID0+IHtcbiAgICAgIGV4dHJhU2VsZWN0b3JzWydzZWxlY3QnICsga1swXS50b1VwcGVyQ2FzZSgpICsgay5zbGljZSgxKV0gPSAoXG4gICAgICAgIGM6IEVudGl0eUNvbGxlY3Rpb248VD5cbiAgICAgICkgPT4gKDxhbnk+Yylba107XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0Q291bnQsXG4gICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgIHNlbGVjdEVudGl0eU1hcCxcbiAgICAgIHNlbGVjdEZpbHRlcixcbiAgICAgIHNlbGVjdEZpbHRlcmVkRW50aXRpZXMsXG4gICAgICBzZWxlY3RLZXlzLFxuICAgICAgc2VsZWN0TG9hZGVkLFxuICAgICAgc2VsZWN0TG9hZGluZyxcbiAgICAgIHNlbGVjdENoYW5nZVN0YXRlLFxuICAgICAgLi4uZXh0cmFTZWxlY3RvcnMsXG4gICAgfSBhcyBTO1xuICB9XG5cbiAgLy8vLy8vLyBjcmVhdGUgLy8vLy8vLy8vL1xuXG4gIC8vIGNyZWF0ZShtZXRhZGF0YSkgb3ZlcmxvYWRcbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHN0b3JlLXJvb3RlZCBzZWxlY3RvcnMgZm9yIGFuIGVudGl0eSBjb2xsZWN0aW9uLlxuICAgKiB7RW50aXR5U2VsZWN0b3JzJEZhY3Rvcnl9IHR1cm5zIHRoZW0gaW50byBzZWxlY3RvcnMkLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBFbnRpdHlNZXRhZGF0YSBmb3IgdGhlIGNvbGxlY3Rpb24uXG4gICAqIE1heSBiZSBwYXJ0aWFsIGJ1dCBtdWNoIGhhdmUgYGVudGl0eU5hbWVgLlxuICAgKlxuICAgKiBCYXNlZCBvbiBuZ3J4L2VudGl0eS9zdGF0ZV9zZWxlY3RvcnMudHNcbiAgICogRGlmZmVycyBpbiB0aGF0IHRoZXNlIHNlbGVjdG9ycyBzZWxlY3QgZnJvbSB0aGUgTmdSeCBzdG9yZSByb290LFxuICAgKiB0aHJvdWdoIHRoZSBjb2xsZWN0aW9uLCB0byB0aGUgY29sbGVjdGlvbiBtZW1iZXJzLlxuICAgKi9cbiAgY3JlYXRlPFQsIFMgZXh0ZW5kcyBFbnRpdHlTZWxlY3RvcnM8VD4gPSBFbnRpdHlTZWxlY3RvcnM8VD4+KFxuICAgIG1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YTxUPlxuICApOiBTO1xuXG4gIC8vIGNyZWF0ZShlbnRpdHlOYW1lKSBvdmVybG9hZFxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBzdG9yZS1yb290ZWQgc2VsZWN0b3JzIGZvciBhbiBlbnRpdHkgY29sbGVjdGlvbi5cbiAgICoge0VudGl0eVNlbGVjdG9ycyRGYWN0b3J5fSB0dXJucyB0aGVtIGludG8gc2VsZWN0b3JzJC5cbiAgICogVXNlIHRoZSBtZXRhZGF0YSBvdmVybG9hZCBmb3IgYWRkaXRpb25hbCBjb2xsZWN0aW9uIHNlbGVjdG9ycy5cbiAgICpcbiAgICogQHBhcmFtIGVudGl0eU5hbWUgLSBuYW1lIG9mIHRoZSBlbnRpdHkgdHlwZS5cbiAgICpcbiAgICogQmFzZWQgb24gbmdyeC9lbnRpdHkvc3RhdGVfc2VsZWN0b3JzLnRzXG4gICAqIERpZmZlcnMgaW4gdGhhdCB0aGVzZSBzZWxlY3RvcnMgc2VsZWN0IGZyb20gdGhlIE5nUnggc3RvcmUgcm9vdCxcbiAgICogdGhyb3VnaCB0aGUgY29sbGVjdGlvbiwgdG8gdGhlIGNvbGxlY3Rpb24gbWVtYmVycy5cbiAgICovXG4gIGNyZWF0ZTxULCBTIGV4dGVuZHMgRW50aXR5U2VsZWN0b3JzPFQ+ID0gRW50aXR5U2VsZWN0b3JzPFQ+PihcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dW5pZmllZC1zaWduYXR1cmVzXG4gICAgZW50aXR5TmFtZTogc3RyaW5nXG4gICk6IFM7XG5cbiAgLy8gY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9ycyBpbXBsZW1lbnRhdGlvblxuICBjcmVhdGU8VCwgUyBleHRlbmRzIEVudGl0eVNlbGVjdG9yczxUPiA9IEVudGl0eVNlbGVjdG9yczxUPj4oXG4gICAgbWV0YWRhdGFPck5hbWU6IEVudGl0eU1ldGFkYXRhPFQ+IHwgc3RyaW5nXG4gICk6IFMge1xuICAgIGNvbnN0IG1ldGFkYXRhID1cbiAgICAgIHR5cGVvZiBtZXRhZGF0YU9yTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB7IGVudGl0eU5hbWU6IG1ldGFkYXRhT3JOYW1lIH1cbiAgICAgICAgOiBtZXRhZGF0YU9yTmFtZTtcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gbWV0YWRhdGEuZW50aXR5TmFtZTtcbiAgICBjb25zdCBzZWxlY3RDb2xsZWN0aW9uOiBTZWxlY3RvcjxcbiAgICAgIE9iamVjdCxcbiAgICAgIEVudGl0eUNvbGxlY3Rpb248VD5cbiAgICA+ID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uU2VsZWN0b3I8VD4oZW50aXR5TmFtZSk7XG4gICAgY29uc3QgY29sbGVjdGlvblNlbGVjdG9ycyA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvblNlbGVjdG9yczxUPihtZXRhZGF0YSk7XG5cbiAgICBjb25zdCBlbnRpdHlTZWxlY3RvcnM6IHtcbiAgICAgIFtuYW1lOiBzdHJpbmddOiBTZWxlY3RvcjxFbnRpdHlDb2xsZWN0aW9uPFQ+LCBhbnk+O1xuICAgIH0gPSB7fTtcbiAgICBPYmplY3Qua2V5cyhjb2xsZWN0aW9uU2VsZWN0b3JzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICBlbnRpdHlTZWxlY3RvcnNba10gPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgICAgc2VsZWN0Q29sbGVjdGlvbixcbiAgICAgICAgY29sbGVjdGlvblNlbGVjdG9yc1trXVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgc2VsZWN0Q29sbGVjdGlvbixcbiAgICAgIHNlbGVjdEVudGl0eUNhY2hlOiB0aGlzLnNlbGVjdEVudGl0eUNhY2hlLFxuICAgICAgLi4uZW50aXR5U2VsZWN0b3JzLFxuICAgIH0gYXMgUztcbiAgfVxufVxuIl19
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/utils/correlation-id-generator.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
import { Injectable } from '@angular/core';
|
|
7
2
|
/**
|
|
8
3
|
* Generates a string id beginning 'CRID',
|
|
@@ -15,19 +10,12 @@ import { Injectable } from '@angular/core';
|
|
|
15
10
|
*/
|
|
16
11
|
export class CorrelationIdGenerator {
|
|
17
12
|
constructor() {
|
|
18
|
-
/**
|
|
19
|
-
* Seed for the ids
|
|
20
|
-
*/
|
|
13
|
+
/** Seed for the ids */
|
|
21
14
|
this.seed = 0;
|
|
22
|
-
/**
|
|
23
|
-
* Prefix of the id, 'CRID;
|
|
24
|
-
*/
|
|
15
|
+
/** Prefix of the id, 'CRID; */
|
|
25
16
|
this.prefix = 'CRID';
|
|
26
17
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Return the next correlation id
|
|
29
|
-
* @return {?}
|
|
30
|
-
*/
|
|
18
|
+
/** Return the next correlation id */
|
|
31
19
|
next() {
|
|
32
20
|
this.seed += 1;
|
|
33
21
|
return this.prefix + this.seed;
|
|
@@ -36,18 +24,4 @@ export class CorrelationIdGenerator {
|
|
|
36
24
|
CorrelationIdGenerator.decorators = [
|
|
37
25
|
{ type: Injectable }
|
|
38
26
|
];
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Seed for the ids
|
|
42
|
-
* @type {?}
|
|
43
|
-
* @protected
|
|
44
|
-
*/
|
|
45
|
-
CorrelationIdGenerator.prototype.seed;
|
|
46
|
-
/**
|
|
47
|
-
* Prefix of the id, 'CRID;
|
|
48
|
-
* @type {?}
|
|
49
|
-
* @protected
|
|
50
|
-
*/
|
|
51
|
-
CorrelationIdGenerator.prototype.prefix;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24taWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL21vZHVsZXMvZGF0YS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy9jb3JyZWxhdGlvbi1pZC1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBWTNDLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7Ozs7UUFHWSxTQUFJLEdBQUcsQ0FBQyxDQUFDOzs7O1FBRVQsV0FBTSxHQUFHLE1BQU0sQ0FBQztJQU01QixDQUFDOzs7OztJQUpDLElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7OztZQVZGLFVBQVU7Ozs7Ozs7O0lBR1Qsc0NBQW1COzs7Ozs7SUFFbkIsd0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHN0cmluZyBpZCBiZWdpbm5pbmcgJ0NSSUQnLFxuICogZm9sbG93ZWQgYnkgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaW50ZWdlciBmb3IgdXNlIGFzIGEgY29ycmVsYXRpb24gaWQuXG4gKiBBcyB0aGV5IGFyZSBwcm9kdWNlZCBsb2NhbGx5IGJ5IGEgc2luZ2xldG9uIHNlcnZpY2UsXG4gKiB0aGVzZSBpZHMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgdW5pcXVlIG9ubHlcbiAqIGZvciB0aGUgZHVyYXRpb24gb2YgYSBzaW5nbGUgY2xpZW50IGJyb3dzZXIgaW5zdGFuY2UuXG4gKiBOZ3J4IGVudGl0eSBkaXNwYXRjaGVyIHF1ZXJ5IGFuZCBzYXZlIG1ldGhvZHMgY2FsbCB0aGlzIHNlcnZpY2UgdG8gZ2VuZXJhdGUgZGVmYXVsdCBjb3JyZWxhdGlvbiBpZHMuXG4gKiBEbyBOT1QgdXNlIGZvciBlbnRpdHkga2V5cy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvcnJlbGF0aW9uSWRHZW5lcmF0b3Ige1xuICAvKiogU2VlZCBmb3IgdGhlIGlkcyAqL1xuICBwcm90ZWN0ZWQgc2VlZCA9IDA7XG4gIC8qKiBQcmVmaXggb2YgdGhlIGlkLCAnQ1JJRDsgKi9cbiAgcHJvdGVjdGVkIHByZWZpeCA9ICdDUklEJztcbiAgLyoqIFJldHVybiB0aGUgbmV4dCBjb3JyZWxhdGlvbiBpZCAqL1xuICBuZXh0KCkge1xuICAgIHRoaXMuc2VlZCArPSAxO1xuICAgIHJldHVybiB0aGlzLnByZWZpeCArIHRoaXMuc2VlZDtcbiAgfVxufVxuIl19
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24taWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRhL3NyYy91dGlscy9jb3JyZWxhdGlvbi1pZC1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFRSx1QkFBdUI7UUFDYixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLCtCQUErQjtRQUNyQixXQUFNLEdBQUcsTUFBTSxDQUFDO0lBTTVCLENBQUM7SUFMQyxxQ0FBcUM7SUFDckMsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQzs7O1lBVkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBzdHJpbmcgaWQgYmVnaW5uaW5nICdDUklEJyxcbiAqIGZvbGxvd2VkIGJ5IGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGludGVnZXIgZm9yIHVzZSBhcyBhIGNvcnJlbGF0aW9uIGlkLlxuICogQXMgdGhleSBhcmUgcHJvZHVjZWQgbG9jYWxseSBieSBhIHNpbmdsZXRvbiBzZXJ2aWNlLFxuICogdGhlc2UgaWRzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHVuaXF1ZSBvbmx5XG4gKiBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgc2luZ2xlIGNsaWVudCBicm93c2VyIGluc3RhbmNlLlxuICogTmdyeCBlbnRpdHkgZGlzcGF0Y2hlciBxdWVyeSBhbmQgc2F2ZSBtZXRob2RzIGNhbGwgdGhpcyBzZXJ2aWNlIHRvIGdlbmVyYXRlIGRlZmF1bHQgY29ycmVsYXRpb24gaWRzLlxuICogRG8gTk9UIHVzZSBmb3IgZW50aXR5IGtleXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb3JyZWxhdGlvbklkR2VuZXJhdG9yIHtcbiAgLyoqIFNlZWQgZm9yIHRoZSBpZHMgKi9cbiAgcHJvdGVjdGVkIHNlZWQgPSAwO1xuICAvKiogUHJlZml4IG9mIHRoZSBpZCwgJ0NSSUQ7ICovXG4gIHByb3RlY3RlZCBwcmVmaXggPSAnQ1JJRCc7XG4gIC8qKiBSZXR1cm4gdGhlIG5leHQgY29ycmVsYXRpb24gaWQgKi9cbiAgbmV4dCgpIHtcbiAgICB0aGlzLnNlZWQgKz0gMTtcbiAgICByZXR1cm4gdGhpcy5wcmVmaXggKyB0aGlzLnNlZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,35 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/utils/default-logger.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
import { Injectable } from '@angular/core';
|
|
7
2
|
export class DefaultLogger {
|
|
8
|
-
/**
|
|
9
|
-
* @param {?=} message
|
|
10
|
-
* @param {?=} extra
|
|
11
|
-
* @return {?}
|
|
12
|
-
*/
|
|
13
3
|
error(message, extra) {
|
|
14
4
|
if (message) {
|
|
15
5
|
extra ? console.error(message, extra) : console.error(message);
|
|
16
6
|
}
|
|
17
7
|
}
|
|
18
|
-
/**
|
|
19
|
-
* @param {?=} message
|
|
20
|
-
* @param {?=} extra
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
8
|
log(message, extra) {
|
|
24
9
|
if (message) {
|
|
25
10
|
extra ? console.log(message, extra) : console.log(message);
|
|
26
11
|
}
|
|
27
12
|
}
|
|
28
|
-
/**
|
|
29
|
-
* @param {?=} message
|
|
30
|
-
* @param {?=} extra
|
|
31
|
-
* @return {?}
|
|
32
|
-
*/
|
|
33
13
|
warn(message, extra) {
|
|
34
14
|
if (message) {
|
|
35
15
|
extra ? console.warn(message, extra) : console.warn(message);
|
|
@@ -39,4 +19,4 @@ export class DefaultLogger {
|
|
|
39
19
|
DefaultLogger.decorators = [
|
|
40
20
|
{ type: Injectable }
|
|
41
21
|
];
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGEvc3JjL3V0aWxzL2RlZmF1bHQtbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsTUFBTSxPQUFPLGFBQWE7SUFDeEIsS0FBSyxDQUFDLE9BQWEsRUFBRSxLQUFXO1FBQzlCLElBQUksT0FBTyxFQUFFO1lBQ1gsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsT0FBYSxFQUFFLEtBQVc7UUFDNUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFhLEVBQUUsS0FBVztRQUM3QixJQUFJLE9BQU8sRUFBRTtZQUNYLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDOzs7WUFsQkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWZhdWx0TG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyIHtcbiAgZXJyb3IobWVzc2FnZT86IGFueSwgZXh0cmE/OiBhbnkpIHtcbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgZXh0cmEgPyBjb25zb2xlLmVycm9yKG1lc3NhZ2UsIGV4dHJhKSA6IGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgbG9nKG1lc3NhZ2U/OiBhbnksIGV4dHJhPzogYW55KSB7XG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIGV4dHJhID8gY29uc29sZS5sb2cobWVzc2FnZSwgZXh0cmEpIDogY29uc29sZS5sb2cobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgd2FybihtZXNzYWdlPzogYW55LCBleHRyYT86IGFueSkge1xuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBleHRyYSA/IGNvbnNvbGUud2FybihtZXNzYWdlLCBleHRyYSkgOiBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/utils/default-pluralizer.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
import { Inject, Injectable, Optional } from '@angular/core';
|
|
7
2
|
import { PLURAL_NAMES_TOKEN } from './interfaces';
|
|
8
|
-
/** @type {?} */
|
|
9
3
|
const uncountable = [
|
|
10
4
|
// 'sheep',
|
|
11
5
|
// 'fish',
|
|
@@ -19,28 +13,18 @@ const uncountable = [
|
|
|
19
13
|
'series',
|
|
20
14
|
];
|
|
21
15
|
export class DefaultPluralizer {
|
|
22
|
-
/**
|
|
23
|
-
* @param {?} pluralNames
|
|
24
|
-
*/
|
|
25
16
|
constructor(pluralNames) {
|
|
26
17
|
this.pluralNames = {};
|
|
27
18
|
// merge each plural names object
|
|
28
19
|
if (pluralNames) {
|
|
29
|
-
pluralNames.forEach((
|
|
30
|
-
* @param {?} pn
|
|
31
|
-
* @return {?}
|
|
32
|
-
*/
|
|
33
|
-
(pn) => this.registerPluralNames(pn)));
|
|
20
|
+
pluralNames.forEach((pn) => this.registerPluralNames(pn));
|
|
34
21
|
}
|
|
35
22
|
}
|
|
36
23
|
/**
|
|
37
24
|
* Pluralize a singular name using common English language pluralization rules
|
|
38
25
|
* Examples: "company" -> "companies", "employee" -> "employees", "tax" -> "taxes"
|
|
39
|
-
* @param {?} name
|
|
40
|
-
* @return {?}
|
|
41
26
|
*/
|
|
42
27
|
pluralize(name) {
|
|
43
|
-
/** @type {?} */
|
|
44
28
|
const plural = this.pluralNames[name];
|
|
45
29
|
if (plural) {
|
|
46
30
|
return plural;
|
|
@@ -67,8 +51,7 @@ export class DefaultPluralizer {
|
|
|
67
51
|
}
|
|
68
52
|
/**
|
|
69
53
|
* Register a mapping of entity type name to the entity name's plural
|
|
70
|
-
* @param
|
|
71
|
-
* @return {?}
|
|
54
|
+
* @param pluralNames {EntityPluralNames} plural names for entity types
|
|
72
55
|
*/
|
|
73
56
|
registerPluralNames(pluralNames) {
|
|
74
57
|
this.pluralNames = Object.assign(Object.assign({}, this.pluralNames), (pluralNames || {}));
|
|
@@ -81,8 +64,4 @@ DefaultPluralizer.decorators = [
|
|
|
81
64
|
DefaultPluralizer.ctorParameters = () => [
|
|
82
65
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [PLURAL_NAMES_TOKEN,] }] }
|
|
83
66
|
];
|
|
84
|
-
|
|
85
|
-
/** @type {?} */
|
|
86
|
-
DefaultPluralizer.prototype.pluralNames;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wbHVyYWxpemVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL21vZHVsZXMvZGF0YS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy9kZWZhdWx0LXBsdXJhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7TUFFL0QsV0FBVyxHQUFHO0lBQ2xCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsVUFBVTtJQUNWLFdBQVc7SUFDWCxVQUFVO0lBQ1YsYUFBYTtJQUNiLFdBQVc7SUFDWCxhQUFhO0lBQ2IsT0FBTztJQUNQLFFBQVE7Q0FDVDtBQUdELE1BQU0sT0FBTyxpQkFBaUI7Ozs7SUFHNUIsWUFHRSxXQUFnQztRQUxsQyxnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFPbEMsaUNBQWlDO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsV0FBVyxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDOzs7Ozs7O0lBTUQsU0FBUyxDQUFDLElBQVk7O2NBQ2QsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3JDLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELG1DQUFtQztRQUNuQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1lBQ1osWUFBWTtTQUNiO2FBQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNsQixnQkFBZ0I7U0FDakI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMvQyx5Q0FBeUM7U0FDMUM7YUFBTSxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7U0FDcEI7YUFBTTtZQUNMLE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUNuQjtJQUNILENBQUM7Ozs7OztJQU1ELG1CQUFtQixDQUFDLFdBQThCO1FBQ2hELElBQUksQ0FBQyxXQUFXLG1DQUFRLElBQUksQ0FBQyxXQUFXLEdBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUUsQ0FBQztJQUNyRSxDQUFDOzs7WUEvQ0YsVUFBVTs7Ozt3Q0FLTixRQUFRLFlBQ1IsTUFBTSxTQUFDLGtCQUFrQjs7OztJQUo1Qix3Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlQbHVyYWxOYW1lcywgUExVUkFMX05BTUVTX1RPS0VOIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuY29uc3QgdW5jb3VudGFibGUgPSBbXG4gIC8vICdzaGVlcCcsXG4gIC8vICdmaXNoJyxcbiAgLy8gJ2RlZXInLFxuICAvLyAnbW9vc2UnLFxuICAvLyAncmljZScsXG4gIC8vICdzcGVjaWVzJyxcbiAgJ2VxdWlwbWVudCcsXG4gICdpbmZvcm1hdGlvbicsXG4gICdtb25leScsXG4gICdzZXJpZXMnLFxuXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlZmF1bHRQbHVyYWxpemVyIHtcbiAgcGx1cmFsTmFtZXM6IEVudGl0eVBsdXJhbE5hbWVzID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFBMVVJBTF9OQU1FU19UT0tFTilcbiAgICBwbHVyYWxOYW1lczogRW50aXR5UGx1cmFsTmFtZXNbXVxuICApIHtcbiAgICAvLyBtZXJnZSBlYWNoIHBsdXJhbCBuYW1lcyBvYmplY3RcbiAgICBpZiAocGx1cmFsTmFtZXMpIHtcbiAgICAgIHBsdXJhbE5hbWVzLmZvckVhY2goKHBuKSA9PiB0aGlzLnJlZ2lzdGVyUGx1cmFsTmFtZXMocG4pKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGx1cmFsaXplIGEgc2luZ3VsYXIgbmFtZSB1c2luZyBjb21tb24gRW5nbGlzaCBsYW5ndWFnZSBwbHVyYWxpemF0aW9uIHJ1bGVzXG4gICAqIEV4YW1wbGVzOiBcImNvbXBhbnlcIiAtPiBcImNvbXBhbmllc1wiLCBcImVtcGxveWVlXCIgLT4gXCJlbXBsb3llZXNcIiwgXCJ0YXhcIiAtPiBcInRheGVzXCJcbiAgICovXG4gIHBsdXJhbGl6ZShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwbHVyYWwgPSB0aGlzLnBsdXJhbE5hbWVzW25hbWVdO1xuICAgIGlmIChwbHVyYWwpIHtcbiAgICAgIHJldHVybiBwbHVyYWw7XG4gICAgfVxuICAgIC8vIHNpbmd1bGFyIGFuZCBwbHVyYWwgYXJlIHRoZSBzYW1lXG4gICAgaWYgKHVuY291bnRhYmxlLmluZGV4T2YobmFtZS50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICAgIC8vIHZvd2VsICsgeVxuICAgIH0gZWxzZSBpZiAoL1thZWlvdV15JC8udGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIG5hbWUgKyAncyc7XG4gICAgICAvLyBjb25zb25hbnQgKyB5XG4gICAgfSBlbHNlIGlmIChuYW1lLmVuZHNXaXRoKCd5JykpIHtcbiAgICAgIHJldHVybiBuYW1lLnN1YnN0cigwLCBuYW1lLmxlbmd0aCAtIDEpICsgJ2llcyc7XG4gICAgICAvLyBlbmRpbmdzIHR5cGljYWxseSBwbHVyYWxpemVkIHdpdGggJ2VzJ1xuICAgIH0gZWxzZSBpZiAoL1tzfHNzfHNofGNofHh8el0kLy50ZXN0KG5hbWUpKSB7XG4gICAgICByZXR1cm4gbmFtZSArICdlcyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuYW1lICsgJ3MnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIG1hcHBpbmcgb2YgZW50aXR5IHR5cGUgbmFtZSB0byB0aGUgZW50aXR5IG5hbWUncyBwbHVyYWxcbiAgICogQHBhcmFtIHBsdXJhbE5hbWVzIHtFbnRpdHlQbHVyYWxOYW1lc30gcGx1cmFsIG5hbWVzIGZvciBlbnRpdHkgdHlwZXNcbiAgICovXG4gIHJlZ2lzdGVyUGx1cmFsTmFtZXMocGx1cmFsTmFtZXM6IEVudGl0eVBsdXJhbE5hbWVzKTogdm9pZCB7XG4gICAgdGhpcy5wbHVyYWxOYW1lcyA9IHsgLi4udGhpcy5wbHVyYWxOYW1lcywgLi4uKHBsdXJhbE5hbWVzIHx8IHt9KSB9O1xuICB9XG59XG4iXX0=
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wbHVyYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRhL3NyYy91dGlscy9kZWZhdWx0LXBsdXJhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckUsTUFBTSxXQUFXLEdBQUc7SUFDbEIsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFVBQVU7SUFDVixhQUFhO0lBQ2IsV0FBVztJQUNYLGFBQWE7SUFDYixPQUFPO0lBQ1AsUUFBUTtDQUNULENBQUM7QUFHRixNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBR0UsV0FBZ0M7UUFMbEMsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBT2xDLGlDQUFpQztRQUNqQyxJQUFJLFdBQVcsRUFBRTtZQUNmLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsbUNBQW1DO1FBQ25DLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUM7WUFDWixZQUFZO1NBQ2I7YUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsT0FBTyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ2xCLGdCQUFnQjtTQUNqQjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQy9DLHlDQUF5QztTQUMxQzthQUFNLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQztTQUNwQjthQUFNO1lBQ0wsT0FBTyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1CQUFtQixDQUFDLFdBQThCO1FBQ2hELElBQUksQ0FBQyxXQUFXLG1DQUFRLElBQUksQ0FBQyxXQUFXLEdBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUUsQ0FBQztJQUNyRSxDQUFDOzs7WUEvQ0YsVUFBVTs7Ozt3Q0FLTixRQUFRLFlBQ1IsTUFBTSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eVBsdXJhbE5hbWVzLCBQTFVSQUxfTkFNRVNfVE9LRU4gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5jb25zdCB1bmNvdW50YWJsZSA9IFtcbiAgLy8gJ3NoZWVwJyxcbiAgLy8gJ2Zpc2gnLFxuICAvLyAnZGVlcicsXG4gIC8vICdtb29zZScsXG4gIC8vICdyaWNlJyxcbiAgLy8gJ3NwZWNpZXMnLFxuICAnZXF1aXBtZW50JyxcbiAgJ2luZm9ybWF0aW9uJyxcbiAgJ21vbmV5JyxcbiAgJ3NlcmllcycsXG5dO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVmYXVsdFBsdXJhbGl6ZXIge1xuICBwbHVyYWxOYW1lczogRW50aXR5UGx1cmFsTmFtZXMgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoUExVUkFMX05BTUVTX1RPS0VOKVxuICAgIHBsdXJhbE5hbWVzOiBFbnRpdHlQbHVyYWxOYW1lc1tdXG4gICkge1xuICAgIC8vIG1lcmdlIGVhY2ggcGx1cmFsIG5hbWVzIG9iamVjdFxuICAgIGlmIChwbHVyYWxOYW1lcykge1xuICAgICAgcGx1cmFsTmFtZXMuZm9yRWFjaCgocG4pID0+IHRoaXMucmVnaXN0ZXJQbHVyYWxOYW1lcyhwbikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQbHVyYWxpemUgYSBzaW5ndWxhciBuYW1lIHVzaW5nIGNvbW1vbiBFbmdsaXNoIGxhbmd1YWdlIHBsdXJhbGl6YXRpb24gcnVsZXNcbiAgICogRXhhbXBsZXM6IFwiY29tcGFueVwiIC0+IFwiY29tcGFuaWVzXCIsIFwiZW1wbG95ZWVcIiAtPiBcImVtcGxveWVlc1wiLCBcInRheFwiIC0+IFwidGF4ZXNcIlxuICAgKi9cbiAgcGx1cmFsaXplKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHBsdXJhbCA9IHRoaXMucGx1cmFsTmFtZXNbbmFtZV07XG4gICAgaWYgKHBsdXJhbCkge1xuICAgICAgcmV0dXJuIHBsdXJhbDtcbiAgICB9XG4gICAgLy8gc2luZ3VsYXIgYW5kIHBsdXJhbCBhcmUgdGhlIHNhbWVcbiAgICBpZiAodW5jb3VudGFibGUuaW5kZXhPZihuYW1lLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAgICAgIHJldHVybiBuYW1lO1xuICAgICAgLy8gdm93ZWwgKyB5XG4gICAgfSBlbHNlIGlmICgvW2FlaW91XXkkLy50ZXN0KG5hbWUpKSB7XG4gICAgICByZXR1cm4gbmFtZSArICdzJztcbiAgICAgIC8vIGNvbnNvbmFudCArIHlcbiAgICB9IGVsc2UgaWYgKG5hbWUuZW5kc1dpdGgoJ3knKSkge1xuICAgICAgcmV0dXJuIG5hbWUuc3Vic3RyKDAsIG5hbWUubGVuZ3RoIC0gMSkgKyAnaWVzJztcbiAgICAgIC8vIGVuZGluZ3MgdHlwaWNhbGx5IHBsdXJhbGl6ZWQgd2l0aCAnZXMnXG4gICAgfSBlbHNlIGlmICgvW3N8c3N8c2h8Y2h8eHx6XSQvLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiBuYW1lICsgJ2VzJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5hbWUgKyAncyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgbWFwcGluZyBvZiBlbnRpdHkgdHlwZSBuYW1lIHRvIHRoZSBlbnRpdHkgbmFtZSdzIHBsdXJhbFxuICAgKiBAcGFyYW0gcGx1cmFsTmFtZXMge0VudGl0eVBsdXJhbE5hbWVzfSBwbHVyYWwgbmFtZXMgZm9yIGVudGl0eSB0eXBlc1xuICAgKi9cbiAgcmVnaXN0ZXJQbHVyYWxOYW1lcyhwbHVyYWxOYW1lczogRW50aXR5UGx1cmFsTmFtZXMpOiB2b2lkIHtcbiAgICB0aGlzLnBsdXJhbE5hbWVzID0geyAuLi50aGlzLnBsdXJhbE5hbWVzLCAuLi4ocGx1cmFsTmFtZXMgfHwge30pIH07XG4gIH1cbn1cbiJdfQ==
|