@tethys/cdk 14.2.2 → 14.2.4

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.
@@ -112,4 +112,4 @@ export function produce(entities, options) {
112
112
  return new ObjectProducer(entities);
113
113
  }
114
114
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1tdXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2ltbXV0YWJsZS9pbW11dGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBcUJuRCxNQUFNLE9BQU8sUUFBUTtJQUtqQixZQUFZLFFBQW1CLEVBQUUsT0FBa0M7UUFKM0QsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUtsQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFlLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxHQUFHLENBQUMsTUFBMkIsRUFBRSxVQUE2QjtRQUMxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDeEI7UUFDRCxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxLQUFLLEdBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7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V0FBVyxDQUFDLENBQUM7U0FDM0I7SUFDTCxDQUFDO0NBQ0o7QUFJRCxNQUFNLFVBQVUsT0FBTyxDQUFVLFFBQTZCLEVBQUUsT0FBa0M7SUFDOUYsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbkIsT0FBTyxJQUFJLFFBQVEsQ0FBVSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDbkQ7U0FBTTtRQUNILE9BQU8sSUFBSSxjQUFjLENBQVUsUUFBUSxDQUFDLENBQUM7S0FDaEQ7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNVbmRlZmluZWRPck51bGwsIGlzQXJyYXkgfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBPYmplY3RQcm9kdWNlciB9IGZyb20gJy4vb2JqZWN0LXByb2R1Y2VyJztcblxuZXhwb3J0IHR5cGUgSWQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5QWRkT3B0aW9ucyB7XG4gICAgcHJlcGVuZD86IGJvb2xlYW47XG5cbiAgICBhZnRlcklkPzogSWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5TW92ZU9wdGlvbnMge1xuICAgIGFmdGVySWQ/OiBJZDtcblxuICAgIHRvSW5kZXg/OiBudW1iZXI7XG59XG5cbnR5cGUgRXh0cmFjdEtleXNPZlZhbHVlVHlwZTxULCBLPiA9IHsgW0kgaW4ga2V5b2YgVF06IFRbSV0gZXh0ZW5kcyBLID8gSSA6IG5ldmVyIH1ba2V5b2YgVF07XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y2VyT3B0aW9uczxURW50aXR5PiB7XG4gICAgaWRLZXk/OiBFeHRyYWN0S2V5c09mVmFsdWVUeXBlPFRFbnRpdHksIElkPjtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2R1Y2VyPFRFbnRpdHk+IHtcbiAgICBwcml2YXRlIGlkS2V5ID0gJ19pZCc7XG5cbiAgICBwcml2YXRlIGVudGl0aWVzOiBURW50aXR5W107XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdGllczogVEVudGl0eVtdLCBvcHRpb25zPzogUHJvZHVjZXJPcHRpb25zPFRFbnRpdHk+KSB7XG4gICAgICAgIHRoaXMuZW50aXRpZXMgPSBlbnRpdGllcyB8fCBbXTtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZEtleSkge1xuICAgICAgICAgICAgdGhpcy5pZEtleSA9IG9wdGlvbnMuaWRLZXkgYXMgc3RyaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGFuIGVudGl0eSBvciBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcHJvZHVjZShbdXNlcnNdKS5hZGQoRW50aXR5KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChbRW50aXR5LCBFbnRpdHldKTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHksIHsgcHJlcGVuZDogdHJ1ZSB9KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHksIHsgYWZ0ZXJJZDogJycgfSk7XG4gICAgICovXG4gICAgYWRkKGVudGl0eTogVEVudGl0eSB8IFRFbnRpdHlbXSwgYWRkT3B0aW9ucz86IEVudGl0eUFkZE9wdGlvbnMpOiBURW50aXR5W10ge1xuICAgICAgICBjb25zdCBhZGRFbnRpdGllcyA9IGNvZXJjZUFycmF5KGVudGl0eSk7XG4gICAgICAgIGlmIChhZGRFbnRpdGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVudGl0aWVzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGRPcHRpb25zICYmIChhZGRPcHRpb25zLmFmdGVySWQgfHwgYWRkT3B0aW9ucy5wcmVwZW5kKSkge1xuICAgICAgICAgICAgaWYgKGFkZE9wdGlvbnMuYWZ0ZXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVt0aGlzLmlkS2V5XSA9PT0gYWRkT3B0aW9ucy5hZnRlcklkO1xuICAgICAgICAgICAgICAgICAgICB9KSArIDE7XG4gICAgICAgICAgICAgICAgZW50aXRpZXMuc3BsaWNlKGluZGV4LCAwLCAuLi5hZGRFbnRpdGllcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi5lbnRpdGllc107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFkZE9wdGlvbnMucHJlcGVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXMgPSBbLi4uYWRkRW50aXRpZXMsIC4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi50aGlzLmVudGl0aWVzLCAuLi5hZGRFbnRpdGllc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBVcGRhdGUgYW4gZW50aXR5IG9yIGVudGl0aWVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnVwZGF0ZSgzLCB7XG4gICAgICogICBuYW1lOiAnTmV3IE5hbWUnXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnVwZGF0ZSgzLCBlbnRpdHkgPT4ge1xuICAgICAqICAgIHJldHVybiB7XG4gICAgICogICAgICAuLi5lbnRpdHksXG4gICAgICogICAgICBuYW1lOiAnTmV3IE5hbWUnXG4gICAgICogICAgfVxuICAgICAqICB9KTtcbiAgICAgKlxuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkudXBkYXRlKFsxLDIsM10sIHtcbiAgICAgKiAgIG5hbWU6ICdOZXcgTmFtZSdcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB1cGRhdGUoaWQ6IElkIHwgSWRbXSB8IG51bGwsIG5ld1N0YXRlRm46IChlbnRpdHk6IFJlYWRvbmx5PFRFbnRpdHk+KSA9PiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShpZDogSWQgfCBJZFtdIHwgbnVsbCwgbmV3U3RhdGU/OiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShcbiAgICAgICAgaWRzT3JGbjogSWQgfCBJZFtdIHwgbnVsbCB8IFBhcnRpYWw8VEVudGl0eT4gfCAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IGJvb2xlYW4pLFxuICAgICAgICBuZXdTdGF0ZU9yRm4/OiAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IFBhcnRpYWw8VEVudGl0eT4pIHwgUGFydGlhbDxURW50aXR5PlxuICAgICk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KGlkc09yRm4pO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbnRpdGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb2xkRW50aXR5ID0gdGhpcy5lbnRpdGllc1tpXTtcbiAgICAgICAgICAgIGlmIChpZHMuaW5kZXhPZihvbGRFbnRpdHlbdGhpcy5pZEtleV0pID49IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IGlzRnVuY3Rpb24obmV3U3RhdGVPckZuKSA/IG5ld1N0YXRlT3JGbihvbGRFbnRpdHkpIDogbmV3U3RhdGVPckZuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXNbaV0gPSB7IC4uLm9sZEVudGl0eSwgLi4ubmV3U3RhdGUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogUmVtb3ZlIG9uZSBvciBtb3JlIGVudGl0aWVzOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZSg1KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZShbMSwyLDNdKTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLnJlbW92ZShlbnRpdHkgPT4gZW50aXR5LmlkID09PSAxKTtcbiAgICAgKi9cbiAgICByZW1vdmUoaWQ6IElkIHwgSWRbXSk6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUocHJlZGljYXRlOiAoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbik6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUoaWRzT3JGbj86IElkIHwgSWRbXSB8ICgoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbikpOiBURW50aXR5W10ge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihpZHNPckZuKSkge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEoaWRzT3JGbiBhcyBhbnkpKGVudGl0eSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KGlkc09yRm4pO1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IHRoaXMuZW50aXRpZXMuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkcy5pbmRleE9mKGVudGl0eVt0aGlzLmlkS2V5XSkgPT09IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBNb3ZlIG9uZSBvciBtb3JlIGVudGl0aWVzOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLm1vdmUoNSwge2FmdGVySWQ6IDJ9KTtcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLm1vdmUoNSwge3RvSW5kZXg6IDB9KTtcbiAgICAgKi9cbiAgICBtb3ZlKGlkOiBJZCwgbW92ZU9wdGlvbnM/OiBFbnRpdHlNb3ZlT3B0aW9ucyk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGZyb21JbmRleCA9IHRoaXMuZW50aXRpZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbVt0aGlzLmlkS2V5XSA9PT0gaWQpO1xuICAgICAgICBsZXQgdG9JbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IG5ld0VudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXNdO1xuXG4gICAgICAgIGlmICghaWQgfHwgZnJvbUluZGV4IDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmVudGl0aWVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3ZlT3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChtb3ZlT3B0aW9ucy5hZnRlcklkKSkge1xuICAgICAgICAgICAgICAgIHRvSW5kZXggPSB0aGlzLmVudGl0aWVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW1bdGhpcy5pZEtleV0gPT09IG1vdmVPcHRpb25zLmFmdGVySWQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtb3ZlT3B0aW9ucy50b0luZGV4KSB7XG4gICAgICAgICAgICAgICAgdG9JbmRleCA9IG1vdmVPcHRpb25zLnRvSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdG9JbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRoaXMuZW50aXRpZXMubGVuZ3RoIC0gMSwgdG9JbmRleCkpO1xuICAgICAgICBpZiAodG9JbmRleCA9PT0gZnJvbUluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnRoaXMuZW50aXRpZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5lbnRpdGllc1tmcm9tSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0b0luZGV4IDwgZnJvbUluZGV4ID8gLTEgOiAxO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gZnJvbUluZGV4OyBpICE9PSB0b0luZGV4OyBpICs9IGRlbHRhKSB7XG4gICAgICAgICAgICAgICAgbmV3RW50aXRpZXNbaV0gPSBuZXdFbnRpdGllc1tpICsgZGVsdGFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3RW50aXRpZXNbdG9JbmRleF0gPSB0YXJnZXQ7XG4gICAgICAgICAgICByZXR1cm4gWy4uLm5ld0VudGl0aWVzXTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2R1Y2U8VEVudGl0eT4oZW50aXRpZXM6IFRFbnRpdHlbXSwgb3B0aW9ucz86IFByb2R1Y2VyT3B0aW9uczxURW50aXR5Pik6IFByb2R1Y2VyPFRFbnRpdHk+O1xuZXhwb3J0IGZ1bmN0aW9uIHByb2R1Y2U8VEVudGl0eT4oZW50aXRpZXM6IFRFbnRpdHkpOiBPYmplY3RQcm9kdWNlcjxURW50aXR5PjtcbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWNlPFRFbnRpdHk+KGVudGl0aWVzOiBURW50aXR5IHwgVEVudGl0eVtdLCBvcHRpb25zPzogUHJvZHVjZXJPcHRpb25zPFRFbnRpdHk+KSB7XG4gICAgaWYgKGlzQXJyYXkoZW50aXRpZXMpKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjZXI8VEVudGl0eT4oZW50aXRpZXMsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgT2JqZWN0UHJvZHVjZXI8VEVudGl0eT4oZW50aXRpZXMpO1xuICAgIH1cbn1cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1tdXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2ltbXV0YWJsZS9pbW11dGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBeUJuRCxNQUFNLE9BQU8sUUFBUTtJQUtqQixZQUFZLFFBQW1CLEVBQUUsT0FBa0M7UUFKM0QsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUtsQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFlLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxHQUFHLENBQUMsTUFBMkIsRUFBRSxVQUE2QjtRQUMxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDeEI7UUFDRCxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxLQUFLLEdBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7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V0FBVyxDQUFDLENBQUM7U0FDM0I7SUFDTCxDQUFDO0NBQ0o7QUFJRCxNQUFNLFVBQVUsT0FBTyxDQUFVLFFBQTZCLEVBQUUsT0FBa0M7SUFDOUYsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbkIsT0FBTyxJQUFJLFFBQVEsQ0FBVSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDbkQ7U0FBTTtRQUNILE9BQU8sSUFBSSxjQUFjLENBQVUsUUFBUSxDQUFDLENBQUM7S0FDaEQ7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNVbmRlZmluZWRPck51bGwsIGlzQXJyYXkgfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBPYmplY3RQcm9kdWNlciB9IGZyb20gJy4vb2JqZWN0LXByb2R1Y2VyJztcblxuZXhwb3J0IHR5cGUgSWQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIElkcyA9IElkW107XG5cbmV4cG9ydCB0eXBlIElkT3JJZHMgPSBJZCB8IElkcztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlBZGRPcHRpb25zIHtcbiAgICBwcmVwZW5kPzogYm9vbGVhbjtcblxuICAgIGFmdGVySWQ/OiBJZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlNb3ZlT3B0aW9ucyB7XG4gICAgYWZ0ZXJJZD86IElkO1xuXG4gICAgdG9JbmRleD86IG51bWJlcjtcbn1cblxudHlwZSBFeHRyYWN0S2V5c09mVmFsdWVUeXBlPFQsIEs+ID0geyBbSSBpbiBrZXlvZiBUXTogVFtJXSBleHRlbmRzIEsgPyBJIDogbmV2ZXIgfVtrZXlvZiBUXTtcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJPcHRpb25zPFRFbnRpdHk+IHtcbiAgICBpZEtleT86IEV4dHJhY3RLZXlzT2ZWYWx1ZVR5cGU8VEVudGl0eSwgSWQ+O1xufVxuXG5leHBvcnQgY2xhc3MgUHJvZHVjZXI8VEVudGl0eT4ge1xuICAgIHByaXZhdGUgaWRLZXkgPSAnX2lkJztcblxuICAgIHByaXZhdGUgZW50aXRpZXM6IFRFbnRpdHlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGVudGl0aWVzOiBURW50aXR5W10sIG9wdGlvbnM/OiBQcm9kdWNlck9wdGlvbnM8VEVudGl0eT4pIHtcbiAgICAgICAgdGhpcy5lbnRpdGllcyA9IGVudGl0aWVzIHx8IFtdO1xuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmlkS2V5KSB7XG4gICAgICAgICAgICB0aGlzLmlkS2V5ID0gb3B0aW9ucy5pZEtleSBhcyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYW4gZW50aXR5IG9yIGVudGl0aWVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwcm9kdWNlKFt1c2Vyc10pLmFkZChFbnRpdHkpO1xuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkuYWRkKFtFbnRpdHksIEVudGl0eV0pO1xuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkuYWRkKEVudGl0eSwgeyBwcmVwZW5kOiB0cnVlIH0pO1xuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkuYWRkKEVudGl0eSwgeyBhZnRlcklkOiAnJyB9KTtcbiAgICAgKi9cbiAgICBhZGQoZW50aXR5OiBURW50aXR5IHwgVEVudGl0eVtdLCBhZGRPcHRpb25zPzogRW50aXR5QWRkT3B0aW9ucyk6IFRFbnRpdHlbXSB7XG4gICAgICAgIGNvbnN0IGFkZEVudGl0aWVzID0gY29lcmNlQXJyYXkoZW50aXR5KTtcbiAgICAgICAgaWYgKGFkZEVudGl0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkZE9wdGlvbnMgJiYgKGFkZE9wdGlvbnMuYWZ0ZXJJZCB8fCBhZGRPcHRpb25zLnByZXBlbmQpKSB7XG4gICAgICAgICAgICBpZiAoYWRkT3B0aW9ucy5hZnRlcklkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50aXRpZXMgPSBbLi4udGhpcy5lbnRpdGllc107XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGl0aWVzLmZpbmRJbmRleChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuaWRLZXldID09PSBhZGRPcHRpb25zLmFmdGVySWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pICsgMTtcbiAgICAgICAgICAgICAgICBlbnRpdGllcy5zcGxpY2UoaW5kZXgsIDAsIC4uLmFkZEVudGl0aWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVudGl0aWVzID0gWy4uLmVudGl0aWVzXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWRkT3B0aW9ucy5wcmVwZW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IFsuLi5hZGRFbnRpdGllcywgLi4udGhpcy5lbnRpdGllc107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudGl0aWVzID0gWy4uLnRoaXMuZW50aXRpZXMsIC4uLmFkZEVudGl0aWVzXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdGllcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIFVwZGF0ZSBhbiBlbnRpdHkgb3IgZW50aXRpZXMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkudXBkYXRlKDMsIHtcbiAgICAgKiAgIG5hbWU6ICdOZXcgTmFtZSdcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkudXBkYXRlKDMsIGVudGl0eSA9PiB7XG4gICAgICogICAgcmV0dXJuIHtcbiAgICAgKiAgICAgIC4uLmVudGl0eSxcbiAgICAgKiAgICAgIG5hbWU6ICdOZXcgTmFtZSdcbiAgICAgKiAgICB9XG4gICAgICogIH0pO1xuICAgICAqXG4gICAgICogcHJvZHVjZShbdXNlcnNdKS51cGRhdGUoWzEsMiwzXSwge1xuICAgICAqICAgbmFtZTogJ05ldyBOYW1lJ1xuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHVwZGF0ZShpZDogSWRPcklkcyB8IG51bGwsIG5ld1N0YXRlRm46IChlbnRpdHk6IFJlYWRvbmx5PFRFbnRpdHk+KSA9PiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eVtdO1xuICAgIHVwZGF0ZShpZDogSWRPcklkcyB8IG51bGwsIG5ld1N0YXRlPzogUGFydGlhbDxURW50aXR5Pik6IFRFbnRpdHlbXTtcbiAgICB1cGRhdGUoXG4gICAgICAgIGlkc09yRm46IElkT3JJZHMgfCBudWxsIHwgUGFydGlhbDxURW50aXR5PiB8ICgoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbiksXG4gICAgICAgIG5ld1N0YXRlT3JGbj86ICgoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gUGFydGlhbDxURW50aXR5PikgfCBQYXJ0aWFsPFRFbnRpdHk+XG4gICAgKTogVEVudGl0eVtdIHtcbiAgICAgICAgY29uc3QgaWRzID0gY29lcmNlQXJyYXkoaWRzT3JGbik7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVudGl0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBvbGRFbnRpdHkgPSB0aGlzLmVudGl0aWVzW2ldO1xuICAgICAgICAgICAgaWYgKGlkcy5pbmRleE9mKG9sZEVudGl0eVt0aGlzLmlkS2V5XSkgPj0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0gaXNGdW5jdGlvbihuZXdTdGF0ZU9yRm4pID8gbmV3U3RhdGVPckZuKG9sZEVudGl0eSkgOiBuZXdTdGF0ZU9yRm47XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllc1tpXSA9IHsgLi4ub2xkRW50aXR5LCAuLi5uZXdTdGF0ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5lbnRpdGllc107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBSZW1vdmUgb25lIG9yIG1vcmUgZW50aXRpZXM6XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkucmVtb3ZlKDUpO1xuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkucmVtb3ZlKFsxLDIsM10pO1xuICAgICAqIHByb2R1Y2UoW3VzZXJzXSkucmVtb3ZlKGVudGl0eSA9PiBlbnRpdHkuaWQgPT09IDEpO1xuICAgICAqL1xuICAgIHJlbW92ZShpZDogSWRPcklkcyk6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUocHJlZGljYXRlOiAoZW50aXR5OiBSZWFkb25seTxURW50aXR5PikgPT4gYm9vbGVhbik6IFRFbnRpdHlbXTtcbiAgICByZW1vdmUoaWRzT3JGbj86IElkT3JJZHMgfCAoKGVudGl0eTogUmVhZG9ubHk8VEVudGl0eT4pID0+IGJvb2xlYW4pKTogVEVudGl0eVtdIHtcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oaWRzT3JGbikpIHtcbiAgICAgICAgICAgIHRoaXMuZW50aXRpZXMgPSB0aGlzLmVudGl0aWVzLmZpbHRlcihlbnRpdHkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhKGlkc09yRm4gYXMgYW55KShlbnRpdHkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpZHMgPSBjb2VyY2VBcnJheShpZHNPckZuKTtcbiAgICAgICAgICAgIHRoaXMuZW50aXRpZXMgPSB0aGlzLmVudGl0aWVzLmZpbHRlcihlbnRpdHkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZHMuaW5kZXhPZihlbnRpdHlbdGhpcy5pZEtleV0pID09PSAtMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0aWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogTW92ZSBvbmUgb3IgbW9yZSBlbnRpdGllczpcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcHJvZHVjZShbdXNlcnNdKS5tb3ZlKDUsIHthZnRlcklkOiAyfSk7XG4gICAgICogcHJvZHVjZShbdXNlcnNdKS5tb3ZlKDUsIHt0b0luZGV4OiAwfSk7XG4gICAgICovXG4gICAgbW92ZShpZDogSWQsIG1vdmVPcHRpb25zPzogRW50aXR5TW92ZU9wdGlvbnMpOiBURW50aXR5W10ge1xuICAgICAgICBjb25zdCBmcm9tSW5kZXggPSB0aGlzLmVudGl0aWVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW1bdGhpcy5pZEtleV0gPT09IGlkKTtcbiAgICAgICAgbGV0IHRvSW5kZXggPSAwO1xuICAgICAgICBjb25zdCBuZXdFbnRpdGllcyA9IFsuLi50aGlzLmVudGl0aWVzXTtcblxuICAgICAgICBpZiAoIWlkIHx8IGZyb21JbmRleCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbLi4udGhpcy5lbnRpdGllc107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW92ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWRPck51bGwobW92ZU9wdGlvbnMuYWZ0ZXJJZCkpIHtcbiAgICAgICAgICAgICAgICB0b0luZGV4ID0gdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtW3RoaXMuaWRLZXldID09PSBtb3ZlT3B0aW9ucy5hZnRlcklkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobW92ZU9wdGlvbnMudG9JbmRleCkge1xuICAgICAgICAgICAgICAgIHRvSW5kZXggPSBtb3ZlT3B0aW9ucy50b0luZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRvSW5kZXggPSBNYXRoLm1heCgwLCBNYXRoLm1pbih0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDEsIHRvSW5kZXgpKTtcbiAgICAgICAgaWYgKHRvSW5kZXggPT09IGZyb21JbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmVudGl0aWVzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZW50aXRpZXNbZnJvbUluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gdG9JbmRleCA8IGZyb21JbmRleCA/IC0xIDogMTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZyb21JbmRleDsgaSAhPT0gdG9JbmRleDsgaSArPSBkZWx0YSkge1xuICAgICAgICAgICAgICAgIG5ld0VudGl0aWVzW2ldID0gbmV3RW50aXRpZXNbaSArIGRlbHRhXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld0VudGl0aWVzW3RvSW5kZXhdID0gdGFyZ2V0O1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5uZXdFbnRpdGllc107XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWNlPFRFbnRpdHk+KGVudGl0aWVzOiBURW50aXR5W10sIG9wdGlvbnM/OiBQcm9kdWNlck9wdGlvbnM8VEVudGl0eT4pOiBQcm9kdWNlcjxURW50aXR5PjtcbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWNlPFRFbnRpdHk+KGVudGl0aWVzOiBURW50aXR5KTogT2JqZWN0UHJvZHVjZXI8VEVudGl0eT47XG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjZTxURW50aXR5PihlbnRpdGllczogVEVudGl0eSB8IFRFbnRpdHlbXSwgb3B0aW9ucz86IFByb2R1Y2VyT3B0aW9uczxURW50aXR5Pikge1xuICAgIGlmIChpc0FycmF5KGVudGl0aWVzKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y2VyPFRFbnRpdHk+KGVudGl0aWVzLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IE9iamVjdFByb2R1Y2VyPFRFbnRpdHk+KGVudGl0aWVzKTtcbiAgICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"tethys-cdk-immutable.mjs","sources":["../../../cdk/immutable/object-producer.ts","../../../cdk/immutable/immutable.ts","../../../cdk/immutable/tethys-cdk-immutable.ts"],"sourcesContent":["/* eslint-disable prettier/prettier */\ntype GetIndexedField<T, K> = K extends keyof T\n ? T[K]\n : K extends `${number}`\n ? '0' extends keyof T\n ? undefined\n : number extends keyof T\n ? T[number]\n : undefined\n : undefined\ntype FieldWithPossiblyUndefined<T, Key> =\n | GetFieldType<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\ntype IndexedFieldWithPossiblyUndefined<T, Key> =\n | GetIndexedField<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\nexport type GetFieldType<T, P> = P extends `${infer Left}.${infer Right}`\n ? Left extends keyof T\n ? FieldWithPossiblyUndefined<T[Left], Right>\n : Left extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? FieldWithPossiblyUndefined<IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>, Right>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>\n : undefined\n : undefined;\n\nexport class ObjectProducer<TEntity> {\n entity: TEntity;\n\n constructor(entity: TEntity) {\n this.entity = entity;\n }\n\n get<TPath extends string>(propPath: TPath): GetFieldType<TEntity, TPath> {\n return propPath.split('.').reduce((previousValue: any, part: string) => previousValue && previousValue[part], this.entity);\n }\n\n set<TPath extends string>(propPath: TPath, value: GetFieldType<TEntity, TPath>) {\n const newEntity = { ...this.entity };\n\n const split = propPath.split('.');\n const lastIndex = split.length - 1;\n\n split.reduce((previousValue, part, index) => {\n if (index === lastIndex) {\n previousValue[part] = value;\n } else {\n previousValue[part] = Array.isArray(previousValue[part]) ? previousValue[part].slice() : { ...previousValue[part] };\n }\n\n return previousValue && previousValue[part];\n }, newEntity);\n\n this.entity = newEntity\n return newEntity;\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isFunction, isUndefinedOrNull, isArray } from '@tethys/cdk/is';\nimport { ObjectProducer } from './object-producer';\n\nexport type Id = string | number;\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\ntype ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\nexport interface ProducerOptions<TEntity> {\n idKey?: ExtractKeysOfValueType<TEntity, Id>;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey as string;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: Id | Id[] | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n this.entities[i] = { ...oldEntity, ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: Id | Id[]): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: Id | Id[] | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions<TEntity>): Producer<TEntity>;\nexport function produce<TEntity>(entities: TEntity): ObjectProducer<TEntity>;\nexport function produce<TEntity>(entities: TEntity | TEntity[], options?: ProducerOptions<TEntity>) {\n if (isArray(entities)) {\n return new Producer<TEntity>(entities, options);\n } else {\n return new ObjectProducer<TEntity>(entities);\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":"tethys-cdk-immutable.mjs","sources":["../../../cdk/immutable/object-producer.ts","../../../cdk/immutable/immutable.ts","../../../cdk/immutable/tethys-cdk-immutable.ts"],"sourcesContent":["/* eslint-disable prettier/prettier */\ntype GetIndexedField<T, K> = K extends keyof T\n ? T[K]\n : K extends `${number}`\n ? '0' extends keyof T\n ? undefined\n : number extends keyof T\n ? T[number]\n : undefined\n : undefined\ntype FieldWithPossiblyUndefined<T, Key> =\n | GetFieldType<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\ntype IndexedFieldWithPossiblyUndefined<T, Key> =\n | GetIndexedField<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\nexport type GetFieldType<T, P> = P extends `${infer Left}.${infer Right}`\n ? Left extends keyof T\n ? FieldWithPossiblyUndefined<T[Left], Right>\n : Left extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? FieldWithPossiblyUndefined<IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>, Right>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>\n : undefined\n : undefined;\n\nexport class ObjectProducer<TEntity> {\n entity: TEntity;\n\n constructor(entity: TEntity) {\n this.entity = entity;\n }\n\n get<TPath extends string>(propPath: TPath): GetFieldType<TEntity, TPath> {\n return propPath.split('.').reduce((previousValue: any, part: string) => previousValue && previousValue[part], this.entity);\n }\n\n set<TPath extends string>(propPath: TPath, value: GetFieldType<TEntity, TPath>) {\n const newEntity = { ...this.entity };\n\n const split = propPath.split('.');\n const lastIndex = split.length - 1;\n\n split.reduce((previousValue, part, index) => {\n if (index === lastIndex) {\n previousValue[part] = value;\n } else {\n previousValue[part] = Array.isArray(previousValue[part]) ? previousValue[part].slice() : { ...previousValue[part] };\n }\n\n return previousValue && previousValue[part];\n }, newEntity);\n\n this.entity = newEntity\n return newEntity;\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isFunction, isUndefinedOrNull, isArray } from '@tethys/cdk/is';\nimport { ObjectProducer } from './object-producer';\n\nexport type Id = string | number;\n\nexport type Ids = Id[];\n\nexport type IdOrIds = Id | Ids;\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\ntype ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\nexport interface ProducerOptions<TEntity> {\n idKey?: ExtractKeysOfValueType<TEntity, Id>;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey as string;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: IdOrIds | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: IdOrIds | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: IdOrIds | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n this.entities[i] = { ...oldEntity, ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: IdOrIds): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: IdOrIds | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions<TEntity>): Producer<TEntity>;\nexport function produce<TEntity>(entities: TEntity): ObjectProducer<TEntity>;\nexport function produce<TEntity>(entities: TEntity | TEntity[], options?: ProducerOptions<TEntity>) {\n if (isArray(entities)) {\n return new Producer<TEntity>(entities, options);\n } else {\n return new ObjectProducer<TEntity>(entities);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tethys-cdk-immutable.mjs","sources":["../../../cdk/immutable/object-producer.ts","../../../cdk/immutable/immutable.ts","../../../cdk/immutable/tethys-cdk-immutable.ts"],"sourcesContent":["/* eslint-disable prettier/prettier */\ntype GetIndexedField<T, K> = K extends keyof T\n ? T[K]\n : K extends `${number}`\n ? '0' extends keyof T\n ? undefined\n : number extends keyof T\n ? T[number]\n : undefined\n : undefined\ntype FieldWithPossiblyUndefined<T, Key> =\n | GetFieldType<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\ntype IndexedFieldWithPossiblyUndefined<T, Key> =\n | GetIndexedField<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\nexport type GetFieldType<T, P> = P extends `${infer Left}.${infer Right}`\n ? Left extends keyof T\n ? FieldWithPossiblyUndefined<T[Left], Right>\n : Left extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? FieldWithPossiblyUndefined<IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>, Right>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>\n : undefined\n : undefined;\n\nexport class ObjectProducer<TEntity> {\n entity: TEntity;\n\n constructor(entity: TEntity) {\n this.entity = entity;\n }\n\n get<TPath extends string>(propPath: TPath): GetFieldType<TEntity, TPath> {\n return propPath.split('.').reduce((previousValue: any, part: string) => previousValue && previousValue[part], this.entity);\n }\n\n set<TPath extends string>(propPath: TPath, value: GetFieldType<TEntity, TPath>) {\n const newEntity = { ...this.entity };\n\n const split = propPath.split('.');\n const lastIndex = split.length - 1;\n\n split.reduce((previousValue, part, index) => {\n if (index === lastIndex) {\n previousValue[part] = value;\n } else {\n previousValue[part] = Array.isArray(previousValue[part]) ? previousValue[part].slice() : { ...previousValue[part] };\n }\n\n return previousValue && previousValue[part];\n }, newEntity);\n\n this.entity = newEntity\n return newEntity;\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isFunction, isUndefinedOrNull, isArray } from '@tethys/cdk/is';\nimport { ObjectProducer } from './object-producer';\n\nexport type Id = string | number;\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\ntype ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\nexport interface ProducerOptions<TEntity> {\n idKey?: ExtractKeysOfValueType<TEntity, Id>;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey as string;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: Id | Id[] | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n this.entities[i] = { ...oldEntity, ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: Id | Id[]): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: Id | Id[] | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions<TEntity>): Producer<TEntity>;\nexport function produce<TEntity>(entities: TEntity): ObjectProducer<TEntity>;\nexport function produce<TEntity>(entities: TEntity | TEntity[], options?: ProducerOptions<TEntity>) {\n if (isArray(entities)) {\n return new Producer<TEntity>(entities, options);\n } else {\n return new ObjectProducer<TEntity>(entities);\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":"tethys-cdk-immutable.mjs","sources":["../../../cdk/immutable/object-producer.ts","../../../cdk/immutable/immutable.ts","../../../cdk/immutable/tethys-cdk-immutable.ts"],"sourcesContent":["/* eslint-disable prettier/prettier */\ntype GetIndexedField<T, K> = K extends keyof T\n ? T[K]\n : K extends `${number}`\n ? '0' extends keyof T\n ? undefined\n : number extends keyof T\n ? T[number]\n : undefined\n : undefined\ntype FieldWithPossiblyUndefined<T, Key> =\n | GetFieldType<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\ntype IndexedFieldWithPossiblyUndefined<T, Key> =\n | GetIndexedField<Exclude<T, undefined>, Key>\n | Extract<T, undefined>\nexport type GetFieldType<T, P> = P extends `${infer Left}.${infer Right}`\n ? Left extends keyof T\n ? FieldWithPossiblyUndefined<T[Left], Right>\n : Left extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? FieldWithPossiblyUndefined<IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>, Right>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${infer FieldKey}[${infer IndexKey}]`\n ? FieldKey extends keyof T\n ? IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>\n : undefined\n : undefined;\n\nexport class ObjectProducer<TEntity> {\n entity: TEntity;\n\n constructor(entity: TEntity) {\n this.entity = entity;\n }\n\n get<TPath extends string>(propPath: TPath): GetFieldType<TEntity, TPath> {\n return propPath.split('.').reduce((previousValue: any, part: string) => previousValue && previousValue[part], this.entity);\n }\n\n set<TPath extends string>(propPath: TPath, value: GetFieldType<TEntity, TPath>) {\n const newEntity = { ...this.entity };\n\n const split = propPath.split('.');\n const lastIndex = split.length - 1;\n\n split.reduce((previousValue, part, index) => {\n if (index === lastIndex) {\n previousValue[part] = value;\n } else {\n previousValue[part] = Array.isArray(previousValue[part]) ? previousValue[part].slice() : { ...previousValue[part] };\n }\n\n return previousValue && previousValue[part];\n }, newEntity);\n\n this.entity = newEntity\n return newEntity;\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { isFunction, isUndefinedOrNull, isArray } from '@tethys/cdk/is';\nimport { ObjectProducer } from './object-producer';\n\nexport type Id = string | number;\n\nexport type Ids = Id[];\n\nexport type IdOrIds = Id | Ids;\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\ntype ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\nexport interface ProducerOptions<TEntity> {\n idKey?: ExtractKeysOfValueType<TEntity, Id>;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions<TEntity>) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey as string;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: IdOrIds | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: IdOrIds | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: IdOrIds | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n this.entities[i] = { ...oldEntity, ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: IdOrIds): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: IdOrIds | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions<TEntity>): Producer<TEntity>;\nexport function produce<TEntity>(entities: TEntity): ObjectProducer<TEntity>;\nexport function produce<TEntity>(entities: TEntity | TEntity[], options?: ProducerOptions<TEntity>) {\n if (isArray(entities)) {\n return new Producer<TEntity>(entities, options);\n } else {\n return new ObjectProducer<TEntity>(entities);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAgCa,cAAc,CAAA;AAGvB,IAAA,WAAA,CAAY,MAAe,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACxB;AAED,IAAA,GAAG,CAAuB,QAAe,EAAA;QACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,aAAkB,EAAE,IAAY,KAAK,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9H;IAED,GAAG,CAAuB,QAAe,EAAE,KAAmC,EAAA;QAC1E,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,KAAI;YACxC,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,gBAAA,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC/B,aAAA;AAAM,iBAAA;AACH,gBAAA,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AACvH,aAAA;AAED,YAAA,OAAO,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;SAC/C,EAAE,SAAS,CAAC,CAAC;AAEd,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;AACvB,QAAA,OAAO,SAAS,CAAC;KACpB;AACJ;;MCnCY,QAAQ,CAAA;IAKjB,WAAY,CAAA,QAAmB,EAAE,OAAkC,EAAA;QAJ3D,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAKlB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;AAC/B,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAe,CAAC;AACxC,SAAA;KACJ;AAED;;;;;;;;AAQG;IACH,GAAG,CAAC,MAA2B,EAAE,UAA6B,EAAA;AAC1D,QAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC;AACxB,SAAA;QACD,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YAC1D,IAAI,UAAU,CAAC,OAAO,EAAE;gBACpB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,KAAK,GACP,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAG;oBAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC;iBAClD,CAAC,GAAG,CAAC,CAAC;gBACX,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;AAC1C,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;AACjC,aAAA;iBAAM,IAAI,UAAU,CAAC,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,CAAC;AACtD,SAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAwBD,MAAM,CACF,OAAqF,EACrF,YAAmF,EAAA;AAEnF,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEjC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnC,YAAA,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;AACzC,gBAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;AACnF,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;AACpD,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7B;AAaD,IAAA,MAAM,CAAC,OAA4D,EAAA;AAC/D,QAAA,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAG;AAC1C,gBAAA,OAAO,CAAE,OAAe,CAAC,MAAM,CAAC,CAAC;AACrC,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAG;AAC1C,gBAAA,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,aAAC,CAAC,CAAC;AACN,SAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED;;;;;;;AAOG;IACH,IAAI,CAAC,EAAM,EAAE,WAA+B,EAAA;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;gBACzC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;AACvF,aAAA;iBAAM,IAAI,WAAW,CAAC,OAAO,EAAE;AAC5B,gBAAA,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACjC,aAAA;AACJ,SAAA;QACD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,IAAI,OAAO,KAAK,SAAS,EAAE;AACvB,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,MAAM,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAE3C,YAAA,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE;gBAC/C,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC3C,aAAA;AACD,YAAA,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAC9B,YAAA,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;AAC3B,SAAA;KACJ;AACJ,CAAA;AAIe,SAAA,OAAO,CAAU,QAA6B,EAAE,OAAkC,EAAA;AAC9F,IAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnB,QAAA,OAAO,IAAI,QAAQ,CAAU,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,KAAA;AAAM,SAAA;AACH,QAAA,OAAO,IAAI,cAAc,CAAU,QAAQ,CAAC,CAAC;AAChD,KAAA;AACL;;ACtLA;;AAEG;;;;"}
@@ -1,5 +1,7 @@
1
1
  import { ObjectProducer } from './object-producer';
2
2
  export declare type Id = string | number;
3
+ export declare type Ids = Id[];
4
+ export declare type IdOrIds = Id | Ids;
3
5
  export interface EntityAddOptions {
4
6
  prepend?: boolean;
5
7
  afterId?: Id;
@@ -48,8 +50,8 @@ export declare class Producer<TEntity> {
48
50
  * name: 'New Name'
49
51
  * });
50
52
  */
51
- update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];
52
- update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];
53
+ update(id: IdOrIds | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];
54
+ update(id: IdOrIds | null, newState?: Partial<TEntity>): TEntity[];
53
55
  /**
54
56
  *
55
57
  * Remove one or more entities:
@@ -59,7 +61,7 @@ export declare class Producer<TEntity> {
59
61
  * produce([users]).remove([1,2,3]);
60
62
  * produce([users]).remove(entity => entity.id === 1);
61
63
  */
62
- remove(id: Id | Id[]): TEntity[];
64
+ remove(id: IdOrIds): TEntity[];
63
65
  remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];
64
66
  /**
65
67
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tethys/cdk",
3
- "version": "14.2.2",
3
+ "version": "14.2.4",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0",