@ngrx/signals 18.0.0-rc.1 → 18.0.0-rc.2

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 (41) hide show
  1. package/entities/src/entity-config.d.ts +17 -0
  2. package/entities/src/helpers.d.ts +9 -9
  3. package/entities/src/index.d.ts +2 -1
  4. package/entities/src/models.d.ts +4 -7
  5. package/entities/src/updaters/add-entities.d.ts +3 -3
  6. package/entities/src/updaters/add-entity.d.ts +3 -3
  7. package/entities/src/updaters/set-all-entities.d.ts +3 -3
  8. package/entities/src/updaters/set-entities.d.ts +3 -3
  9. package/entities/src/updaters/set-entity.d.ts +3 -3
  10. package/entities/src/updaters/update-all-entities.d.ts +14 -3
  11. package/entities/src/updaters/update-entities.d.ts +45 -11
  12. package/entities/src/updaters/update-entity.d.ts +23 -6
  13. package/entities/src/with-entities.d.ts +7 -7
  14. package/esm2022/entities/src/entity-config.mjs +4 -0
  15. package/esm2022/entities/src/helpers.mjs +28 -12
  16. package/esm2022/entities/src/index.mjs +2 -1
  17. package/esm2022/entities/src/models.mjs +1 -1
  18. package/esm2022/entities/src/updaters/add-entities.mjs +4 -4
  19. package/esm2022/entities/src/updaters/add-entity.mjs +4 -4
  20. package/esm2022/entities/src/updaters/set-all-entities.mjs +4 -4
  21. package/esm2022/entities/src/updaters/set-entities.mjs +4 -4
  22. package/esm2022/entities/src/updaters/set-entity.mjs +4 -4
  23. package/esm2022/entities/src/updaters/update-all-entities.mjs +4 -3
  24. package/esm2022/entities/src/updaters/update-entities.mjs +4 -3
  25. package/esm2022/entities/src/updaters/update-entity.mjs +4 -3
  26. package/esm2022/entities/src/with-entities.mjs +1 -1
  27. package/esm2022/src/signal-store-models.mjs +1 -1
  28. package/esm2022/src/signal-store.mjs +5 -5
  29. package/esm2022/src/with-computed.mjs +10 -7
  30. package/esm2022/src/with-hooks.mjs +3 -3
  31. package/esm2022/src/with-methods.mjs +7 -7
  32. package/esm2022/src/with-state.mjs +7 -7
  33. package/fesm2022/ngrx-signals-entities.mjs +48 -25
  34. package/fesm2022/ngrx-signals-entities.mjs.map +1 -1
  35. package/fesm2022/ngrx-signals.mjs +27 -24
  36. package/fesm2022/ngrx-signals.mjs.map +1 -1
  37. package/package.json +1 -1
  38. package/src/signal-store-models.d.ts +10 -10
  39. package/src/with-computed.d.ts +3 -3
  40. package/src/with-hooks.d.ts +3 -3
  41. package/src/with-methods.d.ts +2 -2
@@ -0,0 +1,17 @@
1
+ import { SelectEntityId } from './models';
2
+ export declare function entityConfig<Entity, Collection extends string>(config: {
3
+ entity: Entity;
4
+ collection: Collection;
5
+ selectId: SelectEntityId<NoInfer<Entity>>;
6
+ }): typeof config;
7
+ export declare function entityConfig<Entity>(config: {
8
+ entity: Entity;
9
+ selectId: SelectEntityId<NoInfer<Entity>>;
10
+ }): typeof config;
11
+ export declare function entityConfig<Entity, Collection extends string>(config: {
12
+ entity: Entity;
13
+ collection: Collection;
14
+ }): typeof config;
15
+ export declare function entityConfig<Entity>(config: {
16
+ entity: Entity;
17
+ }): typeof config;
@@ -1,7 +1,7 @@
1
- import { DidMutate, EntityChanges, EntityId, EntityPredicate, EntityState } from './models';
2
- export declare function getEntityIdKey(config?: {
3
- idKey?: string;
4
- }): string;
1
+ import { DidMutate, EntityChanges, EntityId, EntityPredicate, EntityState, SelectEntityId } from './models';
2
+ export declare function getEntityIdSelector(config?: {
3
+ selectId?: SelectEntityId<any>;
4
+ }): SelectEntityId<any>;
5
5
  export declare function getEntityStateKeys(config?: {
6
6
  collection?: string;
7
7
  }): {
@@ -17,9 +17,9 @@ export declare function getEntityUpdaterResult(state: EntityState<any>, stateKey
17
17
  entityMapKey: string;
18
18
  idsKey: string;
19
19
  }, didMutate: DidMutate): Record<string, any>;
20
- export declare function addEntityMutably(state: EntityState<any>, entity: any, idKey: string): DidMutate;
21
- export declare function addEntitiesMutably(state: EntityState<any>, entities: any[], idKey: string): DidMutate;
22
- export declare function setEntityMutably(state: EntityState<any>, entity: any, idKey: string): DidMutate;
23
- export declare function setEntitiesMutably(state: EntityState<any>, entities: any[], idKey: string): DidMutate;
20
+ export declare function addEntityMutably(state: EntityState<any>, entity: any, selectId: SelectEntityId<any>): DidMutate;
21
+ export declare function addEntitiesMutably(state: EntityState<any>, entities: any[], selectId: SelectEntityId<any>): DidMutate;
22
+ export declare function setEntityMutably(state: EntityState<any>, entity: any, selectId: SelectEntityId<any>): DidMutate;
23
+ export declare function setEntitiesMutably(state: EntityState<any>, entities: any[], selectId: SelectEntityId<any>): DidMutate;
24
24
  export declare function removeEntitiesMutably(state: EntityState<any>, idsOrPredicate: EntityId[] | EntityPredicate<any>): DidMutate;
25
- export declare function updateEntitiesMutably(state: EntityState<any>, idsOrPredicate: EntityId[] | EntityPredicate<any>, changes: EntityChanges<any>): DidMutate;
25
+ export declare function updateEntitiesMutably(state: EntityState<any>, idsOrPredicate: EntityId[] | EntityPredicate<any>, changes: EntityChanges<any>, selectId: SelectEntityId<any>): DidMutate;
@@ -9,5 +9,6 @@ export { setAllEntities } from './updaters/set-all-entities';
9
9
  export { updateEntity } from './updaters/update-entity';
10
10
  export { updateEntities } from './updaters/update-entities';
11
11
  export { updateAllEntities } from './updaters/update-all-entities';
12
- export { EntityId, EntityMap, EntityState, NamedEntityState } from './models';
12
+ export { entityConfig } from './entity-config';
13
+ export { EntityId, EntityMap, EntityState, NamedEntityState, SelectEntityId, } from './models';
13
14
  export { withEntities } from './with-entities';
@@ -8,16 +8,13 @@ export type EntityState<Entity> = {
8
8
  export type NamedEntityState<Entity, Collection extends string> = {
9
9
  [K in keyof EntityState<Entity> as `${Collection}${Capitalize<K>}`]: EntityState<Entity>[K];
10
10
  };
11
- export type EntitySignals<Entity> = {
11
+ export type EntityComputed<Entity> = {
12
12
  entities: Signal<Entity[]>;
13
13
  };
14
- export type NamedEntitySignals<Entity, Collection extends string> = {
15
- [K in keyof EntitySignals<Entity> as `${Collection}${Capitalize<K>}`]: EntitySignals<Entity>[K];
14
+ export type NamedEntityComputed<Entity, Collection extends string> = {
15
+ [K in keyof EntityComputed<Entity> as `${Collection}${Capitalize<K>}`]: EntityComputed<Entity>[K];
16
16
  };
17
- export type EntityIdProps<Entity> = {
18
- [K in keyof Entity as Entity[K] extends EntityId ? K : never]: Entity[K];
19
- };
20
- export type EntityIdKey<Entity> = keyof EntityIdProps<Entity> & string;
17
+ export type SelectEntityId<Entity> = (entity: Entity) => EntityId;
21
18
  export type EntityPredicate<Entity> = (entity: Entity) => boolean;
22
19
  export type EntityChanges<Entity> = Partial<Entity> | ((entity: Entity) => Partial<Entity>);
23
20
  export declare enum DidMutate {
@@ -1,11 +1,11 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityId, EntityIdKey, EntityState, NamedEntityState } from '../models';
2
+ import { EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
3
3
  export declare function addEntities<Entity extends {
4
4
  id: EntityId;
5
5
  }>(entities: Entity[]): PartialStateUpdater<EntityState<Entity>>;
6
6
  export declare function addEntities<Entity, Collection extends string>(entities: Entity[], config: {
7
7
  collection: Collection;
8
- idKey: EntityIdKey<Entity>;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
9
9
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
10
10
  export declare function addEntities<Entity extends {
11
11
  id: EntityId;
@@ -13,5 +13,5 @@ export declare function addEntities<Entity extends {
13
13
  collection: Collection;
14
14
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
15
15
  export declare function addEntities<Entity>(entities: Entity[], config: {
16
- idKey: EntityIdKey<Entity>;
16
+ selectId: SelectEntityId<NoInfer<Entity>>;
17
17
  }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,11 +1,11 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityId, EntityIdKey, EntityState, NamedEntityState } from '../models';
2
+ import { EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
3
3
  export declare function addEntity<Entity extends {
4
4
  id: EntityId;
5
5
  }>(entity: Entity): PartialStateUpdater<EntityState<Entity>>;
6
6
  export declare function addEntity<Entity, Collection extends string>(entity: Entity, config: {
7
7
  collection: Collection;
8
- idKey: EntityIdKey<Entity>;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
9
9
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
10
10
  export declare function addEntity<Entity extends {
11
11
  id: EntityId;
@@ -13,5 +13,5 @@ export declare function addEntity<Entity extends {
13
13
  collection: Collection;
14
14
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
15
15
  export declare function addEntity<Entity>(entity: Entity, config: {
16
- idKey: EntityIdKey<Entity>;
16
+ selectId: SelectEntityId<NoInfer<Entity>>;
17
17
  }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,11 +1,11 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityId, EntityIdKey, EntityState, NamedEntityState } from '../models';
2
+ import { EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
3
3
  export declare function setAllEntities<Entity extends {
4
4
  id: EntityId;
5
5
  }>(entities: Entity[]): PartialStateUpdater<EntityState<Entity>>;
6
6
  export declare function setAllEntities<Entity, Collection extends string>(entities: Entity[], config: {
7
7
  collection: Collection;
8
- idKey: EntityIdKey<Entity>;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
9
9
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
10
10
  export declare function setAllEntities<Entity extends {
11
11
  id: EntityId;
@@ -13,5 +13,5 @@ export declare function setAllEntities<Entity extends {
13
13
  collection: Collection;
14
14
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
15
15
  export declare function setAllEntities<Entity>(entities: Entity[], config: {
16
- idKey: EntityIdKey<Entity>;
16
+ selectId: SelectEntityId<NoInfer<Entity>>;
17
17
  }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,11 +1,11 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityId, EntityIdKey, EntityState, NamedEntityState } from '../models';
2
+ import { EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
3
3
  export declare function setEntities<Entity extends {
4
4
  id: EntityId;
5
5
  }>(entities: Entity[]): PartialStateUpdater<EntityState<Entity>>;
6
6
  export declare function setEntities<Entity, Collection extends string>(entities: Entity[], config: {
7
7
  collection: Collection;
8
- idKey: EntityIdKey<Entity>;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
9
9
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
10
10
  export declare function setEntities<Entity extends {
11
11
  id: EntityId;
@@ -13,5 +13,5 @@ export declare function setEntities<Entity extends {
13
13
  collection: Collection;
14
14
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
15
15
  export declare function setEntities<Entity>(entities: Entity[], config: {
16
- idKey: EntityIdKey<Entity>;
16
+ selectId: SelectEntityId<NoInfer<Entity>>;
17
17
  }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,11 +1,11 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityId, EntityIdKey, EntityState, NamedEntityState } from '../models';
2
+ import { EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
3
3
  export declare function setEntity<Entity extends {
4
4
  id: EntityId;
5
5
  }>(entity: Entity): PartialStateUpdater<EntityState<Entity>>;
6
6
  export declare function setEntity<Entity, Collection extends string>(entity: Entity, config: {
7
7
  collection: Collection;
8
- idKey: EntityIdKey<Entity>;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
9
9
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
10
10
  export declare function setEntity<Entity extends {
11
11
  id: EntityId;
@@ -13,5 +13,5 @@ export declare function setEntity<Entity extends {
13
13
  collection: Collection;
14
14
  }): PartialStateUpdater<NamedEntityState<Entity, Collection>>;
15
15
  export declare function setEntity<Entity>(entity: Entity, config: {
16
- idKey: EntityIdKey<Entity>;
16
+ selectId: SelectEntityId<NoInfer<Entity>>;
17
17
  }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,6 +1,17 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityChanges, EntityState, NamedEntityState } from '../models';
3
- export declare function updateAllEntities<Entity>(changes: EntityChanges<Entity & {}>): PartialStateUpdater<EntityState<Entity>>;
4
- export declare function updateAllEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E, Collection> ? E : never>(changes: EntityChanges<Entity & {}>, config: {
2
+ import { EntityChanges, EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
3
+ export declare function updateAllEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E, Collection> ? E : never>(changes: EntityChanges<NoInfer<Entity>>, config: {
5
4
  collection: Collection;
5
+ selectId: SelectEntityId<NoInfer<Entity>>;
6
6
  }): PartialStateUpdater<State>;
7
+ export declare function updateAllEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E extends {
8
+ id: EntityId;
9
+ }, Collection> ? E : never>(changes: EntityChanges<NoInfer<Entity>>, config: {
10
+ collection: Collection;
11
+ }): PartialStateUpdater<State>;
12
+ export declare function updateAllEntities<Entity>(changes: EntityChanges<NoInfer<Entity>>, config: {
13
+ selectId: SelectEntityId<NoInfer<Entity>>;
14
+ }): PartialStateUpdater<EntityState<Entity>>;
15
+ export declare function updateAllEntities<Entity extends {
16
+ id: EntityId;
17
+ }>(changes: EntityChanges<NoInfer<Entity>>): PartialStateUpdater<EntityState<Entity>>;
@@ -1,22 +1,56 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityChanges, EntityId, EntityPredicate, EntityState, NamedEntityState } from '../models';
3
- export declare function updateEntities<Entity>(update: {
4
- ids: EntityId[];
5
- changes: EntityChanges<Entity & {}>;
6
- }): PartialStateUpdater<EntityState<Entity>>;
7
- export declare function updateEntities<Entity>(update: {
8
- predicate: EntityPredicate<Entity>;
9
- changes: EntityChanges<Entity & {}>;
10
- }): PartialStateUpdater<EntityState<Entity>>;
2
+ import { EntityChanges, EntityId, EntityPredicate, EntityState, NamedEntityState, SelectEntityId } from '../models';
11
3
  export declare function updateEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E, Collection> ? E : never>(update: {
12
4
  ids: EntityId[];
13
- changes: EntityChanges<Entity & {}>;
5
+ changes: EntityChanges<NoInfer<Entity>>;
14
6
  }, config: {
15
7
  collection: Collection;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
16
9
  }): PartialStateUpdater<State>;
17
10
  export declare function updateEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E, Collection> ? E : never>(update: {
18
11
  predicate: EntityPredicate<Entity>;
19
- changes: EntityChanges<Entity & {}>;
12
+ changes: EntityChanges<NoInfer<Entity>>;
13
+ }, config: {
14
+ collection: Collection;
15
+ selectId: SelectEntityId<NoInfer<Entity>>;
16
+ }): PartialStateUpdater<State>;
17
+ export declare function updateEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E extends {
18
+ id: EntityId;
19
+ }, Collection> ? E : never>(update: {
20
+ ids: EntityId[];
21
+ changes: EntityChanges<NoInfer<Entity>>;
22
+ }, config: {
23
+ collection: Collection;
24
+ }): PartialStateUpdater<State>;
25
+ export declare function updateEntities<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E extends {
26
+ id: EntityId;
27
+ }, Collection> ? E : never>(update: {
28
+ predicate: EntityPredicate<Entity>;
29
+ changes: EntityChanges<NoInfer<Entity>>;
20
30
  }, config: {
21
31
  collection: Collection;
22
32
  }): PartialStateUpdater<State>;
33
+ export declare function updateEntities<Entity>(update: {
34
+ ids: EntityId[];
35
+ changes: EntityChanges<NoInfer<Entity>>;
36
+ }, config: {
37
+ selectId: SelectEntityId<NoInfer<Entity>>;
38
+ }): PartialStateUpdater<EntityState<Entity>>;
39
+ export declare function updateEntities<Entity>(update: {
40
+ predicate: EntityPredicate<Entity>;
41
+ changes: EntityChanges<NoInfer<Entity>>;
42
+ }, config: {
43
+ selectId: SelectEntityId<NoInfer<Entity>>;
44
+ }): PartialStateUpdater<EntityState<Entity>>;
45
+ export declare function updateEntities<Entity extends {
46
+ id: EntityId;
47
+ }>(update: {
48
+ ids: EntityId[];
49
+ changes: EntityChanges<NoInfer<Entity>>;
50
+ }): PartialStateUpdater<EntityState<Entity>>;
51
+ export declare function updateEntities<Entity extends {
52
+ id: EntityId;
53
+ }>(update: {
54
+ predicate: EntityPredicate<Entity>;
55
+ changes: EntityChanges<NoInfer<Entity>>;
56
+ }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,12 +1,29 @@
1
1
  import { PartialStateUpdater } from '@ngrx/signals';
2
- import { EntityChanges, EntityId, EntityState, NamedEntityState } from '../models';
3
- export declare function updateEntity<Entity>(update: {
4
- id: EntityId;
5
- changes: EntityChanges<Entity & {}>;
6
- }): PartialStateUpdater<EntityState<Entity>>;
2
+ import { EntityChanges, EntityId, EntityState, NamedEntityState, SelectEntityId } from '../models';
7
3
  export declare function updateEntity<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E, Collection> ? E : never>(update: {
8
4
  id: EntityId;
9
- changes: EntityChanges<Entity & {}>;
5
+ changes: EntityChanges<NoInfer<Entity>>;
6
+ }, config: {
7
+ collection: Collection;
8
+ selectId: SelectEntityId<NoInfer<Entity>>;
9
+ }): PartialStateUpdater<State>;
10
+ export declare function updateEntity<Collection extends string, State extends NamedEntityState<any, Collection>, Entity = State extends NamedEntityState<infer E extends {
11
+ id: EntityId;
12
+ }, Collection> ? E : never>(update: {
13
+ id: EntityId;
14
+ changes: EntityChanges<NoInfer<Entity>>;
10
15
  }, config: {
11
16
  collection: Collection;
12
17
  }): PartialStateUpdater<State>;
18
+ export declare function updateEntity<Entity>(update: {
19
+ id: EntityId;
20
+ changes: EntityChanges<NoInfer<Entity>>;
21
+ }, config: {
22
+ selectId: SelectEntityId<NoInfer<Entity>>;
23
+ }): PartialStateUpdater<EntityState<Entity>>;
24
+ export declare function updateEntity<Entity extends {
25
+ id: EntityId;
26
+ }>(update: {
27
+ id: EntityId;
28
+ changes: EntityChanges<NoInfer<Entity>>;
29
+ }): PartialStateUpdater<EntityState<Entity>>;
@@ -1,12 +1,12 @@
1
1
  import { SignalStoreFeature } from '@ngrx/signals';
2
- import { EntitySignals, EntityState, NamedEntitySignals, NamedEntityState } from './models';
2
+ import { EntityComputed, EntityState, NamedEntityComputed, NamedEntityState } from './models';
3
3
  export declare function withEntities<Entity>(): SignalStoreFeature<{
4
4
  state: {};
5
- signals: {};
5
+ computed: {};
6
6
  methods: {};
7
7
  }, {
8
8
  state: EntityState<Entity>;
9
- signals: EntitySignals<Entity>;
9
+ computed: EntityComputed<Entity>;
10
10
  methods: {};
11
11
  }>;
12
12
  export declare function withEntities<Entity, Collection extends string>(config: {
@@ -14,21 +14,21 @@ export declare function withEntities<Entity, Collection extends string>(config:
14
14
  collection: Collection;
15
15
  }): SignalStoreFeature<{
16
16
  state: {};
17
- signals: {};
17
+ computed: {};
18
18
  methods: {};
19
19
  }, {
20
20
  state: NamedEntityState<Entity, Collection>;
21
- signals: NamedEntitySignals<Entity, Collection>;
21
+ computed: NamedEntityComputed<Entity, Collection>;
22
22
  methods: {};
23
23
  }>;
24
24
  export declare function withEntities<Entity>(config: {
25
25
  entity: Entity;
26
26
  }): SignalStoreFeature<{
27
27
  state: {};
28
- signals: {};
28
+ computed: {};
29
29
  methods: {};
30
30
  }, {
31
31
  state: EntityState<Entity>;
32
- signals: EntitySignals<Entity>;
32
+ computed: EntityComputed<Entity>;
33
33
  methods: {};
34
34
  }>;
@@ -0,0 +1,4 @@
1
+ export function entityConfig(config) {
2
+ return config;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvZW50aXR5LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxVQUFVLFlBQVksQ0FBUyxNQUlwQztJQUNDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RFbnRpdHlJZCB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eUNvbmZpZzxFbnRpdHksIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KGNvbmZpZzoge1xuICBlbnRpdHk6IEVudGl0eTtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbiAgc2VsZWN0SWQ6IFNlbGVjdEVudGl0eUlkPE5vSW5mZXI8RW50aXR5Pj47XG59KTogdHlwZW9mIGNvbmZpZztcbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlDb25maWc8RW50aXR5Pihjb25maWc6IHtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHNlbGVjdElkOiBTZWxlY3RFbnRpdHlJZDxOb0luZmVyPEVudGl0eT4+O1xufSk6IHR5cGVvZiBjb25maWc7XG5leHBvcnQgZnVuY3Rpb24gZW50aXR5Q29uZmlnPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGVudGl0eTogRW50aXR5O1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IHR5cGVvZiBjb25maWc7XG5leHBvcnQgZnVuY3Rpb24gZW50aXR5Q29uZmlnPEVudGl0eT4oY29uZmlnOiB7IGVudGl0eTogRW50aXR5IH0pOiB0eXBlb2YgY29uZmlnO1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eUNvbmZpZzxFbnRpdHk+KGNvbmZpZzoge1xuICBlbnRpdHk6IEVudGl0eTtcbiAgY29sbGVjdGlvbj86IHN0cmluZztcbiAgc2VsZWN0SWQ/OiBTZWxlY3RFbnRpdHlJZDxFbnRpdHk+O1xufSk6IHR5cGVvZiBjb25maWcge1xuICByZXR1cm4gY29uZmlnO1xufVxuIl19
@@ -1,6 +1,7 @@
1
1
  import { DidMutate, } from './models';
2
- export function getEntityIdKey(config) {
3
- return config?.idKey ?? 'id';
2
+ const defaultSelectId = (entity) => entity.id;
3
+ export function getEntityIdSelector(config) {
4
+ return config?.selectId ?? defaultSelectId;
4
5
  }
5
6
  export function getEntityStateKeys(config) {
6
7
  const collection = config?.collection;
@@ -31,8 +32,8 @@ export function getEntityUpdaterResult(state, stateKeys, didMutate) {
31
32
  }
32
33
  }
33
34
  }
34
- export function addEntityMutably(state, entity, idKey) {
35
- const id = entity[idKey];
35
+ export function addEntityMutably(state, entity, selectId) {
36
+ const id = selectId(entity);
36
37
  if (state.entityMap[id]) {
37
38
  return DidMutate.None;
38
39
  }
@@ -40,18 +41,18 @@ export function addEntityMutably(state, entity, idKey) {
40
41
  state.ids.push(id);
41
42
  return DidMutate.Both;
42
43
  }
43
- export function addEntitiesMutably(state, entities, idKey) {
44
+ export function addEntitiesMutably(state, entities, selectId) {
44
45
  let didMutate = DidMutate.None;
45
46
  for (const entity of entities) {
46
- const result = addEntityMutably(state, entity, idKey);
47
+ const result = addEntityMutably(state, entity, selectId);
47
48
  if (result === DidMutate.Both) {
48
49
  didMutate = result;
49
50
  }
50
51
  }
51
52
  return didMutate;
52
53
  }
53
- export function setEntityMutably(state, entity, idKey) {
54
- const id = entity[idKey];
54
+ export function setEntityMutably(state, entity, selectId) {
55
+ const id = selectId(entity);
55
56
  if (state.entityMap[id]) {
56
57
  state.entityMap[id] = entity;
57
58
  return DidMutate.Entities;
@@ -60,10 +61,10 @@ export function setEntityMutably(state, entity, idKey) {
60
61
  state.ids.push(id);
61
62
  return DidMutate.Both;
62
63
  }
63
- export function setEntitiesMutably(state, entities, idKey) {
64
+ export function setEntitiesMutably(state, entities, selectId) {
64
65
  let didMutate = DidMutate.None;
65
66
  for (const entity of entities) {
66
- const result = setEntityMutably(state, entity, idKey);
67
+ const result = setEntityMutably(state, entity, selectId);
67
68
  if (didMutate === DidMutate.Both) {
68
69
  continue;
69
70
  }
@@ -87,10 +88,11 @@ export function removeEntitiesMutably(state, idsOrPredicate) {
87
88
  }
88
89
  return didMutate;
89
90
  }
90
- export function updateEntitiesMutably(state, idsOrPredicate, changes) {
91
+ export function updateEntitiesMutably(state, idsOrPredicate, changes, selectId) {
91
92
  const ids = Array.isArray(idsOrPredicate)
92
93
  ? idsOrPredicate
93
94
  : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));
95
+ let newIds = undefined;
94
96
  let didMutate = DidMutate.None;
95
97
  for (const id of ids) {
96
98
  const entity = state.entityMap[id];
@@ -98,8 +100,22 @@ export function updateEntitiesMutably(state, idsOrPredicate, changes) {
98
100
  const changesRecord = typeof changes === 'function' ? changes(entity) : changes;
99
101
  state.entityMap[id] = { ...entity, ...changesRecord };
100
102
  didMutate = DidMutate.Entities;
103
+ const newId = selectId(state.entityMap[id]);
104
+ if (newId !== id) {
105
+ state.entityMap[newId] = state.entityMap[id];
106
+ delete state.entityMap[id];
107
+ newIds = newIds || {};
108
+ newIds[id] = newId;
109
+ }
101
110
  }
102
111
  }
112
+ if (newIds) {
113
+ state.ids = state.ids.map((id) => newIds[id] ?? id);
114
+ didMutate = DidMutate.Both;
115
+ }
116
+ if (ngDevMode && state.ids.length !== Object.keys(state.entityMap).length) {
117
+ console.warn('@ngrx/signals/entities: Entities with IDs:', ids, 'are not updated correctly.', 'Make sure to apply valid changes when using `updateEntity`,', '`updateEntities`, and `updateAllEntities` updaters.');
118
+ }
103
119
  return didMutate;
104
120
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUtWLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBMkI7SUFDeEQsT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWdDO0lBS2pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDdEMsTUFBTSxZQUFZLEdBQ2hCLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLFdBQVcsQ0FBQztJQUNwRSxNQUFNLE1BQU0sR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxLQUFLLENBQUM7SUFDckUsTUFBTSxXQUFXLEdBQ2YsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsVUFBVSxDQUFDO0lBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQTBCLEVBQzFCLFNBR0M7SUFFRCxPQUFPO1FBQ0wsU0FBUyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQy9DLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FD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QUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFFL0IsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLGFBQWEsR0FDakIsT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUM1RCxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztZQUN0RCxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaWRNdXRhdGUsXG4gIEVudGl0eUNoYW5nZXMsXG4gIEVudGl0eUlkLFxuICBFbnRpdHlQcmVkaWNhdGUsXG4gIEVudGl0eVN0YXRlLFxufSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdHlJZEtleShjb25maWc/OiB7IGlkS2V5Pzogc3RyaW5nIH0pOiBzdHJpbmcge1xuICByZXR1cm4gY29uZmlnPy5pZEtleSA/PyAnaWQnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZz86IHsgY29sbGVjdGlvbj86IHN0cmluZyB9KToge1xuICBlbnRpdHlNYXBLZXk6IHN0cmluZztcbiAgaWRzS2V5OiBzdHJpbmc7XG4gIGVudGl0aWVzS2V5OiBzdHJpbmc7XG59IHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGNvbmZpZz8uY29sbGVjdGlvbjtcbiAgY29uc3QgZW50aXR5TWFwS2V5ID1cbiAgICBjb2xsZWN0aW9uID09PSB1bmRlZmluZWQgPyAnZW50aXR5TWFwJyA6IGAke2NvbGxlY3Rpb259RW50aXR5TWFwYDtcbiAgY29uc3QgaWRzS2V5ID0gY29sbGVjdGlvbiA9PT0gdW5kZWZpbmVkID8gJ2lkcycgOiBgJHtjb2xsZWN0aW9ufUlkc2A7XG4gIGNvbnN0IGVudGl0aWVzS2V5ID1cbiAgICBjb2xsZWN0aW9uID09PSB1bmRlZmluZWQgPyAnZW50aXRpZXMnIDogYCR7Y29sbGVjdGlvbn1FbnRpdGllc2A7XG5cbiAgcmV0dXJuIHsgZW50aXR5TWFwS2V5LCBpZHNLZXksIGVudGl0aWVzS2V5IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZUVudGl0eVN0YXRlKFxuICBzdGF0ZTogUmVjb3JkPHN0cmluZywgYW55PixcbiAgc3RhdGVLZXlzOiB7XG4gICAgZW50aXR5TWFwS2V5OiBzdHJpbmc7XG4gICAgaWRzS2V5OiBzdHJpbmc7XG4gIH1cbik6IEVudGl0eVN0YXRlPGFueT4ge1xuICByZXR1cm4ge1xuICAgIGVudGl0eU1hcDogeyAuLi5zdGF0ZVtzdGF0ZUtleXMuZW50aXR5TWFwS2V5XSB9LFxuICAgIGlkczogWy4uLnN0YXRlW3N0YXRlS2V5cy5pZHNLZXldXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eVVwZGF0ZXJSZXN1bHQoXG4gIHN0YXRlOiBFbnRpdHlTdGF0ZTxhbnk+LFxuICBzdGF0ZUtleXM6IHtcbiAgICBlbnRpdHlNYXBLZXk6IHN0cmluZztcbiAgICBpZHNLZXk6IHN0cmluZztcbiAgfSxcbiAgZGlkTXV0YXRlOiBEaWRNdXRhdGVcbik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBzd2l0Y2ggKGRpZE11dGF0ZSkge1xuICAgIGNhc2UgRGlkTXV0YXRlLkJvdGg6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtzdGF0ZUtleXMuZW50aXR5TWFwS2V5XTogc3RhdGUuZW50aXR5TWFwLFxuICAgICAgICBbc3RhdGVLZXlzLmlkc0tleV06IHN0YXRlLmlkcyxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgRGlkTXV0YXRlLkVudGl0aWVzOiB7XG4gICAgICByZXR1cm4geyBbc3RhdGVLZXlzLmVudGl0eU1hcEtleV06IHN0YXRlLmVudGl0eU1hcCB9O1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdHlNdXRhYmx5KFxuICBzdGF0ZTogRW50aXR5U3RhdGU8YW55PixcbiAgZW50aXR5OiBhbnksXG4gIGlkS2V5OiBzdHJpbmdcbik6IERpZE11dGF0ZSB7XG4gIGNvbnN0IGlkID0gZW50aXR5W2lkS2V5XTtcblxuICBpZiAoc3RhdGUuZW50aXR5TWFwW2lkXSkge1xuICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgfVxuXG4gIHN0YXRlLmVudGl0eU1hcFtpZF0gPSBlbnRpdHk7XG4gIHN0YXRlLmlkcy5wdXNoKGlkKTtcblxuICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdGllc011dGFibHkoXG4gIHN0YXRlOiBFbnRpdHlTdGF0ZTxhbnk+LFxuICBlbnRpdGllczogYW55W10sXG4gIGlkS2V5OiBzdHJpbmdcbik6IERpZE11dGF0ZSB7XG4gIGxldCBkaWRNdXRhdGUgPSBEaWRNdXRhdGUuTm9uZTtcblxuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGFkZEVudGl0eU11dGFibHkoc3RhdGUsIGVudGl0eSwgaWRLZXkpO1xuXG4gICAgaWYgKHJlc3VsdCA9PT0gRGlkTXV0YXRlLkJvdGgpIHtcbiAgICAgIGRpZE11dGF0ZSA9IHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlkTXV0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW50aXR5TXV0YWJseShcbiAgc3RhdGU6IEVudGl0eVN0YXRlPGFueT4sXG4gIGVudGl0eTogYW55LFxuICBpZEtleTogc3RyaW5nXG4pOiBEaWRNdXRhdGUge1xuICBjb25zdCBpZCA9IGVudGl0eVtpZEtleV07XG5cbiAgaWYgKHN0YXRlLmVudGl0eU1hcFtpZF0pIHtcbiAgICBzdGF0ZS5lbnRpdHlNYXBbaWRdID0gZW50aXR5O1xuICAgIHJldHVybiBEaWRNdXRhdGUuRW50aXRpZXM7XG4gIH1cblxuICBzdGF0ZS5lbnRpdHlNYXBbaWRdID0gZW50aXR5O1xuICBzdGF0ZS5pZHMucHVzaChpZCk7XG5cbiAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW50aXRpZXNNdXRhYmx5KFxuICBzdGF0ZTogRW50aXR5U3RhdGU8YW55PixcbiAgZW50aXRpZXM6IGFueVtdLFxuICBpZEtleTogc3RyaW5nXG4pOiBEaWRNdXRhdGUge1xuICBsZXQgZGlkTXV0YXRlID0gRGlkTXV0YXRlLk5vbmU7XG5cbiAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSBzZXRFbnRpdHlNdXRhYmx5KHN0YXRlLCBlbnRpdHksIGlkS2V5KTtcblxuICAgIGlmIChkaWRNdXRhdGUgPT09IERpZE11dGF0ZS5Cb3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBkaWRNdXRhdGUgPSByZXN1bHQ7XG4gIH1cblxuICByZXR1cm4gZGlkTXV0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRW50aXRpZXNNdXRhYmx5KFxuICBzdGF0ZTogRW50aXR5U3RhdGU8YW55PixcbiAgaWRzT3JQcmVkaWNhdGU6IEVudGl0eUlkW10gfCBFbnRpdHlQcmVkaWNhdGU8YW55PlxuKTogRGlkTXV0YXRlIHtcbiAgY29uc3QgaWRzID0gQXJyYXkuaXNBcnJheShpZHNPclByZWRpY2F0ZSlcbiAgICA/IGlkc09yUHJlZGljYXRlXG4gICAgOiBzdGF0ZS5pZHMuZmlsdGVyKChpZCkgPT4gaWRzT3JQcmVkaWNhdGUoc3RhdGUuZW50aXR5TWFwW2lkXSkpO1xuICBsZXQgZGlkTXV0YXRlID0gRGlkTXV0YXRlLk5vbmU7XG5cbiAgZm9yIChjb25zdCBpZCBvZiBpZHMpIHtcbiAgICBpZiAoc3RhdGUuZW50aXR5TWFwW2lkXSkge1xuICAgICAgZGVsZXRlIHN0YXRlLmVudGl0eU1hcFtpZF07XG4gICAgICBkaWRNdXRhdGUgPSBEaWRNdXRhdGUuQm90aDtcbiAgICB9XG4gIH1cblxuICBpZiAoZGlkTXV0YXRlID09PSBEaWRNdXRhdGUuQm90aCkge1xuICAgIHN0YXRlLmlkcyA9IHN0YXRlLmlkcy5maWx0ZXIoKGlkKSA9PiBpZCBpbiBzdGF0ZS5lbnRpdHlNYXApO1xuICB9XG5cbiAgcmV0dXJuIGRpZE11dGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUVudGl0aWVzTXV0YWJseShcbiAgc3RhdGU6IEVudGl0eVN0YXRlPGFueT4sXG4gIGlkc09yUHJlZGljYXRlOiBFbnRpdHlJZFtdIHwgRW50aXR5UHJlZGljYXRlPGFueT4sXG4gIGNoYW5nZXM6IEVudGl0eUNoYW5nZXM8YW55PlxuKTogRGlkTXV0YXRlIHtcbiAgY29uc3QgaWRzID0gQXJyYXkuaXNBcnJheShpZHNPclByZWRpY2F0ZSlcbiAgICA/IGlkc09yUHJlZGljYXRlXG4gICAgOiBzdGF0ZS5pZHMuZmlsdGVyKChpZCkgPT4gaWRzT3JQcmVkaWNhdGUoc3RhdGUuZW50aXR5TWFwW2lkXSkpO1xuICBsZXQgZGlkTXV0YXRlID0gRGlkTXV0YXRlLk5vbmU7XG5cbiAgZm9yIChjb25zdCBpZCBvZiBpZHMpIHtcbiAgICBjb25zdCBlbnRpdHkgPSBzdGF0ZS5lbnRpdHlNYXBbaWRdO1xuXG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgY29uc3QgY2hhbmdlc1JlY29yZCA9XG4gICAgICAgIHR5cGVvZiBjaGFuZ2VzID09PSAnZnVuY3Rpb24nID8gY2hhbmdlcyhlbnRpdHkpIDogY2hhbmdlcztcbiAgICAgIHN0YXRlLmVudGl0eU1hcFtpZF0gPSB7IC4uLmVudGl0eSwgLi4uY2hhbmdlc1JlY29yZCB9O1xuICAgICAgZGlkTXV0YXRlID0gRGlkTXV0YXRlLkVudGl0aWVzO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaWRNdXRhdGU7XG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQU1WLE1BQU0sVUFBVSxDQUFDO0FBR2xCLE1BQU0sZUFBZSxHQUFxQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUVoRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFFbkM7SUFDQyxPQUFPLE1BQU0sRUFBRSxRQUFRLElBQUksZUFBZSxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBZ0M7SUFLakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUN0QyxNQUFNLFlBQVksR0FDaEIsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsV0FBVyxDQUFDO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEtBQUssQ0FBQztJQUNyRSxNQUFNLFdBQVcsR0FDZixVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxVQUFVLENBQUM7SUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsS0FBMEIsRUFDMUIsU0FHQztJQUVELE9BQU87UUFDTCxTQUFTLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDL0MsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsU0FB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O0lBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUUsT0FBTyxDQUFDLElBQUksQ0FDViw0Q0FBNEMsRUFDNUMsR0FBRyxFQUNILDRCQUE0QixFQUM1Qiw2REFBNkQsRUFDN0QscURBQXFELENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpZE11dGF0ZSxcbiAgRW50aXR5Q2hhbmdlcyxcbiAgRW50aXR5SWQsXG4gIEVudGl0eVByZWRpY2F0ZSxcbiAgRW50aXR5U3RhdGUsXG4gIFNlbGVjdEVudGl0eUlkLFxufSBmcm9tICcuL21vZGVscyc7XG5cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiB1bmtub3duO1xuY29uc3QgZGVmYXVsdFNlbGVjdElkOiBTZWxlY3RFbnRpdHlJZDx7IGlkOiBFbnRpdHlJZCB9PiA9IChlbnRpdHkpID0+IGVudGl0eS5pZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eUlkU2VsZWN0b3IoY29uZmlnPzoge1xuICBzZWxlY3RJZD86IFNlbGVjdEVudGl0eUlkPGFueT47XG59KTogU2VsZWN0RW50aXR5SWQ8YW55PiB7XG4gIHJldHVybiBjb25maWc/LnNlbGVjdElkID8/IGRlZmF1bHRTZWxlY3RJZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eVN0YXRlS2V5cyhjb25maWc/OiB7IGNvbGxlY3Rpb24/OiBzdHJpbmcgfSk6IHtcbiAgZW50aXR5TWFwS2V5OiBzdHJpbmc7XG4gIGlkc0tleTogc3RyaW5nO1xuICBlbnRpdGllc0tleTogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBjb25maWc/LmNvbGxlY3Rpb247XG4gIGNvbnN0IGVudGl0eU1hcEtleSA9XG4gICAgY29sbGVjdGlvbiA9PT0gdW5kZWZpbmVkID8gJ2VudGl0eU1hcCcgOiBgJHtjb2xsZWN0aW9ufUVudGl0eU1hcGA7XG4gIGNvbnN0IGlkc0tleSA9IGNvbGxlY3Rpb24gPT09IHVuZGVmaW5lZCA/ICdpZHMnIDogYCR7Y29sbGVjdGlvbn1JZHNgO1xuICBjb25zdCBlbnRpdGllc0tleSA9XG4gICAgY29sbGVjdGlvbiA9PT0gdW5kZWZpbmVkID8gJ2VudGl0aWVzJyA6IGAke2NvbGxlY3Rpb259RW50aXRpZXNgO1xuXG4gIHJldHVybiB7IGVudGl0eU1hcEtleSwgaWRzS2V5LCBlbnRpdGllc0tleSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVFbnRpdHlTdGF0ZShcbiAgc3RhdGU6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIHN0YXRlS2V5czoge1xuICAgIGVudGl0eU1hcEtleTogc3RyaW5nO1xuICAgIGlkc0tleTogc3RyaW5nO1xuICB9XG4pOiBFbnRpdHlTdGF0ZTxhbnk+IHtcbiAgcmV0dXJuIHtcbiAgICBlbnRpdHlNYXA6IHsgLi4uc3RhdGVbc3RhdGVLZXlzLmVudGl0eU1hcEtleV0gfSxcbiAgICBpZHM6IFsuLi5zdGF0ZVtzdGF0ZUtleXMuaWRzS2V5XV0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdHlVcGRhdGVyUmVzdWx0KFxuICBzdGF0ZTogRW50aXR5U3RhdGU8YW55PixcbiAgc3RhdGVLZXlzOiB7XG4gICAgZW50aXR5TWFwS2V5OiBzdHJpbmc7XG4gICAgaWRzS2V5OiBzdHJpbmc7XG4gIH0sXG4gIGRpZE11dGF0ZTogRGlkTXV0YXRlXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgc3dpdGNoIChkaWRNdXRhdGUpIHtcbiAgICBjYXNlIERpZE11dGF0ZS5Cb3RoOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbc3RhdGVLZXlzLmVudGl0eU1hcEtleV06IHN0YXRlLmVudGl0eU1hcCxcbiAgICAgICAgW3N0YXRlS2V5cy5pZHNLZXldOiBzdGF0ZS5pZHMsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIERpZE11dGF0ZS5FbnRpdGllczoge1xuICAgICAgcmV0dXJuIHsgW3N0YXRlS2V5cy5lbnRpdHlNYXBLZXldOiBzdGF0ZS5lbnRpdHlNYXAgfTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkRW50aXR5TXV0YWJseShcbiAgc3RhdGU6IEVudGl0eVN0YXRlPGFueT4sXG4gIGVudGl0eTogYW55LFxuICBzZWxlY3RJZDogU2VsZWN0RW50aXR5SWQ8YW55PlxuKTogRGlkTXV0YXRlIHtcbiAgY29uc3QgaWQgPSBzZWxlY3RJZChlbnRpdHkpO1xuXG4gIGlmIChzdGF0ZS5lbnRpdHlNYXBbaWRdKSB7XG4gICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICB9XG5cbiAgc3RhdGUuZW50aXR5TWFwW2lkXSA9IGVudGl0eTtcbiAgc3RhdGUuaWRzLnB1c2goaWQpO1xuXG4gIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0aWVzTXV0YWJseShcbiAgc3RhdGU6IEVudGl0eVN0YXRlPGFueT4sXG4gIGVudGl0aWVzOiBhbnlbXSxcbiAgc2VsZWN0SWQ6IFNlbGVjdEVudGl0eUlkPGFueT5cbik6IERpZE11dGF0ZSB7XG4gIGxldCBkaWRNdXRhdGUgPSBEaWRNdXRhdGUuTm9uZTtcblxuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGFkZEVudGl0eU11dGFibHkoc3RhdGUsIGVudGl0eSwgc2VsZWN0SWQpO1xuXG4gICAgaWYgKHJlc3VsdCA9PT0gRGlkTXV0YXRlLkJvdGgpIHtcbiAgICAgIGRpZE11dGF0ZSA9IHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlkTXV0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW50aXR5TXV0YWJseShcbiAgc3RhdGU6IEVudGl0eVN0YXRlPGFueT4sXG4gIGVudGl0eTogYW55LFxuICBzZWxlY3RJZDogU2VsZWN0RW50aXR5SWQ8YW55PlxuKTogRGlkTXV0YXRlIHtcbiAgY29uc3QgaWQgPSBzZWxlY3RJZChlbnRpdHkpO1xuXG4gIGlmIChzdGF0ZS5lbnRpdHlNYXBbaWRdKSB7XG4gICAgc3RhdGUuZW50aXR5TWFwW2lkXSA9IGVudGl0eTtcbiAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzO1xuICB9XG5cbiAgc3RhdGUuZW50aXR5TWFwW2lkXSA9IGVudGl0eTtcbiAgc3RhdGUuaWRzLnB1c2goaWQpO1xuXG4gIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVudGl0aWVzTXV0YWJseShcbiAgc3RhdGU6IEVudGl0eVN0YXRlPGFueT4sXG4gIGVudGl0aWVzOiBhbnlbXSxcbiAgc2VsZWN0SWQ6IFNlbGVjdEVudGl0eUlkPGFueT5cbik6IERpZE11dGF0ZSB7XG4gIGxldCBkaWRNdXRhdGUgPSBEaWRNdXRhdGUuTm9uZTtcblxuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHNldEVudGl0eU11dGFibHkoc3RhdGUsIGVudGl0eSwgc2VsZWN0SWQpO1xuXG4gICAgaWYgKGRpZE11dGF0ZSA9PT0gRGlkTXV0YXRlLkJvdGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGRpZE11dGF0ZSA9IHJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiBkaWRNdXRhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbnRpdGllc011dGFibHkoXG4gIHN0YXRlOiBFbnRpdHlTdGF0ZTxhbnk+LFxuICBpZHNPclByZWRpY2F0ZTogRW50aXR5SWRbXSB8IEVudGl0eVByZWRpY2F0ZTxhbnk+XG4pOiBEaWRNdXRhdGUge1xuICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGlkc09yUHJlZGljYXRlKVxuICAgID8gaWRzT3JQcmVkaWNhdGVcbiAgICA6IHN0YXRlLmlkcy5maWx0ZXIoKGlkKSA9PiBpZHNPclByZWRpY2F0ZShzdGF0ZS5lbnRpdHlNYXBbaWRdKSk7XG4gIGxldCBkaWRNdXRhdGUgPSBEaWRNdXRhdGUuTm9uZTtcblxuICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgIGlmIChzdGF0ZS5lbnRpdHlNYXBbaWRdKSB7XG4gICAgICBkZWxldGUgc3RhdGUuZW50aXR5TWFwW2lkXTtcbiAgICAgIGRpZE11dGF0ZSA9IERpZE11dGF0ZS5Cb3RoO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkaWRNdXRhdGUgPT09IERpZE11dGF0ZS5Cb3RoKSB7XG4gICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLmZpbHRlcigoaWQpID0+IGlkIGluIHN0YXRlLmVudGl0eU1hcCk7XG4gIH1cblxuICByZXR1cm4gZGlkTXV0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlRW50aXRpZXNNdXRhYmx5KFxuICBzdGF0ZTogRW50aXR5U3RhdGU8YW55PixcbiAgaWRzT3JQcmVkaWNhdGU6IEVudGl0eUlkW10gfCBFbnRpdHlQcmVkaWNhdGU8YW55PixcbiAgY2hhbmdlczogRW50aXR5Q2hhbmdlczxhbnk+LFxuICBzZWxlY3RJZDogU2VsZWN0RW50aXR5SWQ8YW55PlxuKTogRGlkTXV0YXRlIHtcbiAgY29uc3QgaWRzID0gQXJyYXkuaXNBcnJheShpZHNPclByZWRpY2F0ZSlcbiAgICA/IGlkc09yUHJlZGljYXRlXG4gICAgOiBzdGF0ZS5pZHMuZmlsdGVyKChpZCkgPT4gaWRzT3JQcmVkaWNhdGUoc3RhdGUuZW50aXR5TWFwW2lkXSkpO1xuICBsZXQgbmV3SWRzOiBSZWNvcmQ8RW50aXR5SWQsIEVudGl0eUlkPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgbGV0IGRpZE11dGF0ZSA9IERpZE11dGF0ZS5Ob25lO1xuXG4gIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XG4gICAgY29uc3QgZW50aXR5ID0gc3RhdGUuZW50aXR5TWFwW2lkXTtcblxuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXNSZWNvcmQgPVxuICAgICAgICB0eXBlb2YgY2hhbmdlcyA9PT0gJ2Z1bmN0aW9uJyA/IGNoYW5nZXMoZW50aXR5KSA6IGNoYW5nZXM7XG4gICAgICBzdGF0ZS5lbnRpdHlNYXBbaWRdID0geyAuLi5lbnRpdHksIC4uLmNoYW5nZXNSZWNvcmQgfTtcbiAgICAgIGRpZE11dGF0ZSA9IERpZE11dGF0ZS5FbnRpdGllcztcblxuICAgICAgY29uc3QgbmV3SWQgPSBzZWxlY3RJZChzdGF0ZS5lbnRpdHlNYXBbaWRdKTtcbiAgICAgIGlmIChuZXdJZCAhPT0gaWQpIHtcbiAgICAgICAgc3RhdGUuZW50aXR5TWFwW25ld0lkXSA9IHN0YXRlLmVudGl0eU1hcFtpZF07XG4gICAgICAgIGRlbGV0ZSBzdGF0ZS5lbnRpdHlNYXBbaWRdO1xuXG4gICAgICAgIG5ld0lkcyA9IG5ld0lkcyB8fCB7fTtcbiAgICAgICAgbmV3SWRzW2lkXSA9IG5ld0lkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChuZXdJZHMpIHtcbiAgICBzdGF0ZS5pZHMgPSBzdGF0ZS5pZHMubWFwKChpZCkgPT4gbmV3SWRzW2lkXSA/PyBpZCk7XG4gICAgZGlkTXV0YXRlID0gRGlkTXV0YXRlLkJvdGg7XG4gIH1cblxuICBpZiAobmdEZXZNb2RlICYmIHN0YXRlLmlkcy5sZW5ndGggIT09IE9iamVjdC5rZXlzKHN0YXRlLmVudGl0eU1hcCkubGVuZ3RoKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ0BuZ3J4L3NpZ25hbHMvZW50aXRpZXM6IEVudGl0aWVzIHdpdGggSURzOicsXG4gICAgICBpZHMsXG4gICAgICAnYXJlIG5vdCB1cGRhdGVkIGNvcnJlY3RseS4nLFxuICAgICAgJ01ha2Ugc3VyZSB0byBhcHBseSB2YWxpZCBjaGFuZ2VzIHdoZW4gdXNpbmcgYHVwZGF0ZUVudGl0eWAsJyxcbiAgICAgICdgdXBkYXRlRW50aXRpZXNgLCBhbmQgYHVwZGF0ZUFsbEVudGl0aWVzYCB1cGRhdGVycy4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBkaWRNdXRhdGU7XG59XG4iXX0=
@@ -9,5 +9,6 @@ export { setAllEntities } from './updaters/set-all-entities';
9
9
  export { updateEntity } from './updaters/update-entity';
10
10
  export { updateEntities } from './updaters/update-entities';
11
11
  export { updateAllEntities } from './updaters/update-all-entities';
12
+ export { entityConfig } from './entity-config';
12
13
  export { withEntities } from './with-entities';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvZW50aXRpZXMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGFkZEVudGl0eSB9IGZyb20gJy4vdXBkYXRlcnMvYWRkLWVudGl0eSc7XG5leHBvcnQgeyBhZGRFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvYWRkLWVudGl0aWVzJztcbmV4cG9ydCB7IHJlbW92ZUVudGl0eSB9IGZyb20gJy4vdXBkYXRlcnMvcmVtb3ZlLWVudGl0eSc7XG5leHBvcnQgeyByZW1vdmVFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvcmVtb3ZlLWVudGl0aWVzJztcbmV4cG9ydCB7IHJlbW92ZUFsbEVudGl0aWVzIH0gZnJvbSAnLi91cGRhdGVycy9yZW1vdmUtYWxsLWVudGl0aWVzJztcbmV4cG9ydCB7IHNldEVudGl0eSB9IGZyb20gJy4vdXBkYXRlcnMvc2V0LWVudGl0eSc7XG5leHBvcnQgeyBzZXRFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvc2V0LWVudGl0aWVzJztcbmV4cG9ydCB7IHNldEFsbEVudGl0aWVzIH0gZnJvbSAnLi91cGRhdGVycy9zZXQtYWxsLWVudGl0aWVzJztcbmV4cG9ydCB7IHVwZGF0ZUVudGl0eSB9IGZyb20gJy4vdXBkYXRlcnMvdXBkYXRlLWVudGl0eSc7XG5leHBvcnQgeyB1cGRhdGVFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvdXBkYXRlLWVudGl0aWVzJztcbmV4cG9ydCB7IHVwZGF0ZUFsbEVudGl0aWVzIH0gZnJvbSAnLi91cGRhdGVycy91cGRhdGUtYWxsLWVudGl0aWVzJztcblxuZXhwb3J0IHsgRW50aXR5SWQsIEVudGl0eU1hcCwgRW50aXR5U3RhdGUsIE5hbWVkRW50aXR5U3RhdGUgfSBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgeyB3aXRoRW50aXRpZXMgfSBmcm9tICcuL3dpdGgtZW50aXRpZXMnO1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvZW50aXRpZXMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVEvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBhZGRFbnRpdHkgfSBmcm9tICcuL3VwZGF0ZXJzL2FkZC1lbnRpdHknO1xuZXhwb3J0IHsgYWRkRW50aXRpZXMgfSBmcm9tICcuL3VwZGF0ZXJzL2FkZC1lbnRpdGllcyc7XG5leHBvcnQgeyByZW1vdmVFbnRpdHkgfSBmcm9tICcuL3VwZGF0ZXJzL3JlbW92ZS1lbnRpdHknO1xuZXhwb3J0IHsgcmVtb3ZlRW50aXRpZXMgfSBmcm9tICcuL3VwZGF0ZXJzL3JlbW92ZS1lbnRpdGllcyc7XG5leHBvcnQgeyByZW1vdmVBbGxFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvcmVtb3ZlLWFsbC1lbnRpdGllcyc7XG5leHBvcnQgeyBzZXRFbnRpdHkgfSBmcm9tICcuL3VwZGF0ZXJzL3NldC1lbnRpdHknO1xuZXhwb3J0IHsgc2V0RW50aXRpZXMgfSBmcm9tICcuL3VwZGF0ZXJzL3NldC1lbnRpdGllcyc7XG5leHBvcnQgeyBzZXRBbGxFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvc2V0LWFsbC1lbnRpdGllcyc7XG5leHBvcnQgeyB1cGRhdGVFbnRpdHkgfSBmcm9tICcuL3VwZGF0ZXJzL3VwZGF0ZS1lbnRpdHknO1xuZXhwb3J0IHsgdXBkYXRlRW50aXRpZXMgfSBmcm9tICcuL3VwZGF0ZXJzL3VwZGF0ZS1lbnRpdGllcyc7XG5leHBvcnQgeyB1cGRhdGVBbGxFbnRpdGllcyB9IGZyb20gJy4vdXBkYXRlcnMvdXBkYXRlLWFsbC1lbnRpdGllcyc7XG5cbmV4cG9ydCB7IGVudGl0eUNvbmZpZyB9IGZyb20gJy4vZW50aXR5LWNvbmZpZyc7XG5leHBvcnQge1xuICBFbnRpdHlJZCxcbiAgRW50aXR5TWFwLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlTdGF0ZSxcbiAgU2VsZWN0RW50aXR5SWQsXG59IGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCB7IHdpdGhFbnRpdGllcyB9IGZyb20gJy4vd2l0aC1lbnRpdGllcyc7XG4iXX0=
@@ -4,4 +4,4 @@ export var DidMutate;
4
4
  DidMutate[DidMutate["Entities"] = 1] = "Entities";
5
5
  DidMutate[DidMutate["Both"] = 2] = "Both";
6
6
  })(DidMutate || (DidMutate = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL2VudGl0aWVzL3NyYy9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUNBLE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIseUNBQUksQ0FBQTtJQUNKLGlEQUFRLENBQUE7SUFDUix5Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEVudGl0eUlkID0gc3RyaW5nIHwgbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBFbnRpdHlNYXA8RW50aXR5PiA9IFJlY29yZDxFbnRpdHlJZCwgRW50aXR5PjtcblxuZXhwb3J0IHR5cGUgRW50aXR5U3RhdGU8RW50aXR5PiA9IHtcbiAgZW50aXR5TWFwOiBFbnRpdHlNYXA8RW50aXR5PjtcbiAgaWRzOiBFbnRpdHlJZFtdO1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBrZXlvZiBFbnRpdHlTdGF0ZTxFbnRpdHk+IGFzIGAke0NvbGxlY3Rpb259JHtDYXBpdGFsaXplPEs+fWBdOiBFbnRpdHlTdGF0ZTxFbnRpdHk+W0tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW50aXR5U2lnbmFsczxFbnRpdHk+ID0ge1xuICBlbnRpdGllczogU2lnbmFsPEVudGl0eVtdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkRW50aXR5U2lnbmFsczxFbnRpdHksIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBrZXlvZiBFbnRpdHlTaWduYWxzPEVudGl0eT4gYXMgYCR7Q29sbGVjdGlvbn0ke0NhcGl0YWxpemU8Sz59YF06IEVudGl0eVNpZ25hbHM8RW50aXR5PltLXTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudGl0eUlkUHJvcHM8RW50aXR5PiA9IHtcbiAgW0sgaW4ga2V5b2YgRW50aXR5IGFzIEVudGl0eVtLXSBleHRlbmRzIEVudGl0eUlkID8gSyA6IG5ldmVyXTogRW50aXR5W0tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW50aXR5SWRLZXk8RW50aXR5PiA9IGtleW9mIEVudGl0eUlkUHJvcHM8RW50aXR5PiAmIHN0cmluZztcblxuZXhwb3J0IHR5cGUgRW50aXR5UHJlZGljYXRlPEVudGl0eT4gPSAoZW50aXR5OiBFbnRpdHkpID0+IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIEVudGl0eUNoYW5nZXM8RW50aXR5PiA9XG4gIHwgUGFydGlhbDxFbnRpdHk+XG4gIHwgKChlbnRpdHk6IEVudGl0eSkgPT4gUGFydGlhbDxFbnRpdHk+KTtcblxuZXhwb3J0IGVudW0gRGlkTXV0YXRlIHtcbiAgTm9uZSxcbiAgRW50aXRpZXMsXG4gIEJvdGgsXG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL2VudGl0aWVzL3NyYy9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JBLE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIseUNBQUksQ0FBQTtJQUNKLGlEQUFRLENBQUE7SUFDUix5Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEVudGl0eUlkID0gc3RyaW5nIHwgbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBFbnRpdHlNYXA8RW50aXR5PiA9IFJlY29yZDxFbnRpdHlJZCwgRW50aXR5PjtcblxuZXhwb3J0IHR5cGUgRW50aXR5U3RhdGU8RW50aXR5PiA9IHtcbiAgZW50aXR5TWFwOiBFbnRpdHlNYXA8RW50aXR5PjtcbiAgaWRzOiBFbnRpdHlJZFtdO1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBrZXlvZiBFbnRpdHlTdGF0ZTxFbnRpdHk+IGFzIGAke0NvbGxlY3Rpb259JHtDYXBpdGFsaXplPEs+fWBdOiBFbnRpdHlTdGF0ZTxFbnRpdHk+W0tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW50aXR5Q29tcHV0ZWQ8RW50aXR5PiA9IHtcbiAgZW50aXRpZXM6IFNpZ25hbDxFbnRpdHlbXT47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZEVudGl0eUNvbXB1dGVkPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIGtleW9mIEVudGl0eUNvbXB1dGVkPEVudGl0eT4gYXMgYCR7Q29sbGVjdGlvbn0ke0NhcGl0YWxpemU8Sz59YF06IEVudGl0eUNvbXB1dGVkPEVudGl0eT5bS107XG59O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RFbnRpdHlJZDxFbnRpdHk+ID0gKGVudGl0eTogRW50aXR5KSA9PiBFbnRpdHlJZDtcblxuZXhwb3J0IHR5cGUgRW50aXR5UHJlZGljYXRlPEVudGl0eT4gPSAoZW50aXR5OiBFbnRpdHkpID0+IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIEVudGl0eUNoYW5nZXM8RW50aXR5PiA9XG4gIHwgUGFydGlhbDxFbnRpdHk+XG4gIHwgKChlbnRpdHk6IEVudGl0eSkgPT4gUGFydGlhbDxFbnRpdHk+KTtcblxuZXhwb3J0IGVudW0gRGlkTXV0YXRlIHtcbiAgTm9uZSxcbiAgRW50aXRpZXMsXG4gIEJvdGgsXG59XG4iXX0=
@@ -1,11 +1,11 @@
1
- import { addEntitiesMutably, cloneEntityState, getEntityIdKey, getEntityStateKeys, getEntityUpdaterResult, } from '../helpers';
1
+ import { addEntitiesMutably, cloneEntityState, getEntityIdSelector, getEntityStateKeys, getEntityUpdaterResult, } from '../helpers';
2
2
  export function addEntities(entities, config) {
3
- const idKey = getEntityIdKey(config);
3
+ const selectId = getEntityIdSelector(config);
4
4
  const stateKeys = getEntityStateKeys(config);
5
5
  return (state) => {
6
6
  const clonedState = cloneEntityState(state, stateKeys);
7
- const didMutate = addEntitiesMutably(clonedState, entities, idKey);
7
+ const didMutate = addEntitiesMutably(clonedState, entities, selectId);
8
8
  return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
9
9
  };
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVudGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL2VudGl0aWVzL3NyYy91cGRhdGVycy9hZGQtZW50aXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixzQkFBc0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUFvQnBCLE1BQU0sVUFBVSxXQUFXLENBQ3pCLFFBQWUsRUFDZixNQUFnRDtJQUVoRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbkUsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWFsU3RhdGVVcGRhdGVyIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQge1xuICBFbnRpdHlJZCxcbiAgRW50aXR5SWRLZXksXG4gIEVudGl0eVN0YXRlLFxuICBOYW1lZEVudGl0eVN0YXRlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgYWRkRW50aXRpZXNNdXRhYmx5LFxuICBjbG9uZUVudGl0eVN0YXRlLFxuICBnZXRFbnRpdHlJZEtleSxcbiAgZ2V0RW50aXR5U3RhdGVLZXlzLFxuICBnZXRFbnRpdHlVcGRhdGVyUmVzdWx0LFxufSBmcm9tICcuLi9oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0aWVzPEVudGl0eSBleHRlbmRzIHsgaWQ6IEVudGl0eUlkIH0+KFxuICBlbnRpdGllczogRW50aXR5W11cbik6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8RW50aXR5U3RhdGU8RW50aXR5Pj47XG5leHBvcnQgZnVuY3Rpb24gYWRkRW50aXRpZXM8RW50aXR5LCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgZW50aXRpZXM6IEVudGl0eVtdLFxuICBjb25maWc6IHsgY29sbGVjdGlvbjogQ29sbGVjdGlvbjsgaWRLZXk6IEVudGl0eUlkS2V5PEVudGl0eT4gfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxOYW1lZEVudGl0eVN0YXRlPEVudGl0eSwgQ29sbGVjdGlvbj4+O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0aWVzPFxuICBFbnRpdHkgZXh0ZW5kcyB7IGlkOiBFbnRpdHlJZCB9LFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+KFxuICBlbnRpdGllczogRW50aXR5W10sXG4gIGNvbmZpZzogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uIH1cbik6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8TmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24+PjtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdGllczxFbnRpdHk+KFxuICBlbnRpdGllczogRW50aXR5W10sXG4gIGNvbmZpZzogeyBpZEtleTogRW50aXR5SWRLZXk8RW50aXR5PiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPEVudGl0eT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0aWVzKFxuICBlbnRpdGllczogYW55W10sXG4gIGNvbmZpZz86IHsgY29sbGVjdGlvbj86IHN0cmluZzsgaWRLZXk/OiBzdHJpbmcgfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxFbnRpdHlTdGF0ZTxhbnk+IHwgTmFtZWRFbnRpdHlTdGF0ZTxhbnksIHN0cmluZz4+IHtcbiAgY29uc3QgaWRLZXkgPSBnZXRFbnRpdHlJZEtleShjb25maWcpO1xuICBjb25zdCBzdGF0ZUtleXMgPSBnZXRFbnRpdHlTdGF0ZUtleXMoY29uZmlnKTtcblxuICByZXR1cm4gKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgY2xvbmVkU3RhdGUgPSBjbG9uZUVudGl0eVN0YXRlKHN0YXRlLCBzdGF0ZUtleXMpO1xuICAgIGNvbnN0IGRpZE11dGF0ZSA9IGFkZEVudGl0aWVzTXV0YWJseShjbG9uZWRTdGF0ZSwgZW50aXRpZXMsIGlkS2V5KTtcblxuICAgIHJldHVybiBnZXRFbnRpdHlVcGRhdGVyUmVzdWx0KGNsb25lZFN0YXRlLCBzdGF0ZUtleXMsIGRpZE11dGF0ZSk7XG4gIH07XG59XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVudGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL2VudGl0aWVzL3NyYy91cGRhdGVycy9hZGQtZW50aXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixzQkFBc0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUFvQnBCLE1BQU0sVUFBVSxXQUFXLENBQ3pCLFFBQWUsRUFDZixNQUFnRTtJQUVoRSxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV0RSxPQUFPLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnRpYWxTdGF0ZVVwZGF0ZXIgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7XG4gIEVudGl0eUlkLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlTdGF0ZSxcbiAgU2VsZWN0RW50aXR5SWQsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBhZGRFbnRpdGllc011dGFibHksXG4gIGNsb25lRW50aXR5U3RhdGUsXG4gIGdldEVudGl0eUlkU2VsZWN0b3IsXG4gIGdldEVudGl0eVN0YXRlS2V5cyxcbiAgZ2V0RW50aXR5VXBkYXRlclJlc3VsdCxcbn0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdGllczxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBFbnRpdHlJZCB9PihcbiAgZW50aXRpZXM6IEVudGl0eVtdXG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPEVudGl0eT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0aWVzPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oXG4gIGVudGl0aWVzOiBFbnRpdHlbXSxcbiAgY29uZmlnOiB7IGNvbGxlY3Rpb246IENvbGxlY3Rpb247IHNlbGVjdElkOiBTZWxlY3RFbnRpdHlJZDxOb0luZmVyPEVudGl0eT4+IH1cbik6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8TmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24+PjtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdGllczxcbiAgRW50aXR5IGV4dGVuZHMgeyBpZDogRW50aXR5SWQgfSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPihcbiAgZW50aXRpZXM6IEVudGl0eVtdLFxuICBjb25maWc6IHsgY29sbGVjdGlvbjogQ29sbGVjdGlvbiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPE5hbWVkRW50aXR5U3RhdGU8RW50aXR5LCBDb2xsZWN0aW9uPj47XG5leHBvcnQgZnVuY3Rpb24gYWRkRW50aXRpZXM8RW50aXR5PihcbiAgZW50aXRpZXM6IEVudGl0eVtdLFxuICBjb25maWc6IHsgc2VsZWN0SWQ6IFNlbGVjdEVudGl0eUlkPE5vSW5mZXI8RW50aXR5Pj4gfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxFbnRpdHlTdGF0ZTxFbnRpdHk+PjtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdGllcyhcbiAgZW50aXRpZXM6IGFueVtdLFxuICBjb25maWc/OiB7IGNvbGxlY3Rpb24/OiBzdHJpbmc7IHNlbGVjdElkPzogU2VsZWN0RW50aXR5SWQ8YW55PiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPGFueT4gfCBOYW1lZEVudGl0eVN0YXRlPGFueSwgc3RyaW5nPj4ge1xuICBjb25zdCBzZWxlY3RJZCA9IGdldEVudGl0eUlkU2VsZWN0b3IoY29uZmlnKTtcbiAgY29uc3Qgc3RhdGVLZXlzID0gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGNsb25lZFN0YXRlID0gY2xvbmVFbnRpdHlTdGF0ZShzdGF0ZSwgc3RhdGVLZXlzKTtcbiAgICBjb25zdCBkaWRNdXRhdGUgPSBhZGRFbnRpdGllc011dGFibHkoY2xvbmVkU3RhdGUsIGVudGl0aWVzLCBzZWxlY3RJZCk7XG5cbiAgICByZXR1cm4gZ2V0RW50aXR5VXBkYXRlclJlc3VsdChjbG9uZWRTdGF0ZSwgc3RhdGVLZXlzLCBkaWRNdXRhdGUpO1xuICB9O1xufVxuIl19
@@ -1,11 +1,11 @@
1
- import { addEntityMutably, cloneEntityState, getEntityIdKey, getEntityStateKeys, getEntityUpdaterResult, } from '../helpers';
1
+ import { addEntityMutably, cloneEntityState, getEntityIdSelector, getEntityStateKeys, getEntityUpdaterResult, } from '../helpers';
2
2
  export function addEntity(entity, config) {
3
- const idKey = getEntityIdKey(config);
3
+ const selectId = getEntityIdSelector(config);
4
4
  const stateKeys = getEntityStateKeys(config);
5
5
  return (state) => {
6
6
  const clonedState = cloneEntityState(state, stateKeys);
7
- const didMutate = addEntityMutably(clonedState, entity, idKey);
7
+ const didMutate = addEntityMutably(clonedState, entity, selectId);
8
8
  return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
9
9
  };
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvdXBkYXRlcnMvYWRkLWVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUN2QixNQUFNLFlBQVksQ0FBQztBQW9CcEIsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsTUFBVyxFQUNYLE1BQWdEO0lBRWhELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUvRCxPQUFPLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnRpYWxTdGF0ZVVwZGF0ZXIgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7XG4gIEVudGl0eUlkLFxuICBFbnRpdHlJZEtleSxcbiAgRW50aXR5U3RhdGUsXG4gIE5hbWVkRW50aXR5U3RhdGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBhZGRFbnRpdHlNdXRhYmx5LFxuICBjbG9uZUVudGl0eVN0YXRlLFxuICBnZXRFbnRpdHlJZEtleSxcbiAgZ2V0RW50aXR5U3RhdGVLZXlzLFxuICBnZXRFbnRpdHlVcGRhdGVyUmVzdWx0LFxufSBmcm9tICcuLi9oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0eTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBFbnRpdHlJZCB9PihcbiAgZW50aXR5OiBFbnRpdHlcbik6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8RW50aXR5U3RhdGU8RW50aXR5Pj47XG5leHBvcnQgZnVuY3Rpb24gYWRkRW50aXR5PEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oXG4gIGVudGl0eTogRW50aXR5LFxuICBjb25maWc6IHsgY29sbGVjdGlvbjogQ29sbGVjdGlvbjsgaWRLZXk6IEVudGl0eUlkS2V5PEVudGl0eT4gfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxOYW1lZEVudGl0eVN0YXRlPEVudGl0eSwgQ29sbGVjdGlvbj4+O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0eTxcbiAgRW50aXR5IGV4dGVuZHMgeyBpZDogRW50aXR5SWQgfSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPihcbiAgZW50aXR5OiBFbnRpdHksXG4gIGNvbmZpZzogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uIH1cbik6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8TmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24+PjtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdHk8RW50aXR5PihcbiAgZW50aXR5OiBFbnRpdHksXG4gIGNvbmZpZzogeyBpZEtleTogRW50aXR5SWRLZXk8RW50aXR5PiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPEVudGl0eT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0eShcbiAgZW50aXR5OiBhbnksXG4gIGNvbmZpZz86IHsgY29sbGVjdGlvbj86IHN0cmluZzsgaWRLZXk/OiBzdHJpbmcgfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxFbnRpdHlTdGF0ZTxhbnk+IHwgTmFtZWRFbnRpdHlTdGF0ZTxhbnksIHN0cmluZz4+IHtcbiAgY29uc3QgaWRLZXkgPSBnZXRFbnRpdHlJZEtleShjb25maWcpO1xuICBjb25zdCBzdGF0ZUtleXMgPSBnZXRFbnRpdHlTdGF0ZUtleXMoY29uZmlnKTtcblxuICByZXR1cm4gKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgY2xvbmVkU3RhdGUgPSBjbG9uZUVudGl0eVN0YXRlKHN0YXRlLCBzdGF0ZUtleXMpO1xuICAgIGNvbnN0IGRpZE11dGF0ZSA9IGFkZEVudGl0eU11dGFibHkoY2xvbmVkU3RhdGUsIGVudGl0eSwgaWRLZXkpO1xuXG4gICAgcmV0dXJuIGdldEVudGl0eVVwZGF0ZXJSZXN1bHQoY2xvbmVkU3RhdGUsIHN0YXRlS2V5cywgZGlkTXV0YXRlKTtcbiAgfTtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvdXBkYXRlcnMvYWRkLWVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUN2QixNQUFNLFlBQVksQ0FBQztBQW9CcEIsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsTUFBVyxFQUNYLE1BQWdFO0lBRWhFLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTdDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sc0JBQXNCLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFydGlhbFN0YXRlVXBkYXRlciB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHtcbiAgRW50aXR5SWQsXG4gIEVudGl0eVN0YXRlLFxuICBOYW1lZEVudGl0eVN0YXRlLFxuICBTZWxlY3RFbnRpdHlJZCxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIGFkZEVudGl0eU11dGFibHksXG4gIGNsb25lRW50aXR5U3RhdGUsXG4gIGdldEVudGl0eUlkU2VsZWN0b3IsXG4gIGdldEVudGl0eVN0YXRlS2V5cyxcbiAgZ2V0RW50aXR5VXBkYXRlclJlc3VsdCxcbn0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdHk8RW50aXR5IGV4dGVuZHMgeyBpZDogRW50aXR5SWQgfT4oXG4gIGVudGl0eTogRW50aXR5XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPEVudGl0eT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEVudGl0eTxFbnRpdHksIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBlbnRpdHk6IEVudGl0eSxcbiAgY29uZmlnOiB7IGNvbGxlY3Rpb246IENvbGxlY3Rpb247IHNlbGVjdElkOiBTZWxlY3RFbnRpdHlJZDxOb0luZmVyPEVudGl0eT4+IH1cbik6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8TmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24+PjtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdHk8XG4gIEVudGl0eSBleHRlbmRzIHsgaWQ6IEVudGl0eUlkIH0sXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4oXG4gIGVudGl0eTogRW50aXR5LFxuICBjb25maWc6IHsgY29sbGVjdGlvbjogQ29sbGVjdGlvbiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPE5hbWVkRW50aXR5U3RhdGU8RW50aXR5LCBDb2xsZWN0aW9uPj47XG5leHBvcnQgZnVuY3Rpb24gYWRkRW50aXR5PEVudGl0eT4oXG4gIGVudGl0eTogRW50aXR5LFxuICBjb25maWc6IHsgc2VsZWN0SWQ6IFNlbGVjdEVudGl0eUlkPE5vSW5mZXI8RW50aXR5Pj4gfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxFbnRpdHlTdGF0ZTxFbnRpdHk+PjtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFbnRpdHkoXG4gIGVudGl0eTogYW55LFxuICBjb25maWc/OiB7IGNvbGxlY3Rpb24/OiBzdHJpbmc7IHNlbGVjdElkPzogU2VsZWN0RW50aXR5SWQ8YW55PiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPGFueT4gfCBOYW1lZEVudGl0eVN0YXRlPGFueSwgc3RyaW5nPj4ge1xuICBjb25zdCBzZWxlY3RJZCA9IGdldEVudGl0eUlkU2VsZWN0b3IoY29uZmlnKTtcbiAgY29uc3Qgc3RhdGVLZXlzID0gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGNsb25lZFN0YXRlID0gY2xvbmVFbnRpdHlTdGF0ZShzdGF0ZSwgc3RhdGVLZXlzKTtcbiAgICBjb25zdCBkaWRNdXRhdGUgPSBhZGRFbnRpdHlNdXRhYmx5KGNsb25lZFN0YXRlLCBlbnRpdHksIHNlbGVjdElkKTtcblxuICAgIHJldHVybiBnZXRFbnRpdHlVcGRhdGVyUmVzdWx0KGNsb25lZFN0YXRlLCBzdGF0ZUtleXMsIGRpZE11dGF0ZSk7XG4gIH07XG59XG4iXX0=