@ngrx/signals 17.0.0-rc.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,4 +14,4 @@ export function withEntities(config) {
14
14
  }),
15
15
  })));
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1lbnRpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvd2l0aC1lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUErQi9DLE1BQU0sVUFBVSxZQUFZLENBQVMsTUFHcEM7SUFDQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6RSxPQUFPLGtCQUFrQixDQUN2QixTQUFTLENBQUM7UUFDUixDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUU7UUFDbEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQ04sQ0FBQyxFQUNULFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QixDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUF1QixDQUFDO1lBQzdELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBZ0IsQ0FBQztZQUUxQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgc2lnbmFsU3RvcmVGZWF0dXJlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhTdGF0ZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQge1xuICBFbnRpdHlJZCxcbiAgRW50aXR5TWFwLFxuICBFbnRpdHlTaWduYWxzLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlTaWduYWxzLFxuICBOYW1lZEVudGl0eVN0YXRlLFxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBnZXRFbnRpdHlTdGF0ZUtleXMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eT4oKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiB7fTsgc2lnbmFsczoge307IG1ldGhvZHM6IHt9IH0sXG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PjtcbiAgICBzaWduYWxzOiBFbnRpdHlTaWduYWxzPEVudGl0eT47XG4gICAgbWV0aG9kczoge307XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGVudGl0eTogRW50aXR5O1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgeyBzdGF0ZToge307IHNpZ25hbHM6IHt9OyBtZXRob2RzOiB7fSB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RW50aXR5LCBDb2xsZWN0aW9uPjtcbiAgICBzaWduYWxzOiBOYW1lZEVudGl0eVNpZ25hbHM8RW50aXR5LCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiB7fTtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRW50aXRpZXM8RW50aXR5Pihjb25maWc6IHtcbiAgZW50aXR5OiBFbnRpdHk7XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiB7fTsgc2lnbmFsczoge307IG1ldGhvZHM6IHt9IH0sXG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PjtcbiAgICBzaWduYWxzOiBFbnRpdHlTaWduYWxzPEVudGl0eT47XG4gICAgbWV0aG9kczoge307XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eT4oY29uZmlnPzoge1xuICBlbnRpdHk6IEVudGl0eTtcbiAgY29sbGVjdGlvbj86IHN0cmluZztcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmUge1xuICBjb25zdCB7IGVudGl0eU1hcEtleSwgaWRzS2V5LCBlbnRpdGllc0tleSB9ID0gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoe1xuICAgICAgW2VudGl0eU1hcEtleV06IHt9LFxuICAgICAgW2lkc0tleV06IFtdLFxuICAgIH0gYXMgYW55KSxcbiAgICB3aXRoQ29tcHV0ZWQoKHN0b3JlKSA9PiAoe1xuICAgICAgW2VudGl0aWVzS2V5XTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbnRpdHlNYXAgPSBzdG9yZVtlbnRpdHlNYXBLZXldKCkgYXMgRW50aXR5TWFwPEVudGl0eT47XG4gICAgICAgIGNvbnN0IGlkcyA9IHN0b3JlW2lkc0tleV0oKSBhcyBFbnRpdHlJZFtdO1xuXG4gICAgICAgIHJldHVybiBpZHMubWFwKChpZCkgPT4gZW50aXR5TWFwW2lkXSk7XG4gICAgICB9KSxcbiAgICB9KSlcbiAgKTtcbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1lbnRpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvd2l0aC1lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUErQi9DLE1BQU0sVUFBVSxZQUFZLENBQVMsTUFHcEM7SUFDQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6RSxPQUFPLGtCQUFrQixDQUN2QixTQUFTLENBQUM7UUFDUixDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUU7UUFDbEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQ2IsQ0FBQyxFQUNGLFlBQVksQ0FBQyxDQUFDLEtBQXNDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBdUIsQ0FBQztZQUM3RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQWdCLENBQUM7WUFFMUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUM7S0FDSCxDQUFDLENBQUMsQ0FDSixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgc2lnbmFsU3RvcmVGZWF0dXJlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhTdGF0ZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQge1xuICBFbnRpdHlJZCxcbiAgRW50aXR5TWFwLFxuICBFbnRpdHlTaWduYWxzLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlTaWduYWxzLFxuICBOYW1lZEVudGl0eVN0YXRlLFxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBnZXRFbnRpdHlTdGF0ZUtleXMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eT4oKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiB7fTsgc2lnbmFsczoge307IG1ldGhvZHM6IHt9IH0sXG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PjtcbiAgICBzaWduYWxzOiBFbnRpdHlTaWduYWxzPEVudGl0eT47XG4gICAgbWV0aG9kczoge307XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGVudGl0eTogRW50aXR5O1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgeyBzdGF0ZToge307IHNpZ25hbHM6IHt9OyBtZXRob2RzOiB7fSB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RW50aXR5LCBDb2xsZWN0aW9uPjtcbiAgICBzaWduYWxzOiBOYW1lZEVudGl0eVNpZ25hbHM8RW50aXR5LCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiB7fTtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRW50aXRpZXM8RW50aXR5Pihjb25maWc6IHtcbiAgZW50aXR5OiBFbnRpdHk7XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiB7fTsgc2lnbmFsczoge307IG1ldGhvZHM6IHt9IH0sXG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PjtcbiAgICBzaWduYWxzOiBFbnRpdHlTaWduYWxzPEVudGl0eT47XG4gICAgbWV0aG9kczoge307XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eT4oY29uZmlnPzoge1xuICBlbnRpdHk6IEVudGl0eTtcbiAgY29sbGVjdGlvbj86IHN0cmluZztcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmUge1xuICBjb25zdCB7IGVudGl0eU1hcEtleSwgaWRzS2V5LCBlbnRpdGllc0tleSB9ID0gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoe1xuICAgICAgW2VudGl0eU1hcEtleV06IHt9LFxuICAgICAgW2lkc0tleV06IFtdLFxuICAgIH0pLFxuICAgIHdpdGhDb21wdXRlZCgoc3RvcmU6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj4pID0+ICh7XG4gICAgICBbZW50aXRpZXNLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudGl0eU1hcCA9IHN0b3JlW2VudGl0eU1hcEtleV0oKSBhcyBFbnRpdHlNYXA8RW50aXR5PjtcbiAgICAgICAgY29uc3QgaWRzID0gc3RvcmVbaWRzS2V5XSgpIGFzIEVudGl0eUlkW107XG5cbiAgICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkKSA9PiBlbnRpdHlNYXBbaWRdKTtcbiAgICAgIH0pLFxuICAgIH0pKVxuICApO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { computed, untracked } from '@angular/core';
1
+ import { computed, isSignal, untracked, } from '@angular/core';
2
2
  export function toDeepSignal(signal) {
3
3
  const value = untracked(() => signal());
4
4
  if (!isRecord(value)) {
@@ -9,8 +9,10 @@ export function toDeepSignal(signal) {
9
9
  if (!(prop in value)) {
10
10
  return target[prop];
11
11
  }
12
- if (!target[prop]) {
13
- target[prop] = computed(() => target()[prop]);
12
+ if (!isSignal(target[prop])) {
13
+ Object.defineProperty(target, prop, {
14
+ value: computed(() => target()[prop]),
15
+ });
14
16
  }
15
17
  return toDeepSignal(target[prop]);
16
18
  },
@@ -19,4 +21,4 @@ export function toDeepSignal(signal) {
19
21
  function isRecord(value) {
20
22
  return value?.constructor === Object;
21
23
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1zaWduYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2RlZXAtc2lnbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZ0I1RCxNQUFNLFVBQVUsWUFBWSxDQUFJLE1BQWlCO0lBQy9DLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDcEIsT0FBTyxNQUF1QixDQUFDO0tBQ2hDO0lBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDdkIsR0FBRyxDQUFDLE1BQVcsRUFBRSxJQUFJO1lBQ25CLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDcEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDL0M7WUFFRCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEtBQWM7SUFDOUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxLQUFLLE1BQU0sQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIFNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJc1Vua25vd25SZWNvcmQgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBEZWVwU2lnbmFsPFQ+ID0gU2lnbmFsPFQ+ICZcbiAgKFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgID8gSXNVbmtub3duUmVjb3JkPFQ+IGV4dGVuZHMgdHJ1ZVxuICAgICAgPyB1bmtub3duXG4gICAgICA6IFJlYWRvbmx5PHtcbiAgICAgICAgICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgICAgICA/IElzVW5rbm93blJlY29yZDxUW0tdPiBleHRlbmRzIHRydWVcbiAgICAgICAgICAgICAgPyBTaWduYWw8VFtLXT5cbiAgICAgICAgICAgICAgOiBEZWVwU2lnbmFsPFRbS10+XG4gICAgICAgICAgICA6IFNpZ25hbDxUW0tdPjtcbiAgICAgICAgfT5cbiAgICA6IHVua25vd24pO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9EZWVwU2lnbmFsPFQ+KHNpZ25hbDogU2lnbmFsPFQ+KTogRGVlcFNpZ25hbDxUPiB7XG4gIGNvbnN0IHZhbHVlID0gdW50cmFja2VkKCgpID0+IHNpZ25hbCgpKTtcbiAgaWYgKCFpc1JlY29yZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc2lnbmFsIGFzIERlZXBTaWduYWw8VD47XG4gIH1cblxuICByZXR1cm4gbmV3IFByb3h5KHNpZ25hbCwge1xuICAgIGdldCh0YXJnZXQ6IGFueSwgcHJvcCkge1xuICAgICAgaWYgKCEocHJvcCBpbiB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0YXJnZXRbcHJvcF0pIHtcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gY29tcHV0ZWQoKCkgPT4gdGFyZ2V0KClbcHJvcF0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdG9EZWVwU2lnbmFsKHRhcmdldFtwcm9wXSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzUmVjb3JkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gdmFsdWU/LmNvbnN0cnVjdG9yID09PSBPYmplY3Q7XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1zaWduYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2RlZXAtc2lnbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUVSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQW1CdkIsTUFBTSxVQUFVLFlBQVksQ0FBSSxNQUFpQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sTUFBdUIsQ0FBQztLQUNoQztJQUVELE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ3ZCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsSUFBSTtZQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO29CQUNsQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN0QyxDQUFDLENBQUM7YUFDSjtZQUVELE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixPQUFPLEtBQUssRUFBRSxXQUFXLEtBQUssTUFBTSxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb21wdXRlZCxcbiAgaXNTaWduYWwsXG4gIFNpZ25hbCBhcyBOZ1NpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzS25vd25SZWNvcmQgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG4vLyBBbiBleHRlbmRlZCBTaWduYWwgdHlwZSB0aGF0IGVuYWJsZXMgdGhlIGNvcnJlY3QgdHlwaW5nXG4vLyBvZiBuZXN0ZWQgc2lnbmFscyB3aXRoIHRoZSBgbmFtZWAgb3IgYGxlbmd0aGAga2V5LlxuaW50ZXJmYWNlIFNpZ25hbDxUPiBleHRlbmRzIE5nU2lnbmFsPFQ+IHtcbiAgbmFtZTogdW5rbm93bjtcbiAgbGVuZ3RoOiB1bmtub3duO1xufVxuXG5leHBvcnQgdHlwZSBEZWVwU2lnbmFsPFQ+ID0gU2lnbmFsPFQ+ICZcbiAgKElzS25vd25SZWNvcmQ8VD4gZXh0ZW5kcyB0cnVlXG4gICAgPyBSZWFkb25seTx7XG4gICAgICAgIFtLIGluIGtleW9mIFRdOiBJc0tub3duUmVjb3JkPFRbS10+IGV4dGVuZHMgdHJ1ZVxuICAgICAgICAgID8gRGVlcFNpZ25hbDxUW0tdPlxuICAgICAgICAgIDogU2lnbmFsPFRbS10+O1xuICAgICAgfT5cbiAgICA6IHVua25vd24pO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9EZWVwU2lnbmFsPFQ+KHNpZ25hbDogU2lnbmFsPFQ+KTogRGVlcFNpZ25hbDxUPiB7XG4gIGNvbnN0IHZhbHVlID0gdW50cmFja2VkKCgpID0+IHNpZ25hbCgpKTtcbiAgaWYgKCFpc1JlY29yZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc2lnbmFsIGFzIERlZXBTaWduYWw8VD47XG4gIH1cblxuICByZXR1cm4gbmV3IFByb3h5KHNpZ25hbCwge1xuICAgIGdldCh0YXJnZXQ6IGFueSwgcHJvcCkge1xuICAgICAgaWYgKCEocHJvcCBpbiB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc1NpZ25hbCh0YXJnZXRbcHJvcF0pKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3AsIHtcbiAgICAgICAgICB2YWx1ZTogY29tcHV0ZWQoKCkgPT4gdGFyZ2V0KClbcHJvcF0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRvRGVlcFNpZ25hbCh0YXJnZXRbcHJvcF0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc1JlY29yZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIHZhbHVlPy5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0O1xufVxuIl19
@@ -2,4 +2,4 @@ import { STATE_SIGNAL } from './signal-state';
2
2
  export function getState(signalState) {
3
3
  return signalState[STATE_SIGNAL]();
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9nZXQtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxNQUFNLFVBQVUsUUFBUSxDQUN0QixXQUFtQztJQUVuQyxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVEFURV9TSUdOQUwsIFNpZ25hbFN0YXRlTWV0YSB9IGZyb20gJy4vc2lnbmFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzaWduYWxTdGF0ZTogU2lnbmFsU3RhdGVNZXRhPFN0YXRlPlxuKTogU3RhdGUge1xuICByZXR1cm4gc2lnbmFsU3RhdGVbU1RBVEVfU0lHTkFMXSgpO1xufVxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9nZXQtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxNQUFNLFVBQVUsUUFBUSxDQUN0QixXQUFtQztJQUVuQyxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVEFURV9TSUdOQUwsIFNpZ25hbFN0YXRlTWV0YSB9IGZyb20gJy4vc2lnbmFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc2lnbmFsU3RhdGU6IFNpZ25hbFN0YXRlTWV0YTxTdGF0ZT5cbik6IFN0YXRlIHtcbiAgcmV0dXJuIHNpZ25hbFN0YXRlW1NUQVRFX1NJR05BTF0oKTtcbn1cbiJdfQ==
@@ -5,4 +5,4 @@ export function patchState(signalState, ...updaters) {
5
5
  ...(typeof updater === 'function' ? updater(nextState) : updater),
6
6
  }), currentState));
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3BhdGNoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFNL0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBbUMsRUFDbkMsR0FBRyxRQUFzRTtJQUV6RSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDaEQsUUFBUSxDQUFDLE1BQU0sQ0FDYixDQUFDLFNBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsU0FBUztRQUNaLEdBQUcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ2xFLENBQUMsRUFDRixZQUFZLENBQ2IsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNUQVRFX1NJR05BTCwgU2lnbmFsU3RhdGVNZXRhIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBzdGF0ZTogU3RhdGVcbikgPT4gUGFydGlhbDxTdGF0ZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzaWduYWxTdGF0ZTogU2lnbmFsU3RhdGVNZXRhPFN0YXRlPixcbiAgLi4udXBkYXRlcnM6IEFycmF5PFBhcnRpYWw8U3RhdGUgJiB7fT4gfCBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlICYge30+PlxuKTogdm9pZCB7XG4gIHNpZ25hbFN0YXRlW1NUQVRFX1NJR05BTF0udXBkYXRlKChjdXJyZW50U3RhdGUpID0+XG4gICAgdXBkYXRlcnMucmVkdWNlKFxuICAgICAgKG5leHRTdGF0ZTogU3RhdGUsIHVwZGF0ZXIpID0+ICh7XG4gICAgICAgIC4uLm5leHRTdGF0ZSxcbiAgICAgICAgLi4uKHR5cGVvZiB1cGRhdGVyID09PSAnZnVuY3Rpb24nID8gdXBkYXRlcihuZXh0U3RhdGUpIDogdXBkYXRlciksXG4gICAgICB9KSxcbiAgICAgIGN1cnJlbnRTdGF0ZVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3BhdGNoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFNL0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBbUMsRUFDbkMsR0FBRyxRQUFzRTtJQUV6RSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDaEQsUUFBUSxDQUFDLE1BQU0sQ0FDYixDQUFDLFNBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsU0FBUztRQUNaLEdBQUcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ2xFLENBQUMsRUFDRixZQUFZLENBQ2IsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNUQVRFX1NJR05BTCwgU2lnbmFsU3RhdGVNZXRhIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlIGV4dGVuZHMgb2JqZWN0PiA9IChcbiAgc3RhdGU6IFN0YXRlXG4pID0+IFBhcnRpYWw8U3RhdGU+O1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHNpZ25hbFN0YXRlOiBTaWduYWxTdGF0ZU1ldGE8U3RhdGU+LFxuICAuLi51cGRhdGVyczogQXJyYXk8UGFydGlhbDxTdGF0ZSAmIHt9PiB8IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8U3RhdGUgJiB7fT4+XG4pOiB2b2lkIHtcbiAgc2lnbmFsU3RhdGVbU1RBVEVfU0lHTkFMXS51cGRhdGUoKGN1cnJlbnRTdGF0ZSkgPT5cbiAgICB1cGRhdGVycy5yZWR1Y2UoXG4gICAgICAobmV4dFN0YXRlOiBTdGF0ZSwgdXBkYXRlcikgPT4gKHtcbiAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICAuLi4odHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKG5leHRTdGF0ZSkgOiB1cGRhdGVyKSxcbiAgICAgIH0pLFxuICAgICAgY3VycmVudFN0YXRlXG4gICAgKVxuICApO1xufVxuIl19
@@ -9,4 +9,4 @@ export function signalState(initialState) {
9
9
  });
10
10
  return deepSignal;
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBYW5ELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFlBQTZDO0lBRTdDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxZQUFxQixDQUFDLENBQUM7SUFDbEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRTtRQUM5QyxLQUFLLEVBQUUsV0FBVztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPLFVBQWdDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZXBTaWduYWwsIHRvRGVlcFNpZ25hbCB9IGZyb20gJy4vZGVlcC1zaWduYWwnO1xuaW1wb3J0IHsgSGFzRnVuY3Rpb25LZXlzIH0gZnJvbSAnLi90cy1oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IFNUQVRFX1NJR05BTCA9IFN5bWJvbCgnU1RBVEVfU0lHTkFMJyk7XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0YXRlTWV0YTxTdGF0ZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IHtcbiAgW1NUQVRFX1NJR05BTF06IFdyaXRhYmxlU2lnbmFsPFN0YXRlPjtcbn07XG5cbnR5cGUgU2lnbmFsU3RhdGVDaGVjazxTdGF0ZT4gPSBIYXNGdW5jdGlvbktleXM8U3RhdGU+IGV4dGVuZHMgZmFsc2UgfCB1bmRlZmluZWRcbiAgPyB1bmtub3duXG4gIDogJ0BuZ3J4L3NpZ25hbHM6IHNpZ25hbCBzdGF0ZSBjYW5ub3QgY29udGFpbiBgRnVuY3Rpb25gIHByb3BlcnR5IG9yIG1ldGhvZCBuYW1lcyc7XG5cbnR5cGUgU2lnbmFsU3RhdGU8U3RhdGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSBEZWVwU2lnbmFsPFN0YXRlPiAmXG4gIFNpZ25hbFN0YXRlTWV0YTxTdGF0ZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdGF0ZTxTdGF0ZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgaW5pdGlhbFN0YXRlOiBTdGF0ZSAmIFNpZ25hbFN0YXRlQ2hlY2s8U3RhdGU+XG4pOiBTaWduYWxTdGF0ZTxTdGF0ZT4ge1xuICBjb25zdCBzdGF0ZVNpZ25hbCA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUpO1xuICBjb25zdCBkZWVwU2lnbmFsID0gdG9EZWVwU2lnbmFsKHN0YXRlU2lnbmFsLmFzUmVhZG9ubHkoKSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWVwU2lnbmFsLCBTVEFURV9TSUdOQUwsIHtcbiAgICB2YWx1ZTogc3RhdGVTaWduYWwsXG4gIH0pO1xuXG4gIHJldHVybiBkZWVwU2lnbmFsIGFzIFNpZ25hbFN0YXRlPFN0YXRlPjtcbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBU25ELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFlBQW1CO0lBRW5CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxZQUFxQixDQUFDLENBQUM7SUFDbEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRTtRQUM5QyxLQUFLLEVBQUUsV0FBVztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPLFVBQWdDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZXBTaWduYWwsIHRvRGVlcFNpZ25hbCB9IGZyb20gJy4vZGVlcC1zaWduYWwnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVfU0lHTkFMID0gU3ltYm9sKCdTVEFURV9TSUdOQUwnKTtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RhdGVNZXRhPFN0YXRlIGV4dGVuZHMgb2JqZWN0PiA9IHtcbiAgW1NUQVRFX1NJR05BTF06IFdyaXRhYmxlU2lnbmFsPFN0YXRlPjtcbn07XG5cbnR5cGUgU2lnbmFsU3RhdGU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0gRGVlcFNpZ25hbDxTdGF0ZT4gJlxuICBTaWduYWxTdGF0ZU1ldGE8U3RhdGU+O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RhdGU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuICBpbml0aWFsU3RhdGU6IFN0YXRlXG4pOiBTaWduYWxTdGF0ZTxTdGF0ZT4ge1xuICBjb25zdCBzdGF0ZVNpZ25hbCA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUpO1xuICBjb25zdCBkZWVwU2lnbmFsID0gdG9EZWVwU2lnbmFsKHN0YXRlU2lnbmFsLmFzUmVhZG9ubHkoKSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWVwU2lnbmFsLCBTVEFURV9TSUdOQUwsIHtcbiAgICB2YWx1ZTogc3RhdGVTaWduYWwsXG4gIH0pO1xuXG4gIHJldHVybiBkZWVwU2lnbmFsIGFzIFNpZ25hbFN0YXRlPFN0YXRlPjtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvc2lnbmFsLXN0b3JlLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBTaWduYWxTdGF0ZU1ldGEgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5pbXBvcnQgeyBJc1Vua25vd25SZWNvcmQsIFByZXR0aWZ5IH0gZnJvbSAnLi90cy1oZWxwZXJzJztcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVDb25maWcgPSB7IHByb3ZpZGVkSW46ICdyb290JyB9O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZVNsaWNlczxTdGF0ZT4gPSB7XG4gIFtLZXkgaW4ga2V5b2YgU3RhdGVdOiBTdGF0ZVtLZXldIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICA/IElzVW5rbm93blJlY29yZDxTdGF0ZVtLZXldPiBleHRlbmRzIHRydWVcbiAgICAgID8gU2lnbmFsPFN0YXRlW0tleV0+XG4gICAgICA6IERlZXBTaWduYWw8U3RhdGVbS2V5XT5cbiAgICA6IFNpZ25hbDxTdGF0ZVtLZXldPjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0b3JlPEZlYXR1cmVSZXN1bHQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+ID1cbiAgUHJldHRpZnk8XG4gICAgU2lnbmFsU3RvcmVTbGljZXM8RmVhdHVyZVJlc3VsdFsnc3RhdGUnXT4gJlxuICAgICAgRmVhdHVyZVJlc3VsdFsnc2lnbmFscyddICZcbiAgICAgIEZlYXR1cmVSZXN1bHRbJ21ldGhvZHMnXSAmXG4gICAgICBTaWduYWxTdGF0ZU1ldGE8UHJldHRpZnk8RmVhdHVyZVJlc3VsdFsnc3RhdGUnXT4+XG4gID47XG5cbmV4cG9ydCB0eXBlIFNpZ25hbHNEaWN0aW9uYXJ5ID0gUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PjtcblxuZXhwb3J0IHR5cGUgTWV0aG9kc0RpY3Rpb25hcnkgPSBSZWNvcmQ8c3RyaW5nLCAoLi4uYXJnczogYW55W10pID0+IHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZUhvb2tzID0ge1xuICBvbkluaXQ/OiAoKSA9PiB2b2lkO1xuICBvbkRlc3Ryb3k/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgSW5uZXJTaWduYWxTdG9yZTxcbiAgU3RhdGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTaWduYWxzIGV4dGVuZHMgU2lnbmFsc0RpY3Rpb25hcnkgPSBTaWduYWxzRGljdGlvbmFyeSxcbiAgTWV0aG9kcyBleHRlbmRzIE1ldGhvZHNEaWN0aW9uYXJ5ID0gTWV0aG9kc0RpY3Rpb25hcnlcbj4gPSB7XG4gIHNsaWNlczogU2lnbmFsU3RvcmVTbGljZXM8U3RhdGU+O1xuICBzaWduYWxzOiBTaWduYWxzO1xuICBtZXRob2RzOiBNZXRob2RzO1xuICBob29rczogU2lnbmFsU3RvcmVIb29rcztcbn0gJiBTaWduYWxTdGF0ZU1ldGE8U3RhdGU+O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSB7XG4gIHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgc2lnbmFsczogU2lnbmFsc0RpY3Rpb25hcnk7XG4gIG1ldGhvZHM6IE1ldGhvZHNEaWN0aW9uYXJ5O1xufTtcblxuZXhwb3J0IHR5cGUgRW1wdHlGZWF0dXJlUmVzdWx0ID0geyBzdGF0ZToge307IHNpZ25hbHM6IHt9OyBtZXRob2RzOiB7fSB9O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIElucHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBPdXRwdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4gPSAoXG4gIHN0b3JlOiBJbm5lclNpZ25hbFN0b3JlPElucHV0WydzdGF0ZSddLCBJbnB1dFsnc2lnbmFscyddLCBJbnB1dFsnbWV0aG9kcyddPlxuKSA9PiBJbm5lclNpZ25hbFN0b3JlPE91dHB1dFsnc3RhdGUnXSwgT3V0cHV0WydzaWduYWxzJ10sIE91dHB1dFsnbWV0aG9kcyddPjtcblxuZXhwb3J0IHR5cGUgTWVyZ2VGZWF0dXJlUmVzdWx0czxcbiAgRmVhdHVyZVJlc3VsdHMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRbXVxuPiA9IEZlYXR1cmVSZXN1bHRzIGV4dGVuZHMgW11cbiAgPyB7fVxuICA6IEZlYXR1cmVSZXN1bHRzIGV4dGVuZHMgW2luZmVyIEZpcnN0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XVxuICA/IEZpcnN0XG4gIDogRmVhdHVyZVJlc3VsdHMgZXh0ZW5kcyBbXG4gICAgICBpbmZlciBGaXJzdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgICAgIGluZmVyIFNlY29uZCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuICAgIF1cbiAgPyBNZXJnZVR3b0ZlYXR1cmVSZXN1bHRzPEZpcnN0LCBTZWNvbmQ+XG4gIDogRmVhdHVyZVJlc3VsdHMgZXh0ZW5kcyBbXG4gICAgICBpbmZlciBGaXJzdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgICAgIGluZmVyIFNlY29uZCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgICAgIC4uLmluZmVyIFJlc3QgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRbXVxuICAgIF1cbiAgPyBNZXJnZUZlYXR1cmVSZXN1bHRzPFtNZXJnZVR3b0ZlYXR1cmVSZXN1bHRzPEZpcnN0LCBTZWNvbmQ+LCAuLi5SZXN0XT5cbiAgOiBuZXZlcjtcblxudHlwZSBGZWF0dXJlUmVzdWx0S2V5czxGZWF0dXJlUmVzdWx0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PiA9XG4gIHwga2V5b2YgRmVhdHVyZVJlc3VsdFsnc3RhdGUnXVxuICB8IGtleW9mIEZlYXR1cmVSZXN1bHRbJ3NpZ25hbHMnXVxuICB8IGtleW9mIEZlYXR1cmVSZXN1bHRbJ21ldGhvZHMnXTtcblxudHlwZSBNZXJnZVR3b0ZlYXR1cmVSZXN1bHRzPFxuICBGaXJzdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgU2Vjb25kIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+ID0ge1xuICBzdGF0ZTogT21pdDxGaXJzdFsnc3RhdGUnXSwgRmVhdHVyZVJlc3VsdEtleXM8U2Vjb25kPj47XG4gIHNpZ25hbHM6IE9taXQ8Rmlyc3RbJ3NpZ25hbHMnXSwgRmVhdHVyZVJlc3VsdEtleXM8U2Vjb25kPj47XG4gIG1ldGhvZHM6IE9taXQ8Rmlyc3RbJ21ldGhvZHMnXSwgRmVhdHVyZVJlc3VsdEtleXM8U2Vjb25kPj47XG59ICYgU2Vjb25kO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvc2lnbmFsLXN0b3JlLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBTaWduYWxTdGF0ZU1ldGEgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5pbXBvcnQgeyBJc0tub3duUmVjb3JkLCBQcmV0dGlmeSB9IGZyb20gJy4vdHMtaGVscGVycyc7XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0b3JlQ29uZmlnID0geyBwcm92aWRlZEluOiAncm9vdCcgfTtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVTbGljZXM8U3RhdGU+ID0gSXNLbm93blJlY29yZDxcbiAgUHJldHRpZnk8U3RhdGU+XG4+IGV4dGVuZHMgdHJ1ZVxuICA/IHtcbiAgICAgIFtLZXkgaW4ga2V5b2YgU3RhdGVdOiBJc0tub3duUmVjb3JkPFN0YXRlW0tleV0+IGV4dGVuZHMgdHJ1ZVxuICAgICAgICA/IERlZXBTaWduYWw8U3RhdGVbS2V5XT5cbiAgICAgICAgOiBTaWduYWw8U3RhdGVbS2V5XT47XG4gICAgfVxuICA6IHt9O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZTxGZWF0dXJlUmVzdWx0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PiA9XG4gIFByZXR0aWZ5PFxuICAgIFNpZ25hbFN0b3JlU2xpY2VzPEZlYXR1cmVSZXN1bHRbJ3N0YXRlJ10+ICZcbiAgICAgIEZlYXR1cmVSZXN1bHRbJ3NpZ25hbHMnXSAmXG4gICAgICBGZWF0dXJlUmVzdWx0WydtZXRob2RzJ10gJlxuICAgICAgU2lnbmFsU3RhdGVNZXRhPFByZXR0aWZ5PEZlYXR1cmVSZXN1bHRbJ3N0YXRlJ10+PlxuICA+O1xuXG5leHBvcnQgdHlwZSBTaWduYWxzRGljdGlvbmFyeSA9IFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj47XG5cbmV4cG9ydCB0eXBlIE1ldGhvZHNEaWN0aW9uYXJ5ID0gUmVjb3JkPHN0cmluZywgKC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVIb29rcyA9IHtcbiAgb25Jbml0PzogKCkgPT4gdm9pZDtcbiAgb25EZXN0cm95PzogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIElubmVyU2lnbmFsU3RvcmU8XG4gIFN0YXRlIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0LFxuICBTaWduYWxzIGV4dGVuZHMgU2lnbmFsc0RpY3Rpb25hcnkgPSBTaWduYWxzRGljdGlvbmFyeSxcbiAgTWV0aG9kcyBleHRlbmRzIE1ldGhvZHNEaWN0aW9uYXJ5ID0gTWV0aG9kc0RpY3Rpb25hcnlcbj4gPSB7XG4gIHNsaWNlczogU2lnbmFsU3RvcmVTbGljZXM8U3RhdGU+O1xuICBzaWduYWxzOiBTaWduYWxzO1xuICBtZXRob2RzOiBNZXRob2RzO1xuICBob29rczogU2lnbmFsU3RvcmVIb29rcztcbn0gJiBTaWduYWxTdGF0ZU1ldGE8U3RhdGU+O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSB7XG4gIHN0YXRlOiBvYmplY3Q7XG4gIHNpZ25hbHM6IFNpZ25hbHNEaWN0aW9uYXJ5O1xuICBtZXRob2RzOiBNZXRob2RzRGljdGlvbmFyeTtcbn07XG5cbmV4cG9ydCB0eXBlIEVtcHR5RmVhdHVyZVJlc3VsdCA9IHsgc3RhdGU6IHt9OyBzaWduYWxzOiB7fTsgbWV0aG9kczoge30gfTtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgT3V0cHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+ID0gKFxuICBzdG9yZTogSW5uZXJTaWduYWxTdG9yZTxJbnB1dFsnc3RhdGUnXSwgSW5wdXRbJ3NpZ25hbHMnXSwgSW5wdXRbJ21ldGhvZHMnXT5cbikgPT4gSW5uZXJTaWduYWxTdG9yZTxPdXRwdXRbJ3N0YXRlJ10sIE91dHB1dFsnc2lnbmFscyddLCBPdXRwdXRbJ21ldGhvZHMnXT47XG5cbmV4cG9ydCB0eXBlIE1lcmdlRmVhdHVyZVJlc3VsdHM8XG4gIEZlYXR1cmVSZXN1bHRzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0W11cbj4gPSBGZWF0dXJlUmVzdWx0cyBleHRlbmRzIFtdXG4gID8ge31cbiAgOiBGZWF0dXJlUmVzdWx0cyBleHRlbmRzIFtpbmZlciBGaXJzdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdF1cbiAgPyBGaXJzdFxuICA6IEZlYXR1cmVSZXN1bHRzIGV4dGVuZHMgW1xuICAgICAgaW5mZXIgRmlyc3QgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gICAgICBpbmZlciBTZWNvbmQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbiAgICBdXG4gID8gTWVyZ2VUd29GZWF0dXJlUmVzdWx0czxGaXJzdCwgU2Vjb25kPlxuICA6IEZlYXR1cmVSZXN1bHRzIGV4dGVuZHMgW1xuICAgICAgaW5mZXIgRmlyc3QgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gICAgICBpbmZlciBTZWNvbmQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gICAgICAuLi5pbmZlciBSZXN0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0W11cbiAgICBdXG4gID8gTWVyZ2VGZWF0dXJlUmVzdWx0czxbTWVyZ2VUd29GZWF0dXJlUmVzdWx0czxGaXJzdCwgU2Vjb25kPiwgLi4uUmVzdF0+XG4gIDogbmV2ZXI7XG5cbnR5cGUgRmVhdHVyZVJlc3VsdEtleXM8RmVhdHVyZVJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPVxuICB8IGtleW9mIEZlYXR1cmVSZXN1bHRbJ3N0YXRlJ11cbiAgfCBrZXlvZiBGZWF0dXJlUmVzdWx0WydzaWduYWxzJ11cbiAgfCBrZXlvZiBGZWF0dXJlUmVzdWx0WydtZXRob2RzJ107XG5cbnR5cGUgTWVyZ2VUd29GZWF0dXJlUmVzdWx0czxcbiAgRmlyc3QgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFNlY29uZCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPiA9IHtcbiAgc3RhdGU6IE9taXQ8Rmlyc3RbJ3N0YXRlJ10sIEZlYXR1cmVSZXN1bHRLZXlzPFNlY29uZD4+O1xuICBzaWduYWxzOiBPbWl0PEZpcnN0WydzaWduYWxzJ10sIEZlYXR1cmVSZXN1bHRLZXlzPFNlY29uZD4+O1xuICBtZXRob2RzOiBPbWl0PEZpcnN0WydtZXRob2RzJ10sIEZlYXR1cmVSZXN1bHRLZXlzPFNlY29uZD4+O1xufSAmIFNlY29uZDtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvdHMtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJldHRpZnk8VD4gPSB7IFtLIGluIGtleW9mIFRdOiBUW0tdIH0gJiB7fTtcblxuZXhwb3J0IHR5cGUgSXNVbmtub3duUmVjb3JkPFQ+ID0gc3RyaW5nIGV4dGVuZHMga2V5b2YgVFxuICA/IHRydWVcbiAgOiBudW1iZXIgZXh0ZW5kcyBrZXlvZiBUXG4gID8gdHJ1ZVxuICA6IGZhbHNlO1xuXG5leHBvcnQgdHlwZSBIYXNPcHRpb25hbFByb3BzPFQ+ID0gVCBleHRlbmRzIFJlcXVpcmVkPFQ+ID8gZmFsc2UgOiB0cnVlO1xuXG5leHBvcnQgdHlwZSBIYXNGdW5jdGlvbktleXM8VD4gPSBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgPyB7XG4gICAgICBbSyBpbiBrZXlvZiBUXTogSyBleHRlbmRzIGtleW9mIEZ1bmN0aW9uID8gdHJ1ZSA6IEhhc0Z1bmN0aW9uS2V5czxUW0tdPjtcbiAgICB9W2tleW9mIFRdXG4gIDogZmFsc2U7XG5cbmV4cG9ydCB0eXBlIEhhc05lc3RlZEZ1bmN0aW9uS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IEhhc0Z1bmN0aW9uS2V5czxUW0tdPjtcbn1ba2V5b2YgVF07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvdHMtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJldHRpZnk8VD4gPSB7IFtLIGluIGtleW9mIFRdOiBUW0tdIH0gJiB7fTtcblxuZXhwb3J0IHR5cGUgSXNSZWNvcmQ8VD4gPSBUIGV4dGVuZHMgb2JqZWN0XG4gID8gVCBleHRlbmRzIHVua25vd25bXVxuICAgID8gZmFsc2VcbiAgICA6IFQgZXh0ZW5kcyBTZXQ8dW5rbm93bj5cbiAgICA/IGZhbHNlXG4gICAgOiBUIGV4dGVuZHMgTWFwPHVua25vd24sIHVua25vd24+XG4gICAgPyBmYWxzZVxuICAgIDogVCBleHRlbmRzIEZ1bmN0aW9uXG4gICAgPyBmYWxzZVxuICAgIDogdHJ1ZVxuICA6IGZhbHNlO1xuXG5leHBvcnQgdHlwZSBJc1Vua25vd25SZWNvcmQ8VD4gPSBzdHJpbmcgZXh0ZW5kcyBrZXlvZiBUXG4gID8gdHJ1ZVxuICA6IG51bWJlciBleHRlbmRzIGtleW9mIFRcbiAgPyB0cnVlXG4gIDogZmFsc2U7XG5cbmV4cG9ydCB0eXBlIElzS25vd25SZWNvcmQ8VD4gPSBJc1JlY29yZDxUPiBleHRlbmRzIHRydWVcbiAgPyBJc1Vua25vd25SZWNvcmQ8VD4gZXh0ZW5kcyB0cnVlXG4gICAgPyBmYWxzZVxuICAgIDogdHJ1ZVxuICA6IGZhbHNlO1xuIl19
@@ -24,4 +24,4 @@ export function withState(stateOrFactory) {
24
24
  };
25
25
  };
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvd2l0aC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQzlDLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLGNBQXFDO0lBS3JDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sS0FBSyxHQUNULE9BQU8sY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUMzRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsR0FBRyxZQUFZO1lBQ2YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hELENBQUMsRUFBRSxFQUF1QixDQUFDLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdEQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRTtZQUN0QyxPQUFPO1lBQ1AsT0FBTztTQUNtQixDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9EZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBleGNsdWRlS2V5cyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTVEFURV9TSUdOQUwgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIFNpZ25hbHNEaWN0aW9uYXJ5LFxuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbn0gZnJvbSAnLi9zaWduYWwtc3RvcmUtbW9kZWxzJztcbmltcG9ydCB7XG4gIEhhc05lc3RlZEZ1bmN0aW9uS2V5cyxcbiAgSGFzT3B0aW9uYWxQcm9wcyxcbiAgSXNVbmtub3duUmVjb3JkLFxufSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG50eXBlIFdpdGhTdGF0ZUNoZWNrPFN0YXRlPiA9IElzVW5rbm93blJlY29yZDxTdGF0ZT4gZXh0ZW5kcyB0cnVlXG4gID8gJ0BuZ3J4L3NpZ25hbHM6IHJvb3Qgc3RhdGUga2V5cyBtdXN0IGJlIHN0cmluZyBsaXRlcmFscydcbiAgOiBIYXNPcHRpb25hbFByb3BzPFN0YXRlPiBleHRlbmRzIHRydWVcbiAgPyAnQG5ncngvc2lnbmFsczogcm9vdCBzdGF0ZSBzbGljZXMgY2Fubm90IGJlIG9wdGlvbmFsJ1xuICA6IEhhc05lc3RlZEZ1bmN0aW9uS2V5czxTdGF0ZT4gZXh0ZW5kcyBmYWxzZSB8IHVuZGVmaW5lZFxuICA/IHVua25vd25cbiAgOiAnQG5ncngvc2lnbmFsczogbmVzdGVkIHN0YXRlIHNsaWNlcyBjYW5ub3QgY29udGFpbiBgRnVuY3Rpb25gIHByb3BlcnR5IG9yIG1ldGhvZCBuYW1lcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoU3RhdGU8U3RhdGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIHN0YXRlOiBTdGF0ZSAmIFdpdGhTdGF0ZUNoZWNrPFN0YXRlPlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHsgc3RhdGU6IFN0YXRlIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzdGF0ZUZhY3Rvcnk6ICgpID0+IFN0YXRlICYgV2l0aFN0YXRlQ2hlY2s8U3RhdGU+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBzdGF0ZTogU3RhdGUgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoU3RhdGU8U3RhdGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIHN0YXRlT3JGYWN0b3J5OiBTdGF0ZSB8ICgoKSA9PiBTdGF0ZSlcbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBFbXB0eUZlYXR1cmVSZXN1bHQgJiB7IHN0YXRlOiBTdGF0ZSB9XG4+IHtcbiAgcmV0dXJuIChzdG9yZSkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID1cbiAgICAgIHR5cGVvZiBzdGF0ZU9yRmFjdG9yeSA9PT0gJ2Z1bmN0aW9uJyA/IHN0YXRlT3JGYWN0b3J5KCkgOiBzdGF0ZU9yRmFjdG9yeTtcbiAgICBjb25zdCBzdGF0ZUtleXMgPSBPYmplY3Qua2V5cyhzdGF0ZSk7XG5cbiAgICBzdG9yZVtTVEFURV9TSUdOQUxdLnVwZGF0ZSgoY3VycmVudFN0YXRlKSA9PiAoe1xuICAgICAgLi4uY3VycmVudFN0YXRlLFxuICAgICAgLi4uc3RhdGUsXG4gICAgfSkpO1xuXG4gICAgY29uc3Qgc2xpY2VzID0gc3RhdGVLZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IHNsaWNlID0gY29tcHV0ZWQoKCkgPT4gc3RvcmVbU1RBVEVfU0lHTkFMXSgpW2tleV0pO1xuICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdG9EZWVwU2lnbmFsKHNsaWNlKSB9O1xuICAgIH0sIHt9IGFzIFNpZ25hbHNEaWN0aW9uYXJ5KTtcbiAgICBjb25zdCBzaWduYWxzID0gZXhjbHVkZUtleXMoc3RvcmUuc2lnbmFscywgc3RhdGVLZXlzKTtcbiAgICBjb25zdCBtZXRob2RzID0gZXhjbHVkZUtleXMoc3RvcmUubWV0aG9kcywgc3RhdGVLZXlzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIHNsaWNlczogeyAuLi5zdG9yZS5zbGljZXMsIC4uLnNsaWNlcyB9LFxuICAgICAgc2lnbmFscyxcbiAgICAgIG1ldGhvZHMsXG4gICAgfSBhcyBJbm5lclNpZ25hbFN0b3JlPFN0YXRlPjtcbiAgfTtcbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvd2l0aC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFxQjlDLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLGNBQXFDO0lBS3JDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sS0FBSyxHQUNULE9BQU8sY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUMzRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsR0FBRyxZQUFZO1lBQ2YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FDcEIsR0FBRyxFQUFFLENBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUM5RCxDQUFDO1lBQ0YsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEQsQ0FBQyxFQUFFLEVBQXVCLENBQUMsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0RCxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsTUFBTSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFO1lBQ3RDLE9BQU87WUFDUCxPQUFPO1NBQ21CLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b0RlZXBTaWduYWwgfSBmcm9tICcuL2RlZXAtc2lnbmFsJztcbmltcG9ydCB7IGV4Y2x1ZGVLZXlzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNUQVRFX1NJR05BTCB9IGZyb20gJy4vc2lnbmFsLXN0YXRlJztcbmltcG9ydCB7XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbiAgSW5uZXJTaWduYWxTdG9yZSxcbiAgU2lnbmFsc0RpY3Rpb25hcnksXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxufSBmcm9tICcuL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVGYWN0b3J5OiAoKSA9PiBTdGF0ZVxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHsgc3RhdGU6IFN0YXRlIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGU6IFN0YXRlXG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBzdGF0ZTogU3RhdGUgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoU3RhdGU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuICBzdGF0ZU9yRmFjdG9yeTogU3RhdGUgfCAoKCkgPT4gU3RhdGUpXG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBzdGF0ZTogU3RhdGUgfVxuPiB7XG4gIHJldHVybiAoc3RvcmUpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9XG4gICAgICB0eXBlb2Ygc3RhdGVPckZhY3RvcnkgPT09ICdmdW5jdGlvbicgPyBzdGF0ZU9yRmFjdG9yeSgpIDogc3RhdGVPckZhY3Rvcnk7XG4gICAgY29uc3Qgc3RhdGVLZXlzID0gT2JqZWN0LmtleXMoc3RhdGUpO1xuXG4gICAgc3RvcmVbU1RBVEVfU0lHTkFMXS51cGRhdGUoKGN1cnJlbnRTdGF0ZSkgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRTdGF0ZSxcbiAgICAgIC4uLnN0YXRlLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHNsaWNlcyA9IHN0YXRlS2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBjb25zdCBzbGljZSA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiAoc3RvcmVbU1RBVEVfU0lHTkFMXSgpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldXG4gICAgICApO1xuICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdG9EZWVwU2lnbmFsKHNsaWNlKSB9O1xuICAgIH0sIHt9IGFzIFNpZ25hbHNEaWN0aW9uYXJ5KTtcbiAgICBjb25zdCBzaWduYWxzID0gZXhjbHVkZUtleXMoc3RvcmUuc2lnbmFscywgc3RhdGVLZXlzKTtcbiAgICBjb25zdCBtZXRob2RzID0gZXhjbHVkZUtleXMoc3RvcmUubWV0aG9kcywgc3RhdGVLZXlzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIHNsaWNlczogeyAuLi5zdG9yZS5zbGljZXMsIC4uLnNsaWNlcyB9LFxuICAgICAgc2lnbmFscyxcbiAgICAgIG1ldGhvZHMsXG4gICAgfSBhcyBJbm5lclNpZ25hbFN0b3JlPFN0YXRlPjtcbiAgfTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"ngrx-signals-entities.mjs","sources":["../../../../modules/signals/entities/src/models.ts","../../../../modules/signals/entities/src/helpers.ts","../../../../modules/signals/entities/src/updaters/add-entity.ts","../../../../modules/signals/entities/src/updaters/add-entities.ts","../../../../modules/signals/entities/src/updaters/remove-entity.ts","../../../../modules/signals/entities/src/updaters/remove-entities.ts","../../../../modules/signals/entities/src/updaters/remove-all-entities.ts","../../../../modules/signals/entities/src/updaters/set-entity.ts","../../../../modules/signals/entities/src/updaters/set-entities.ts","../../../../modules/signals/entities/src/updaters/set-all-entities.ts","../../../../modules/signals/entities/src/updaters/update-entity.ts","../../../../modules/signals/entities/src/updaters/update-entities.ts","../../../../modules/signals/entities/src/updaters/update-all-entities.ts","../../../../modules/signals/entities/src/with-entities.ts","../../../../modules/signals/entities/ngrx-signals-entities.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\nexport type EntityId = string | number;\n\nexport type EntityMap<Entity> = Record<EntityId, Entity>;\n\nexport type EntityState<Entity> = {\n entityMap: EntityMap<Entity>;\n ids: EntityId[];\n};\n\nexport type NamedEntityState<Entity, Collection extends string> = {\n [K in Collection as `${K}EntityMap`]: EntityMap<Entity>;\n} & { [K in Collection as `${K}Ids`]: EntityId[] };\n\nexport type EntitySignals<Entity> = {\n entities: Signal<Entity[]>;\n};\n\nexport type NamedEntitySignals<Entity, Collection extends string> = {\n [K in Collection as `${K}Entities`]: Signal<Entity[]>;\n};\n\nexport type EntityIdProps<Entity> = {\n [K in keyof Entity as Entity[K] extends EntityId ? K : never]: Entity[K];\n};\n\nexport type EntityIdKey<Entity> = keyof EntityIdProps<Entity> & string;\n\nexport type EntityPredicate<Entity> = (entity: Entity) => boolean;\n\nexport type EntityChanges<Entity> =\n | Partial<Entity>\n | ((entity: Entity) => Partial<Entity>);\n\nexport enum DidMutate {\n None,\n Entities,\n Both,\n}\n","import {\n DidMutate,\n EntityChanges,\n EntityId,\n EntityPredicate,\n EntityState,\n} from './models';\n\nexport function getEntityIdKey(config?: { idKey?: string }): string {\n return config?.idKey ?? 'id';\n}\n\nexport function getEntityStateKeys(config?: { collection?: string }): {\n entityMapKey: string;\n idsKey: string;\n entitiesKey: string;\n} {\n const collection = config?.collection;\n const entityMapKey =\n collection === undefined ? 'entityMap' : `${collection}EntityMap`;\n const idsKey = collection === undefined ? 'ids' : `${collection}Ids`;\n const entitiesKey =\n collection === undefined ? 'entities' : `${collection}Entities`;\n\n return { entityMapKey, idsKey, entitiesKey };\n}\n\nexport function cloneEntityState(\n state: Record<string, any>,\n stateKeys: {\n entityMapKey: string;\n idsKey: string;\n }\n): EntityState<any> {\n return {\n entityMap: { ...state[stateKeys.entityMapKey] },\n ids: [...state[stateKeys.idsKey]],\n };\n}\n\nexport function getEntityUpdaterResult(\n state: EntityState<any>,\n stateKeys: {\n entityMapKey: string;\n idsKey: string;\n },\n didMutate: DidMutate\n): Record<string, any> {\n switch (didMutate) {\n case DidMutate.Both: {\n return {\n [stateKeys.entityMapKey]: state.entityMap,\n [stateKeys.idsKey]: state.ids,\n };\n }\n case DidMutate.Entities: {\n return { [stateKeys.entityMapKey]: state.entityMap };\n }\n default: {\n return {};\n }\n }\n}\n\nexport function addEntityMutably(\n state: EntityState<any>,\n entity: any,\n idKey: string\n): DidMutate {\n const id = entity[idKey];\n\n if (state.entityMap[id]) {\n return DidMutate.None;\n }\n\n state.entityMap[id] = entity;\n state.ids.push(id);\n\n return DidMutate.Both;\n}\n\nexport function addEntitiesMutably(\n state: EntityState<any>,\n entities: any[],\n idKey: string\n): DidMutate {\n let didMutate = DidMutate.None;\n\n for (const entity of entities) {\n const result = addEntityMutably(state, entity, idKey);\n\n if (result === DidMutate.Both) {\n didMutate = result;\n }\n }\n\n return didMutate;\n}\n\nexport function setEntityMutably(\n state: EntityState<any>,\n entity: any,\n idKey: string\n): DidMutate {\n const id = entity[idKey];\n\n if (state.entityMap[id]) {\n state.entityMap[id] = entity;\n return DidMutate.Entities;\n }\n\n state.entityMap[id] = entity;\n state.ids.push(id);\n\n return DidMutate.Both;\n}\n\nexport function setEntitiesMutably(\n state: EntityState<any>,\n entities: any[],\n idKey: string\n): DidMutate {\n let didMutate = DidMutate.None;\n\n for (const entity of entities) {\n const result = setEntityMutably(state, entity, idKey);\n\n if (didMutate === DidMutate.Both) {\n continue;\n }\n\n didMutate = result;\n }\n\n return didMutate;\n}\n\nexport function removeEntitiesMutably(\n state: EntityState<any>,\n idsOrPredicate: EntityId[] | EntityPredicate<any>\n): DidMutate {\n const ids = Array.isArray(idsOrPredicate)\n ? idsOrPredicate\n : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));\n let didMutate = DidMutate.None;\n\n for (const id of ids) {\n if (state.entityMap[id]) {\n delete state.entityMap[id];\n didMutate = DidMutate.Both;\n }\n }\n\n if (didMutate === DidMutate.Both) {\n state.ids = state.ids.filter((id) => id in state.entityMap);\n }\n\n return didMutate;\n}\n\nexport function updateEntitiesMutably(\n state: EntityState<any>,\n idsOrPredicate: EntityId[] | EntityPredicate<any>,\n changes: EntityChanges<any>\n): DidMutate {\n const ids = Array.isArray(idsOrPredicate)\n ? idsOrPredicate\n : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));\n let didMutate = DidMutate.None;\n\n for (const id of ids) {\n const entity = state.entityMap[id];\n\n if (entity) {\n const changesRecord =\n typeof changes === 'function' ? changes(entity) : changes;\n state.entityMap[id] = { ...entity, ...changesRecord };\n didMutate = DidMutate.Entities;\n }\n }\n\n return didMutate;\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n addEntityMutably,\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n} from '../helpers';\n\nexport function addEntity<Entity extends { id: EntityId }>(\n entity: Entity\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntity<Entity, Collection extends string>(\n entity: Entity,\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntity<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entity: Entity,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntity<Entity>(\n entity: Entity,\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntity(\n entity: any,\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = addEntityMutably(clonedState, entity, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n addEntitiesMutably,\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n} from '../helpers';\n\nexport function addEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = addEntitiesMutably(clonedState, entities, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityId, EntityState, NamedEntityState } from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n removeEntitiesMutably,\n} from '../helpers';\n\nexport function removeEntity(\n id: EntityId\n): PartialStateUpdater<EntityState<any>>;\nexport function removeEntity<Collection extends string>(\n id: EntityId,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeEntity(\n id: EntityId,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = removeEntitiesMutably(clonedState, [id]);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityPredicate,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n removeEntitiesMutably,\n} from '../helpers';\n\nexport function removeEntities(\n ids: EntityId[]\n): PartialStateUpdater<EntityState<any>>;\nexport function removeEntities<Entity>(\n predicate: EntityPredicate<Entity>\n): PartialStateUpdater<EntityState<Entity>>;\nexport function removeEntities<Collection extends string>(\n ids: EntityId[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n predicate: EntityPredicate<Entity>,\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function removeEntities(\n idsOrPredicate: EntityId[] | EntityPredicate<any>,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = removeEntitiesMutably(clonedState, idsOrPredicate);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityState, NamedEntityState } from '../models';\nimport { getEntityStateKeys } from '../helpers';\n\nexport function removeAllEntities(): PartialStateUpdater<EntityState<any>>;\nexport function removeAllEntities<Collection extends string>(config: {\n collection: Collection;\n}): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeAllEntities(config?: {\n collection?: string;\n}): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return () => ({\n [stateKeys.entityMapKey]: {},\n [stateKeys.idsKey]: [],\n });\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n setEntityMutably,\n} from '../helpers';\n\nexport function setEntity<Entity extends { id: EntityId }>(\n entity: Entity\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntity<Entity, Collection extends string>(\n entity: Entity,\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntity<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entity: Entity,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntity<Entity>(\n entity: Entity,\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntity(\n entity: any,\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = setEntityMutably(clonedState, entity, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n setEntitiesMutably,\n} from '../helpers';\n\nexport function setEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = setEntitiesMutably(clonedState, entities, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n getEntityIdKey,\n getEntityStateKeys,\n setEntitiesMutably,\n} from '../helpers';\n\nexport function setAllEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setAllEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setAllEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setAllEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setAllEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return () => {\n const state: EntityState<any> = { entityMap: {}, ids: [] };\n setEntitiesMutably(state, entities, idKey);\n\n return {\n [stateKeys.entityMapKey]: state.entityMap,\n [stateKeys.idsKey]: state.ids,\n };\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityChanges,\n EntityId,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateEntity<Entity>(update: {\n id: EntityId;\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntity<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n id: EntityId;\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntity(\n update: {\n id: EntityId;\n changes: EntityChanges<any>;\n },\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n [update.id],\n update.changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityChanges,\n EntityId,\n EntityPredicate,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateEntities<Entity>(update: {\n ids: EntityId[];\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntities<Entity>(update: {\n predicate: EntityPredicate<Entity>;\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n ids: EntityId[];\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n predicate: EntityPredicate<Entity>;\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntities(\n update: ({ ids: EntityId[] } | { predicate: EntityPredicate<any> }) & {\n changes: EntityChanges<any>;\n },\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n const idsOrPredicate = 'ids' in update ? update.ids : update.predicate;\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n idsOrPredicate,\n update.changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityChanges, EntityState, NamedEntityState } from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateAllEntities<Entity>(\n changes: EntityChanges<Entity & {}>\n): PartialStateUpdater<EntityState<Entity>>;\nexport function updateAllEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n changes: EntityChanges<Entity & {}>,\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateAllEntities(\n changes: EntityChanges<any>,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n (state as Record<string, any>)[stateKeys.idsKey],\n changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { computed } from '@angular/core';\nimport {\n SignalStoreFeature,\n signalStoreFeature,\n withComputed,\n withState,\n} from '@ngrx/signals';\nimport {\n EntityId,\n EntityMap,\n EntitySignals,\n EntityState,\n NamedEntitySignals,\n NamedEntityState,\n} from './models';\nimport { getEntityStateKeys } from './helpers';\n\nexport function withEntities<Entity>(): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: EntityState<Entity>;\n signals: EntitySignals<Entity>;\n methods: {};\n }\n>;\nexport function withEntities<Entity, Collection extends string>(config: {\n entity: Entity;\n collection: Collection;\n}): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: NamedEntityState<Entity, Collection>;\n signals: NamedEntitySignals<Entity, Collection>;\n methods: {};\n }\n>;\nexport function withEntities<Entity>(config: {\n entity: Entity;\n}): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: EntityState<Entity>;\n signals: EntitySignals<Entity>;\n methods: {};\n }\n>;\nexport function withEntities<Entity>(config?: {\n entity: Entity;\n collection?: string;\n}): SignalStoreFeature {\n const { entityMapKey, idsKey, entitiesKey } = getEntityStateKeys(config);\n\n return signalStoreFeature(\n withState({\n [entityMapKey]: {},\n [idsKey]: [],\n } as any),\n withComputed((store) => ({\n [entitiesKey]: computed(() => {\n const entityMap = store[entityMapKey]() as EntityMap<Entity>;\n const ids = store[idsKey]() as EntityId[];\n\n return ids.map((id) => entityMap[id]);\n }),\n }))\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrx-signals-entities.mjs","sources":["../../../../modules/signals/entities/src/models.ts","../../../../modules/signals/entities/src/helpers.ts","../../../../modules/signals/entities/src/updaters/add-entity.ts","../../../../modules/signals/entities/src/updaters/add-entities.ts","../../../../modules/signals/entities/src/updaters/remove-entity.ts","../../../../modules/signals/entities/src/updaters/remove-entities.ts","../../../../modules/signals/entities/src/updaters/remove-all-entities.ts","../../../../modules/signals/entities/src/updaters/set-entity.ts","../../../../modules/signals/entities/src/updaters/set-entities.ts","../../../../modules/signals/entities/src/updaters/set-all-entities.ts","../../../../modules/signals/entities/src/updaters/update-entity.ts","../../../../modules/signals/entities/src/updaters/update-entities.ts","../../../../modules/signals/entities/src/updaters/update-all-entities.ts","../../../../modules/signals/entities/src/with-entities.ts","../../../../modules/signals/entities/ngrx-signals-entities.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\nexport type EntityId = string | number;\n\nexport type EntityMap<Entity> = Record<EntityId, Entity>;\n\nexport type EntityState<Entity> = {\n entityMap: EntityMap<Entity>;\n ids: EntityId[];\n};\n\nexport type NamedEntityState<Entity, Collection extends string> = {\n [K in Collection as `${K}EntityMap`]: EntityMap<Entity>;\n} & { [K in Collection as `${K}Ids`]: EntityId[] };\n\nexport type EntitySignals<Entity> = {\n entities: Signal<Entity[]>;\n};\n\nexport type NamedEntitySignals<Entity, Collection extends string> = {\n [K in Collection as `${K}Entities`]: Signal<Entity[]>;\n};\n\nexport type EntityIdProps<Entity> = {\n [K in keyof Entity as Entity[K] extends EntityId ? K : never]: Entity[K];\n};\n\nexport type EntityIdKey<Entity> = keyof EntityIdProps<Entity> & string;\n\nexport type EntityPredicate<Entity> = (entity: Entity) => boolean;\n\nexport type EntityChanges<Entity> =\n | Partial<Entity>\n | ((entity: Entity) => Partial<Entity>);\n\nexport enum DidMutate {\n None,\n Entities,\n Both,\n}\n","import {\n DidMutate,\n EntityChanges,\n EntityId,\n EntityPredicate,\n EntityState,\n} from './models';\n\nexport function getEntityIdKey(config?: { idKey?: string }): string {\n return config?.idKey ?? 'id';\n}\n\nexport function getEntityStateKeys(config?: { collection?: string }): {\n entityMapKey: string;\n idsKey: string;\n entitiesKey: string;\n} {\n const collection = config?.collection;\n const entityMapKey =\n collection === undefined ? 'entityMap' : `${collection}EntityMap`;\n const idsKey = collection === undefined ? 'ids' : `${collection}Ids`;\n const entitiesKey =\n collection === undefined ? 'entities' : `${collection}Entities`;\n\n return { entityMapKey, idsKey, entitiesKey };\n}\n\nexport function cloneEntityState(\n state: Record<string, any>,\n stateKeys: {\n entityMapKey: string;\n idsKey: string;\n }\n): EntityState<any> {\n return {\n entityMap: { ...state[stateKeys.entityMapKey] },\n ids: [...state[stateKeys.idsKey]],\n };\n}\n\nexport function getEntityUpdaterResult(\n state: EntityState<any>,\n stateKeys: {\n entityMapKey: string;\n idsKey: string;\n },\n didMutate: DidMutate\n): Record<string, any> {\n switch (didMutate) {\n case DidMutate.Both: {\n return {\n [stateKeys.entityMapKey]: state.entityMap,\n [stateKeys.idsKey]: state.ids,\n };\n }\n case DidMutate.Entities: {\n return { [stateKeys.entityMapKey]: state.entityMap };\n }\n default: {\n return {};\n }\n }\n}\n\nexport function addEntityMutably(\n state: EntityState<any>,\n entity: any,\n idKey: string\n): DidMutate {\n const id = entity[idKey];\n\n if (state.entityMap[id]) {\n return DidMutate.None;\n }\n\n state.entityMap[id] = entity;\n state.ids.push(id);\n\n return DidMutate.Both;\n}\n\nexport function addEntitiesMutably(\n state: EntityState<any>,\n entities: any[],\n idKey: string\n): DidMutate {\n let didMutate = DidMutate.None;\n\n for (const entity of entities) {\n const result = addEntityMutably(state, entity, idKey);\n\n if (result === DidMutate.Both) {\n didMutate = result;\n }\n }\n\n return didMutate;\n}\n\nexport function setEntityMutably(\n state: EntityState<any>,\n entity: any,\n idKey: string\n): DidMutate {\n const id = entity[idKey];\n\n if (state.entityMap[id]) {\n state.entityMap[id] = entity;\n return DidMutate.Entities;\n }\n\n state.entityMap[id] = entity;\n state.ids.push(id);\n\n return DidMutate.Both;\n}\n\nexport function setEntitiesMutably(\n state: EntityState<any>,\n entities: any[],\n idKey: string\n): DidMutate {\n let didMutate = DidMutate.None;\n\n for (const entity of entities) {\n const result = setEntityMutably(state, entity, idKey);\n\n if (didMutate === DidMutate.Both) {\n continue;\n }\n\n didMutate = result;\n }\n\n return didMutate;\n}\n\nexport function removeEntitiesMutably(\n state: EntityState<any>,\n idsOrPredicate: EntityId[] | EntityPredicate<any>\n): DidMutate {\n const ids = Array.isArray(idsOrPredicate)\n ? idsOrPredicate\n : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));\n let didMutate = DidMutate.None;\n\n for (const id of ids) {\n if (state.entityMap[id]) {\n delete state.entityMap[id];\n didMutate = DidMutate.Both;\n }\n }\n\n if (didMutate === DidMutate.Both) {\n state.ids = state.ids.filter((id) => id in state.entityMap);\n }\n\n return didMutate;\n}\n\nexport function updateEntitiesMutably(\n state: EntityState<any>,\n idsOrPredicate: EntityId[] | EntityPredicate<any>,\n changes: EntityChanges<any>\n): DidMutate {\n const ids = Array.isArray(idsOrPredicate)\n ? idsOrPredicate\n : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));\n let didMutate = DidMutate.None;\n\n for (const id of ids) {\n const entity = state.entityMap[id];\n\n if (entity) {\n const changesRecord =\n typeof changes === 'function' ? changes(entity) : changes;\n state.entityMap[id] = { ...entity, ...changesRecord };\n didMutate = DidMutate.Entities;\n }\n }\n\n return didMutate;\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n addEntityMutably,\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n} from '../helpers';\n\nexport function addEntity<Entity extends { id: EntityId }>(\n entity: Entity\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntity<Entity, Collection extends string>(\n entity: Entity,\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntity<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entity: Entity,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntity<Entity>(\n entity: Entity,\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntity(\n entity: any,\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = addEntityMutably(clonedState, entity, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n addEntitiesMutably,\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n} from '../helpers';\n\nexport function addEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = addEntitiesMutably(clonedState, entities, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityId, EntityState, NamedEntityState } from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n removeEntitiesMutably,\n} from '../helpers';\n\nexport function removeEntity(\n id: EntityId\n): PartialStateUpdater<EntityState<any>>;\nexport function removeEntity<Collection extends string>(\n id: EntityId,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeEntity(\n id: EntityId,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = removeEntitiesMutably(clonedState, [id]);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityPredicate,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n removeEntitiesMutably,\n} from '../helpers';\n\nexport function removeEntities(\n ids: EntityId[]\n): PartialStateUpdater<EntityState<any>>;\nexport function removeEntities<Entity>(\n predicate: EntityPredicate<Entity>\n): PartialStateUpdater<EntityState<Entity>>;\nexport function removeEntities<Collection extends string>(\n ids: EntityId[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n predicate: EntityPredicate<Entity>,\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function removeEntities(\n idsOrPredicate: EntityId[] | EntityPredicate<any>,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = removeEntitiesMutably(clonedState, idsOrPredicate);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityState, NamedEntityState } from '../models';\nimport { getEntityStateKeys } from '../helpers';\n\nexport function removeAllEntities(): PartialStateUpdater<EntityState<any>>;\nexport function removeAllEntities<Collection extends string>(config: {\n collection: Collection;\n}): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeAllEntities(config?: {\n collection?: string;\n}): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return () => ({\n [stateKeys.entityMapKey]: {},\n [stateKeys.idsKey]: [],\n });\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n setEntityMutably,\n} from '../helpers';\n\nexport function setEntity<Entity extends { id: EntityId }>(\n entity: Entity\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntity<Entity, Collection extends string>(\n entity: Entity,\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntity<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entity: Entity,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntity<Entity>(\n entity: Entity,\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntity(\n entity: any,\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = setEntityMutably(clonedState, entity, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n setEntitiesMutably,\n} from '../helpers';\n\nexport function setEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = setEntitiesMutably(clonedState, entities, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n getEntityIdKey,\n getEntityStateKeys,\n setEntitiesMutably,\n} from '../helpers';\n\nexport function setAllEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setAllEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setAllEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setAllEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setAllEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return () => {\n const state: EntityState<any> = { entityMap: {}, ids: [] };\n setEntitiesMutably(state, entities, idKey);\n\n return {\n [stateKeys.entityMapKey]: state.entityMap,\n [stateKeys.idsKey]: state.ids,\n };\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityChanges,\n EntityId,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateEntity<Entity>(update: {\n id: EntityId;\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntity<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n id: EntityId;\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntity(\n update: {\n id: EntityId;\n changes: EntityChanges<any>;\n },\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n [update.id],\n update.changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityChanges,\n EntityId,\n EntityPredicate,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateEntities<Entity>(update: {\n ids: EntityId[];\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntities<Entity>(update: {\n predicate: EntityPredicate<Entity>;\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n ids: EntityId[];\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n predicate: EntityPredicate<Entity>;\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntities(\n update: ({ ids: EntityId[] } | { predicate: EntityPredicate<any> }) & {\n changes: EntityChanges<any>;\n },\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n const idsOrPredicate = 'ids' in update ? update.ids : update.predicate;\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n idsOrPredicate,\n update.changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityChanges, EntityState, NamedEntityState } from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateAllEntities<Entity>(\n changes: EntityChanges<Entity & {}>\n): PartialStateUpdater<EntityState<Entity>>;\nexport function updateAllEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n changes: EntityChanges<Entity & {}>,\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateAllEntities(\n changes: EntityChanges<any>,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n (state as Record<string, any>)[stateKeys.idsKey],\n changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { computed, Signal } from '@angular/core';\nimport {\n SignalStoreFeature,\n signalStoreFeature,\n withComputed,\n withState,\n} from '@ngrx/signals';\nimport {\n EntityId,\n EntityMap,\n EntitySignals,\n EntityState,\n NamedEntitySignals,\n NamedEntityState,\n} from './models';\nimport { getEntityStateKeys } from './helpers';\n\nexport function withEntities<Entity>(): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: EntityState<Entity>;\n signals: EntitySignals<Entity>;\n methods: {};\n }\n>;\nexport function withEntities<Entity, Collection extends string>(config: {\n entity: Entity;\n collection: Collection;\n}): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: NamedEntityState<Entity, Collection>;\n signals: NamedEntitySignals<Entity, Collection>;\n methods: {};\n }\n>;\nexport function withEntities<Entity>(config: {\n entity: Entity;\n}): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: EntityState<Entity>;\n signals: EntitySignals<Entity>;\n methods: {};\n }\n>;\nexport function withEntities<Entity>(config?: {\n entity: Entity;\n collection?: string;\n}): SignalStoreFeature {\n const { entityMapKey, idsKey, entitiesKey } = getEntityStateKeys(config);\n\n return signalStoreFeature(\n withState({\n [entityMapKey]: {},\n [idsKey]: [],\n }),\n withComputed((store: Record<string, Signal<unknown>>) => ({\n [entitiesKey]: computed(() => {\n const entityMap = store[entityMapKey]() as EntityMap<Entity>;\n const ids = store[idsKey]() as EntityId[];\n\n return ids.map((id) => entityMap[id]);\n }),\n }))\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { untracked, computed, signal, Injector, inject, runInInjectionContext, DestroyRef, Injectable } from '@angular/core';
2
+ import { untracked, isSignal, computed, signal, Injector, inject, runInInjectionContext, DestroyRef, Injectable } from '@angular/core';
3
3
 
4
4
  function toDeepSignal(signal) {
5
5
  const value = untracked(() => signal());
@@ -11,8 +11,10 @@ function toDeepSignal(signal) {
11
11
  if (!(prop in value)) {
12
12
  return target[prop];
13
13
  }
14
- if (!target[prop]) {
15
- target[prop] = computed(() => target()[prop]);
14
+ if (!isSignal(target[prop])) {
15
+ Object.defineProperty(target, prop, {
16
+ value: computed(() => target()[prop]),
17
+ });
16
18
  }
17
19
  return toDeepSignal(target[prop]);
18
20
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ngrx-signals.mjs","sources":["../../../../modules/signals/src/deep-signal.ts","../../../../modules/signals/src/signal-state.ts","../../../../modules/signals/src/get-state.ts","../../../../modules/signals/src/patch-state.ts","../../../../modules/signals/src/signal-store.ts","../../../../modules/signals/src/signal-store-feature.ts","../../../../modules/signals/src/helpers.ts","../../../../modules/signals/src/with-computed.ts","../../../../modules/signals/src/with-hooks.ts","../../../../modules/signals/src/with-methods.ts","../../../../modules/signals/src/with-state.ts","../../../../modules/signals/ngrx-signals.ts"],"sourcesContent":["import { computed, Signal, untracked } from '@angular/core';\nimport { IsUnknownRecord } from './ts-helpers';\n\nexport type DeepSignal<T> = Signal<T> &\n (T extends Record<string, unknown>\n ? IsUnknownRecord<T> extends true\n ? unknown\n : Readonly<{\n [K in keyof T]: T[K] extends Record<string, unknown>\n ? IsUnknownRecord<T[K]> extends true\n ? Signal<T[K]>\n : DeepSignal<T[K]>\n : Signal<T[K]>;\n }>\n : unknown);\n\nexport function toDeepSignal<T>(signal: Signal<T>): DeepSignal<T> {\n const value = untracked(() => signal());\n if (!isRecord(value)) {\n return signal as DeepSignal<T>;\n }\n\n return new Proxy(signal, {\n get(target: any, prop) {\n if (!(prop in value)) {\n return target[prop];\n }\n\n if (!target[prop]) {\n target[prop] = computed(() => target()[prop]);\n }\n\n return toDeepSignal(target[prop]);\n },\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value?.constructor === Object;\n}\n","import { signal, WritableSignal } from '@angular/core';\nimport { DeepSignal, toDeepSignal } from './deep-signal';\nimport { HasFunctionKeys } from './ts-helpers';\n\nexport const STATE_SIGNAL = Symbol('STATE_SIGNAL');\n\nexport type SignalStateMeta<State extends Record<string, unknown>> = {\n [STATE_SIGNAL]: WritableSignal<State>;\n};\n\ntype SignalStateCheck<State> = HasFunctionKeys<State> extends false | undefined\n ? unknown\n : '@ngrx/signals: signal state cannot contain `Function` property or method names';\n\ntype SignalState<State extends Record<string, unknown>> = DeepSignal<State> &\n SignalStateMeta<State>;\n\nexport function signalState<State extends Record<string, unknown>>(\n initialState: State & SignalStateCheck<State>\n): SignalState<State> {\n const stateSignal = signal(initialState as State);\n const deepSignal = toDeepSignal(stateSignal.asReadonly());\n Object.defineProperty(deepSignal, STATE_SIGNAL, {\n value: stateSignal,\n });\n\n return deepSignal as SignalState<State>;\n}\n","import { STATE_SIGNAL, SignalStateMeta } from './signal-state';\n\nexport function getState<State extends Record<string, unknown>>(\n signalState: SignalStateMeta<State>\n): State {\n return signalState[STATE_SIGNAL]();\n}\n","import { STATE_SIGNAL, SignalStateMeta } from './signal-state';\n\nexport type PartialStateUpdater<State extends Record<string, unknown>> = (\n state: State\n) => Partial<State>;\n\nexport function patchState<State extends Record<string, unknown>>(\n signalState: SignalStateMeta<State>,\n ...updaters: Array<Partial<State & {}> | PartialStateUpdater<State & {}>>\n): void {\n signalState[STATE_SIGNAL].update((currentState) =>\n updaters.reduce(\n (nextState: State, updater) => ({\n ...nextState,\n ...(typeof updater === 'function' ? updater(nextState) : updater),\n }),\n currentState\n )\n );\n}\n","import {\n DestroyRef,\n inject,\n Injectable,\n Injector,\n runInInjectionContext,\n signal,\n Type,\n} from '@angular/core';\nimport { STATE_SIGNAL } from './signal-state';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MergeFeatureResults,\n SignalStore,\n SignalStoreConfig,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStore<F1>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStore<MergeFeatureResults<[F1, F2]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8, F9]>>>;\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStore<F1>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStore<MergeFeatureResults<[F1, F2]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8, F9]>>>;\n\nexport function signalStore(\n ...args: [SignalStoreConfig, ...SignalStoreFeature[]] | SignalStoreFeature[]\n): Type<SignalStore<any>> {\n const signalStoreArgs = [...args];\n\n const config: Partial<SignalStoreConfig> =\n 'providedIn' in signalStoreArgs[0]\n ? (signalStoreArgs.shift() as SignalStoreConfig)\n : {};\n const features = signalStoreArgs as SignalStoreFeature[];\n\n @Injectable({ providedIn: config.providedIn || null })\n class SignalStore {\n constructor() {\n const innerStore = features.reduce(\n (store, feature) => feature(store),\n getInitialInnerStore()\n );\n const { slices, signals, methods, hooks } = innerStore;\n const props = { ...slices, ...signals, ...methods };\n\n (this as any)[STATE_SIGNAL] = innerStore[STATE_SIGNAL];\n\n for (const key in props) {\n (this as any)[key] = props[key];\n }\n\n if (hooks.onInit) {\n hooks.onInit();\n }\n\n if (hooks.onDestroy) {\n const injector = inject(Injector);\n\n inject(DestroyRef).onDestroy(() => {\n runInInjectionContext(injector, hooks.onDestroy!);\n });\n }\n }\n }\n\n return SignalStore;\n}\n\nexport function getInitialInnerStore(): InnerSignalStore {\n return {\n [STATE_SIGNAL]: signal({}),\n slices: {},\n signals: {},\n methods: {},\n hooks: {},\n };\n}\n","import {\n EmptyFeatureResult,\n MergeFeatureResults,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function signalStoreFeature<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): SignalStoreFeature<EmptyFeatureResult, F1>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2, F3]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>\n): SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n Input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >,\n f6: SignalStoreFeature<\n MergeFeatureResults<\n [Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4, F5]\n >,\n F6\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature(\n featureOrInput: SignalStoreFeature | Partial<SignalStoreFeatureResult>,\n ...restFeatures: SignalStoreFeature[]\n): SignalStoreFeature {\n const features =\n typeof featureOrInput === 'function'\n ? [featureOrInput, ...restFeatures]\n : restFeatures;\n\n return (inputStore) =>\n features.reduce((store, feature) => feature(store), inputStore);\n}\n\nexport function type<T>(): T {\n return undefined as T;\n}\n","export function excludeKeys<\n Obj extends Record<string, unknown>,\n Keys extends string[]\n>(obj: Obj, keys: Keys): Omit<Obj, Keys[number]> {\n return Object.keys(obj).reduce(\n (acc, key) => (keys.includes(key) ? acc : { ...acc, [key]: obj[key] }),\n {}\n ) as Omit<Obj, Keys[number]>;\n}\n","import { excludeKeys } from './helpers';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withComputed<\n Input extends SignalStoreFeatureResult,\n Signals extends SignalsDictionary\n>(\n signalsFactory: (\n store: Prettify<SignalStoreSlices<Input['state']> & Input['signals']>\n ) => Signals\n): SignalStoreFeature<Input, EmptyFeatureResult & { signals: Signals }> {\n return (store) => {\n const signals = signalsFactory({ ...store.slices, ...store.signals });\n const signalsKeys = Object.keys(signals);\n const slices = excludeKeys(store.slices, signalsKeys);\n const methods = excludeKeys(store.methods, signalsKeys);\n\n return {\n ...store,\n slices,\n signals: { ...store.signals, ...signals },\n methods,\n } as InnerSignalStore<Record<string, unknown>, Signals>;\n };\n}\n","import { STATE_SIGNAL, SignalStateMeta } from './signal-state';\nimport {\n EmptyFeatureResult,\n SignalStoreFeature,\n SignalStoreSlices,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\ntype HooksFactory<Input extends SignalStoreFeatureResult> = (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n SignalStateMeta<Prettify<Input['state']>>\n >\n) => void;\n\nexport function withHooks<Input extends SignalStoreFeatureResult>(hooks: {\n onInit?: HooksFactory<Input>;\n onDestroy?: HooksFactory<Input>;\n}): SignalStoreFeature<Input, EmptyFeatureResult> {\n return (store) => {\n const createHook = (name: keyof typeof hooks) => {\n const hook = hooks[name];\n const currentHook = store.hooks[name];\n\n return hook\n ? () => {\n if (currentHook) {\n currentHook();\n }\n\n hook({\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n });\n }\n : currentHook;\n };\n\n return {\n ...store,\n hooks: {\n onInit: createHook('onInit'),\n onDestroy: createHook('onDestroy'),\n },\n };\n };\n}\n","import { excludeKeys } from './helpers';\nimport { STATE_SIGNAL, SignalStateMeta } from './signal-state';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MethodsDictionary,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withMethods<\n Input extends SignalStoreFeatureResult,\n Methods extends MethodsDictionary\n>(\n methodsFactory: (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n SignalStateMeta<Prettify<Input['state']>>\n >\n ) => Methods\n): SignalStoreFeature<Input, EmptyFeatureResult & { methods: Methods }> {\n return (store) => {\n const methods = methodsFactory({\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n });\n const methodsKeys = Object.keys(methods);\n const slices = excludeKeys(store.slices, methodsKeys);\n const signals = excludeKeys(store.signals, methodsKeys);\n\n return {\n ...store,\n slices,\n signals,\n methods: { ...store.methods, ...methods },\n } as InnerSignalStore<Record<string, unknown>, SignalsDictionary, Methods>;\n };\n}\n","import { computed } from '@angular/core';\nimport { toDeepSignal } from './deep-signal';\nimport { excludeKeys } from './helpers';\nimport { STATE_SIGNAL } from './signal-state';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport {\n HasNestedFunctionKeys,\n HasOptionalProps,\n IsUnknownRecord,\n} from './ts-helpers';\n\ntype WithStateCheck<State> = IsUnknownRecord<State> extends true\n ? '@ngrx/signals: root state keys must be string literals'\n : HasOptionalProps<State> extends true\n ? '@ngrx/signals: root state slices cannot be optional'\n : HasNestedFunctionKeys<State> extends false | undefined\n ? unknown\n : '@ngrx/signals: nested state slices cannot contain `Function` property or method names';\n\nexport function withState<State extends Record<string, unknown>>(\n state: State & WithStateCheck<State>\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends Record<string, unknown>>(\n stateFactory: () => State & WithStateCheck<State>\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends Record<string, unknown>>(\n stateOrFactory: State | (() => State)\n): SignalStoreFeature<\n SignalStoreFeatureResult,\n EmptyFeatureResult & { state: State }\n> {\n return (store) => {\n const state =\n typeof stateOrFactory === 'function' ? stateOrFactory() : stateOrFactory;\n const stateKeys = Object.keys(state);\n\n store[STATE_SIGNAL].update((currentState) => ({\n ...currentState,\n ...state,\n }));\n\n const slices = stateKeys.reduce((acc, key) => {\n const slice = computed(() => store[STATE_SIGNAL]()[key]);\n return { ...acc, [key]: toDeepSignal(slice) };\n }, {} as SignalsDictionary);\n const signals = excludeKeys(store.signals, stateKeys);\n const methods = excludeKeys(store.methods, stateKeys);\n\n return {\n ...store,\n slices: { ...store.slices, ...slices },\n signals,\n methods,\n } as InnerSignalStore<State>;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrx-signals.mjs","sources":["../../../../modules/signals/src/deep-signal.ts","../../../../modules/signals/src/signal-state.ts","../../../../modules/signals/src/get-state.ts","../../../../modules/signals/src/patch-state.ts","../../../../modules/signals/src/signal-store.ts","../../../../modules/signals/src/signal-store-feature.ts","../../../../modules/signals/src/helpers.ts","../../../../modules/signals/src/with-computed.ts","../../../../modules/signals/src/with-hooks.ts","../../../../modules/signals/src/with-methods.ts","../../../../modules/signals/src/with-state.ts","../../../../modules/signals/ngrx-signals.ts"],"sourcesContent":["import {\n computed,\n isSignal,\n Signal as NgSignal,\n untracked,\n} from '@angular/core';\nimport { IsKnownRecord } from './ts-helpers';\n\n// An extended Signal type that enables the correct typing\n// of nested signals with the `name` or `length` key.\ninterface Signal<T> extends NgSignal<T> {\n name: unknown;\n length: unknown;\n}\n\nexport type DeepSignal<T> = Signal<T> &\n (IsKnownRecord<T> extends true\n ? Readonly<{\n [K in keyof T]: IsKnownRecord<T[K]> extends true\n ? DeepSignal<T[K]>\n : Signal<T[K]>;\n }>\n : unknown);\n\nexport function toDeepSignal<T>(signal: Signal<T>): DeepSignal<T> {\n const value = untracked(() => signal());\n if (!isRecord(value)) {\n return signal as DeepSignal<T>;\n }\n\n return new Proxy(signal, {\n get(target: any, prop) {\n if (!(prop in value)) {\n return target[prop];\n }\n\n if (!isSignal(target[prop])) {\n Object.defineProperty(target, prop, {\n value: computed(() => target()[prop]),\n });\n }\n\n return toDeepSignal(target[prop]);\n },\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value?.constructor === Object;\n}\n","import { signal, WritableSignal } from '@angular/core';\nimport { DeepSignal, toDeepSignal } from './deep-signal';\n\nexport const STATE_SIGNAL = Symbol('STATE_SIGNAL');\n\nexport type SignalStateMeta<State extends object> = {\n [STATE_SIGNAL]: WritableSignal<State>;\n};\n\ntype SignalState<State extends object> = DeepSignal<State> &\n SignalStateMeta<State>;\n\nexport function signalState<State extends object>(\n initialState: State\n): SignalState<State> {\n const stateSignal = signal(initialState as State);\n const deepSignal = toDeepSignal(stateSignal.asReadonly());\n Object.defineProperty(deepSignal, STATE_SIGNAL, {\n value: stateSignal,\n });\n\n return deepSignal as SignalState<State>;\n}\n","import { STATE_SIGNAL, SignalStateMeta } from './signal-state';\n\nexport function getState<State extends object>(\n signalState: SignalStateMeta<State>\n): State {\n return signalState[STATE_SIGNAL]();\n}\n","import { STATE_SIGNAL, SignalStateMeta } from './signal-state';\n\nexport type PartialStateUpdater<State extends object> = (\n state: State\n) => Partial<State>;\n\nexport function patchState<State extends object>(\n signalState: SignalStateMeta<State>,\n ...updaters: Array<Partial<State & {}> | PartialStateUpdater<State & {}>>\n): void {\n signalState[STATE_SIGNAL].update((currentState) =>\n updaters.reduce(\n (nextState: State, updater) => ({\n ...nextState,\n ...(typeof updater === 'function' ? updater(nextState) : updater),\n }),\n currentState\n )\n );\n}\n","import {\n DestroyRef,\n inject,\n Injectable,\n Injector,\n runInInjectionContext,\n signal,\n Type,\n} from '@angular/core';\nimport { STATE_SIGNAL } from './signal-state';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MergeFeatureResults,\n SignalStore,\n SignalStoreConfig,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStore<F1>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStore<MergeFeatureResults<[F1, F2]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8, F9]>>>;\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStore<F1>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStore<MergeFeatureResults<[F1, F2]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStore<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8, F9]>>>;\n\nexport function signalStore(\n ...args: [SignalStoreConfig, ...SignalStoreFeature[]] | SignalStoreFeature[]\n): Type<SignalStore<any>> {\n const signalStoreArgs = [...args];\n\n const config: Partial<SignalStoreConfig> =\n 'providedIn' in signalStoreArgs[0]\n ? (signalStoreArgs.shift() as SignalStoreConfig)\n : {};\n const features = signalStoreArgs as SignalStoreFeature[];\n\n @Injectable({ providedIn: config.providedIn || null })\n class SignalStore {\n constructor() {\n const innerStore = features.reduce(\n (store, feature) => feature(store),\n getInitialInnerStore()\n );\n const { slices, signals, methods, hooks } = innerStore;\n const props = { ...slices, ...signals, ...methods };\n\n (this as any)[STATE_SIGNAL] = innerStore[STATE_SIGNAL];\n\n for (const key in props) {\n (this as any)[key] = props[key];\n }\n\n if (hooks.onInit) {\n hooks.onInit();\n }\n\n if (hooks.onDestroy) {\n const injector = inject(Injector);\n\n inject(DestroyRef).onDestroy(() => {\n runInInjectionContext(injector, hooks.onDestroy!);\n });\n }\n }\n }\n\n return SignalStore;\n}\n\nexport function getInitialInnerStore(): InnerSignalStore {\n return {\n [STATE_SIGNAL]: signal({}),\n slices: {},\n signals: {},\n methods: {},\n hooks: {},\n };\n}\n","import {\n EmptyFeatureResult,\n MergeFeatureResults,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function signalStoreFeature<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): SignalStoreFeature<EmptyFeatureResult, F1>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2, F3]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>\n): SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n Input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >,\n f6: SignalStoreFeature<\n MergeFeatureResults<\n [Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4, F5]\n >,\n F6\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature(\n featureOrInput: SignalStoreFeature | Partial<SignalStoreFeatureResult>,\n ...restFeatures: SignalStoreFeature[]\n): SignalStoreFeature {\n const features =\n typeof featureOrInput === 'function'\n ? [featureOrInput, ...restFeatures]\n : restFeatures;\n\n return (inputStore) =>\n features.reduce((store, feature) => feature(store), inputStore);\n}\n\nexport function type<T>(): T {\n return undefined as T;\n}\n","export function excludeKeys<\n Obj extends Record<string, unknown>,\n Keys extends string[]\n>(obj: Obj, keys: Keys): Omit<Obj, Keys[number]> {\n return Object.keys(obj).reduce(\n (acc, key) => (keys.includes(key) ? acc : { ...acc, [key]: obj[key] }),\n {}\n ) as Omit<Obj, Keys[number]>;\n}\n","import { excludeKeys } from './helpers';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withComputed<\n Input extends SignalStoreFeatureResult,\n Signals extends SignalsDictionary\n>(\n signalsFactory: (\n store: Prettify<SignalStoreSlices<Input['state']> & Input['signals']>\n ) => Signals\n): SignalStoreFeature<Input, EmptyFeatureResult & { signals: Signals }> {\n return (store) => {\n const signals = signalsFactory({ ...store.slices, ...store.signals });\n const signalsKeys = Object.keys(signals);\n const slices = excludeKeys(store.slices, signalsKeys);\n const methods = excludeKeys(store.methods, signalsKeys);\n\n return {\n ...store,\n slices,\n signals: { ...store.signals, ...signals },\n methods,\n } as InnerSignalStore<Record<string, unknown>, Signals>;\n };\n}\n","import { STATE_SIGNAL, SignalStateMeta } from './signal-state';\nimport {\n EmptyFeatureResult,\n SignalStoreFeature,\n SignalStoreSlices,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\ntype HooksFactory<Input extends SignalStoreFeatureResult> = (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n SignalStateMeta<Prettify<Input['state']>>\n >\n) => void;\n\nexport function withHooks<Input extends SignalStoreFeatureResult>(hooks: {\n onInit?: HooksFactory<Input>;\n onDestroy?: HooksFactory<Input>;\n}): SignalStoreFeature<Input, EmptyFeatureResult> {\n return (store) => {\n const createHook = (name: keyof typeof hooks) => {\n const hook = hooks[name];\n const currentHook = store.hooks[name];\n\n return hook\n ? () => {\n if (currentHook) {\n currentHook();\n }\n\n hook({\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n });\n }\n : currentHook;\n };\n\n return {\n ...store,\n hooks: {\n onInit: createHook('onInit'),\n onDestroy: createHook('onDestroy'),\n },\n };\n };\n}\n","import { excludeKeys } from './helpers';\nimport { STATE_SIGNAL, SignalStateMeta } from './signal-state';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MethodsDictionary,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withMethods<\n Input extends SignalStoreFeatureResult,\n Methods extends MethodsDictionary\n>(\n methodsFactory: (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n SignalStateMeta<Prettify<Input['state']>>\n >\n ) => Methods\n): SignalStoreFeature<Input, EmptyFeatureResult & { methods: Methods }> {\n return (store) => {\n const methods = methodsFactory({\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n });\n const methodsKeys = Object.keys(methods);\n const slices = excludeKeys(store.slices, methodsKeys);\n const signals = excludeKeys(store.signals, methodsKeys);\n\n return {\n ...store,\n slices,\n signals,\n methods: { ...store.methods, ...methods },\n } as InnerSignalStore<Record<string, unknown>, SignalsDictionary, Methods>;\n };\n}\n","import { computed } from '@angular/core';\nimport { toDeepSignal } from './deep-signal';\nimport { excludeKeys } from './helpers';\nimport { STATE_SIGNAL } from './signal-state';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\n\nexport function withState<State extends object>(\n stateFactory: () => State\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends object>(\n state: State\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends object>(\n stateOrFactory: State | (() => State)\n): SignalStoreFeature<\n SignalStoreFeatureResult,\n EmptyFeatureResult & { state: State }\n> {\n return (store) => {\n const state =\n typeof stateOrFactory === 'function' ? stateOrFactory() : stateOrFactory;\n const stateKeys = Object.keys(state);\n\n store[STATE_SIGNAL].update((currentState) => ({\n ...currentState,\n ...state,\n }));\n\n const slices = stateKeys.reduce((acc, key) => {\n const slice = computed(\n () => (store[STATE_SIGNAL]() as Record<string, unknown>)[key]\n );\n return { ...acc, [key]: toDeepSignal(slice) };\n }, {} as SignalsDictionary);\n const signals = excludeKeys(store.signals, stateKeys);\n const methods = excludeKeys(store.methods, stateKeys);\n\n return {\n ...store,\n slices: { ...store.slices, ...slices },\n signals,\n methods,\n } as InnerSignalStore<State>;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAwBM,SAAU,YAAY,CAAI,MAAiB,EAAA;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;AACxC,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,MAAuB,CAAC;AAChC,KAAA;AAED,IAAA,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAW,EAAE,IAAI,EAAA;AACnB,YAAA,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3B,gBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;oBAClC,KAAK,EAAE,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;AACtC,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACnC;AACF,KAAA,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAA;AAC9B,IAAA,OAAO,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;AACvC;;AC9CO,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAS7C,SAAU,WAAW,CACzB,YAAmB,EAAA;AAEnB,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,YAAqB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE;AAC9C,QAAA,KAAK,EAAE,WAAW;AACnB,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,UAAgC,CAAC;AAC1C;;ACpBM,SAAU,QAAQ,CACtB,WAAmC,EAAA;AAEnC,IAAA,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;AACrC;;SCAgB,UAAU,CACxB,WAAmC,EACnC,GAAG,QAAsE,EAAA;IAEzE,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,KAC5C,QAAQ,CAAC,MAAM,CACb,CAAC,SAAgB,EAAE,OAAO,MAAM;AAC9B,QAAA,GAAG,SAAS;AACZ,QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO;AACjE,KAAA,CAAC,EACF,YAAY,CACb,CACF,CAAC;AACJ;;ACwPgB,SAAA,WAAW,CACzB,GAAG,IAAyE,EAAA;AAE5E,IAAA,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAElC,IAAA,MAAM,MAAM,GACV,YAAY,IAAI,eAAe,CAAC,CAAC,CAAC;AAChC,UAAG,eAAe,CAAC,KAAK,EAAwB;UAC9C,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,eAAuC,CAAC;AAEzD,IAAA,MACM,WAAW,CAAA;AACf,QAAA,WAAA,GAAA;YACE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,EAClC,oBAAoB,EAAE,CACvB,CAAC;YACF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;AACvD,YAAA,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;YAEnD,IAAY,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAEvD,YAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACtB,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACjC,aAAA;YAED,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,KAAK,CAAC,MAAM,EAAE,CAAC;AAChB,aAAA;YAED,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,gBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAElC,gBAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AAChC,oBAAA,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAU,CAAC,CAAC;AACpD,iBAAC,CAAC,CAAC;AACJ,aAAA;SACF;8HA1BG,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,2BAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EADS,UAAA,EAAA,MAAM,CAAC,UAAU,IAAI,IAAI,EAAA,CAAA,CAAA;;+FAC7C,WAAW,EAAA,UAAA,EAAA,CAAA;sBADhB,UAAU;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAA;;AA8BrD,IAAA,OAAO,WAAW,CAAC;AACpB,CAAA;SAEe,oBAAoB,GAAA;IAClC,OAAO;AACL,QAAA,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;AAC1B,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,KAAK,EAAE,EAAE;KACV,CAAC;AACJ;;SC5GgB,kBAAkB,CAChC,cAAsE,EACtE,GAAG,YAAkC,EAAA;AAErC,IAAA,MAAM,QAAQ,GACZ,OAAO,cAAc,KAAK,UAAU;AAClC,UAAE,CAAC,cAAc,EAAE,GAAG,YAAY,CAAC;UACjC,YAAY,CAAC;IAEnB,OAAO,CAAC,UAAU,KAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;SAEe,IAAI,GAAA;AAClB,IAAA,OAAO,SAAc,CAAC;AACxB;;AClOgB,SAAA,WAAW,CAGzB,GAAQ,EAAE,IAAU,EAAA;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EACtE,EAAE,CACwB,CAAC;AAC/B;;ACGM,SAAU,YAAY,CAI1B,cAEY,EAAA;IAEZ,OAAO,CAAC,KAAK,KAAI;AACf,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,MAAM;YACN,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;YACzC,OAAO;SAC8C,CAAC;AAC1D,KAAC,CAAC;AACJ;;ACdM,SAAU,SAAS,CAAyC,KAGjE,EAAA;IACC,OAAO,CAAC,KAAK,KAAI;AACf,QAAA,MAAM,UAAU,GAAG,CAAC,IAAwB,KAAI;AAC9C,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAEtC,YAAA,OAAO,IAAI;kBACP,MAAK;AACH,oBAAA,IAAI,WAAW,EAAE;AACf,wBAAA,WAAW,EAAE,CAAC;AACf,qBAAA;AAED,oBAAA,IAAI,CAAC;AACH,wBAAA,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;wBACnC,GAAG,KAAK,CAAC,MAAM;wBACf,GAAG,KAAK,CAAC,OAAO;wBAChB,GAAG,KAAK,CAAC,OAAO;AACjB,qBAAA,CAAC,CAAC;iBACJ;kBACD,WAAW,CAAC;AAClB,SAAC,CAAC;QAEF,OAAO;AACL,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC5B,gBAAA,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC;AACnC,aAAA;SACF,CAAC;AACJ,KAAC,CAAC;AACJ;;ACtCM,SAAU,WAAW,CAIzB,cAOY,EAAA;IAEZ,OAAO,CAAC,KAAK,KAAI;QACf,MAAM,OAAO,GAAG,cAAc,CAAC;AAC7B,YAAA,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,KAAK,CAAC,OAAO;AACjB,SAAA,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,MAAM;YACN,OAAO;YACP,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;SAC+B,CAAC;AAC7E,KAAC,CAAC;AACJ;;ACpBM,SAAU,SAAS,CACvB,cAAqC,EAAA;IAKrC,OAAO,CAAC,KAAK,KAAI;AACf,QAAA,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;QAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM;AAC5C,YAAA,GAAG,YAAY;AACf,YAAA,GAAG,KAAK;AACT,SAAA,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC3C,YAAA,MAAM,KAAK,GAAG,QAAQ,CACpB,MAAO,KAAK,CAAC,YAAY,CAAC,EAA8B,CAAC,GAAG,CAAC,CAC9D,CAAC;AACF,YAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;SAC/C,EAAE,EAAuB,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEtD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE;YACtC,OAAO;YACP,OAAO;SACmB,CAAC;AAC/B,KAAC,CAAC;AACJ;;ACxDA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngrx/signals",
3
- "version": "17.0.0-rc.0",
3
+ "version": "17.0.0",
4
4
  "description": "Reactive State Management with Angular Signals",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.platformVersion = void 0;
4
- exports.platformVersion = '^17.0.0-rc.0';
4
+ exports.platformVersion = '^17.0.0';
5
5
  //# sourceMappingURL=libs-version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"libs-version.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/libs-version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,cAAc,CAAC","sourcesContent":["export const platformVersion = '^17.0.0-rc.0';\n"]}
1
+ {"version":3,"file":"libs-version.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/libs-version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,SAAS,CAAC","sourcesContent":["export const platformVersion = '^17.0.0';\n"]}
@@ -1,6 +1,11 @@
1
- import { Signal } from '@angular/core';
2
- import { IsUnknownRecord } from './ts-helpers';
3
- export type DeepSignal<T> = Signal<T> & (T extends Record<string, unknown> ? IsUnknownRecord<T> extends true ? unknown : Readonly<{
4
- [K in keyof T]: T[K] extends Record<string, unknown> ? IsUnknownRecord<T[K]> extends true ? Signal<T[K]> : DeepSignal<T[K]> : Signal<T[K]>;
1
+ import { Signal as NgSignal } from '@angular/core';
2
+ import { IsKnownRecord } from './ts-helpers';
3
+ interface Signal<T> extends NgSignal<T> {
4
+ name: unknown;
5
+ length: unknown;
6
+ }
7
+ export type DeepSignal<T> = Signal<T> & (IsKnownRecord<T> extends true ? Readonly<{
8
+ [K in keyof T]: IsKnownRecord<T[K]> extends true ? DeepSignal<T[K]> : Signal<T[K]>;
5
9
  }> : unknown);
6
10
  export declare function toDeepSignal<T>(signal: Signal<T>): DeepSignal<T>;
11
+ export {};
@@ -1,2 +1,2 @@
1
1
  import { SignalStateMeta } from './signal-state';
2
- export declare function getState<State extends Record<string, unknown>>(signalState: SignalStateMeta<State>): State;
2
+ export declare function getState<State extends object>(signalState: SignalStateMeta<State>): State;
@@ -1,3 +1,3 @@
1
1
  import { SignalStateMeta } from './signal-state';
2
- export type PartialStateUpdater<State extends Record<string, unknown>> = (state: State) => Partial<State>;
3
- export declare function patchState<State extends Record<string, unknown>>(signalState: SignalStateMeta<State>, ...updaters: Array<Partial<State & {}> | PartialStateUpdater<State & {}>>): void;
2
+ export type PartialStateUpdater<State extends object> = (state: State) => Partial<State>;
3
+ export declare function patchState<State extends object>(signalState: SignalStateMeta<State>, ...updaters: Array<Partial<State & {}> | PartialStateUpdater<State & {}>>): void;
@@ -1,11 +1,9 @@
1
1
  import { WritableSignal } from '@angular/core';
2
2
  import { DeepSignal } from './deep-signal';
3
- import { HasFunctionKeys } from './ts-helpers';
4
3
  export declare const STATE_SIGNAL: unique symbol;
5
- export type SignalStateMeta<State extends Record<string, unknown>> = {
4
+ export type SignalStateMeta<State extends object> = {
6
5
  [STATE_SIGNAL]: WritableSignal<State>;
7
6
  };
8
- type SignalStateCheck<State> = HasFunctionKeys<State> extends false | undefined ? unknown : '@ngrx/signals: signal state cannot contain `Function` property or method names';
9
- type SignalState<State extends Record<string, unknown>> = DeepSignal<State> & SignalStateMeta<State>;
10
- export declare function signalState<State extends Record<string, unknown>>(initialState: State & SignalStateCheck<State>): SignalState<State>;
7
+ type SignalState<State extends object> = DeepSignal<State> & SignalStateMeta<State>;
8
+ export declare function signalState<State extends object>(initialState: State): SignalState<State>;
11
9
  export {};
@@ -1,13 +1,13 @@
1
1
  import { Signal } from '@angular/core';
2
2
  import { DeepSignal } from './deep-signal';
3
3
  import { SignalStateMeta } from './signal-state';
4
- import { IsUnknownRecord, Prettify } from './ts-helpers';
4
+ import { IsKnownRecord, Prettify } from './ts-helpers';
5
5
  export type SignalStoreConfig = {
6
6
  providedIn: 'root';
7
7
  };
8
- export type SignalStoreSlices<State> = {
9
- [Key in keyof State]: State[Key] extends Record<string, unknown> ? IsUnknownRecord<State[Key]> extends true ? Signal<State[Key]> : DeepSignal<State[Key]> : Signal<State[Key]>;
10
- };
8
+ export type SignalStoreSlices<State> = IsKnownRecord<Prettify<State>> extends true ? {
9
+ [Key in keyof State]: IsKnownRecord<State[Key]> extends true ? DeepSignal<State[Key]> : Signal<State[Key]>;
10
+ } : {};
11
11
  export type SignalStore<FeatureResult extends SignalStoreFeatureResult> = Prettify<SignalStoreSlices<FeatureResult['state']> & FeatureResult['signals'] & FeatureResult['methods'] & SignalStateMeta<Prettify<FeatureResult['state']>>>;
12
12
  export type SignalsDictionary = Record<string, Signal<unknown>>;
13
13
  export type MethodsDictionary = Record<string, (...args: any[]) => unknown>;
@@ -15,14 +15,14 @@ export type SignalStoreHooks = {
15
15
  onInit?: () => void;
16
16
  onDestroy?: () => void;
17
17
  };
18
- export type InnerSignalStore<State extends Record<string, unknown> = Record<string, unknown>, Signals extends SignalsDictionary = SignalsDictionary, Methods extends MethodsDictionary = MethodsDictionary> = {
18
+ export type InnerSignalStore<State extends object = object, Signals extends SignalsDictionary = SignalsDictionary, Methods extends MethodsDictionary = MethodsDictionary> = {
19
19
  slices: SignalStoreSlices<State>;
20
20
  signals: Signals;
21
21
  methods: Methods;
22
22
  hooks: SignalStoreHooks;
23
23
  } & SignalStateMeta<State>;
24
24
  export type SignalStoreFeatureResult = {
25
- state: Record<string, unknown>;
25
+ state: object;
26
26
  signals: SignalsDictionary;
27
27
  methods: MethodsDictionary;
28
28
  };
@@ -1,11 +1,6 @@
1
1
  export type Prettify<T> = {
2
2
  [K in keyof T]: T[K];
3
3
  } & {};
4
+ export type IsRecord<T> = T extends object ? T extends unknown[] ? false : T extends Set<unknown> ? false : T extends Map<unknown, unknown> ? false : T extends Function ? false : true : false;
4
5
  export type IsUnknownRecord<T> = string extends keyof T ? true : number extends keyof T ? true : false;
5
- export type HasOptionalProps<T> = T extends Required<T> ? false : true;
6
- export type HasFunctionKeys<T> = T extends Record<string, unknown> ? {
7
- [K in keyof T]: K extends keyof Function ? true : HasFunctionKeys<T[K]>;
8
- }[keyof T] : false;
9
- export type HasNestedFunctionKeys<T> = {
10
- [K in keyof T]: HasFunctionKeys<T[K]>;
11
- }[keyof T];
6
+ export type IsKnownRecord<T> = IsRecord<T> extends true ? IsUnknownRecord<T> extends true ? false : true : false;
@@ -1,10 +1,7 @@
1
1
  import { EmptyFeatureResult, SignalStoreFeature } from './signal-store-models';
2
- import { HasNestedFunctionKeys, HasOptionalProps, IsUnknownRecord } from './ts-helpers';
3
- type WithStateCheck<State> = IsUnknownRecord<State> extends true ? '@ngrx/signals: root state keys must be string literals' : HasOptionalProps<State> extends true ? '@ngrx/signals: root state slices cannot be optional' : HasNestedFunctionKeys<State> extends false | undefined ? unknown : '@ngrx/signals: nested state slices cannot contain `Function` property or method names';
4
- export declare function withState<State extends Record<string, unknown>>(state: State & WithStateCheck<State>): SignalStoreFeature<EmptyFeatureResult, EmptyFeatureResult & {
2
+ export declare function withState<State extends object>(stateFactory: () => State): SignalStoreFeature<EmptyFeatureResult, EmptyFeatureResult & {
5
3
  state: State;
6
4
  }>;
7
- export declare function withState<State extends Record<string, unknown>>(stateFactory: () => State & WithStateCheck<State>): SignalStoreFeature<EmptyFeatureResult, EmptyFeatureResult & {
5
+ export declare function withState<State extends object>(state: State): SignalStoreFeature<EmptyFeatureResult, EmptyFeatureResult & {
8
6
  state: State;
9
7
  }>;
10
- export {};