@infrab4a/connect 1.0.0-beta.13 → 1.0.0-beta.15

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.
@@ -36,7 +36,7 @@ export const withUpdateHasuraGraphQL = (MixinBase) => {
36
36
  const model = this.model;
37
37
  if (model.isModel(params))
38
38
  return params.toPlain();
39
- return Object.keys(params).reduce((data, currentKey) => (Object.assign(Object.assign({}, data), { [currentKey]: getValueByAction(params[currentKey]) })), {});
39
+ return Object.keys(params).reduce((data, currentKey) => (Object.assign(Object.assign({}, data), (params[currentKey] && { [currentKey]: getValueByAction(params[currentKey]) }))), {});
40
40
  }
41
41
  getUpdateModelKeys(data) {
42
42
  const instance = this.model.toInstance(data);
@@ -50,4 +50,4 @@ export const withUpdateHasuraGraphQL = (MixinBase) => {
50
50
  }
51
51
  };
52
52
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxtQkFBbUIsR0FHcEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUV4QixPQUFPLEVBQUUsS0FBSyxFQUFxQyxNQUFNLGdCQUFnQixDQUFBO0FBRXpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVlqRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUlyQyxTQUEyRCxFQUkzRCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQTZCLEVBQVcsRUFBRTtRQUNsRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxPQUFPLENBQUE7UUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLFlBQVk7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUVwRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDdEIsQ0FBQyxDQUFBO0lBRUQsT0FBTyxNQUFNLHdCQUF5QixTQUFRLFNBQVM7UUFLckQsWUFBWSxHQUFHLE1BQU07WUFDbkIsTUFBTSxPQUFPLEdBQTRCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxDQUFDLENBQUMsQ0FBQTtZQUVwRCxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUVoQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsc0JBQXNCLEtBQUksVUFBVSxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUE7WUFDakcsSUFBSSxDQUFD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dHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllcyxcbiAgUmVwb3NpdG9yeVVwZGF0ZVBhcmFtcyxcbiAgVXBkYXRlT3B0aW9uQWN0aW9ucyxcbiAgVXBkYXRlT3B0aW9ucyxcbiAgVXBkYXRlUmVwb3NpdG9yeSxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgR3JhcGhRTFJlcG9zaXRvcnksIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGlzTmlsLCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5leHBvcnQgdHlwZSBVcGRhdGVIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVR5cGU8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0gVXBkYXRlUmVwb3NpdG9yeTxNQmFzZT4gJiB7XG4gIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0ge1xuICB1cGRhdGVHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG4gIHVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlPzogc3RyaW5nXG4gIHVwZGF0ZUdyYXBoUUxQS1R5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhVcGRhdGVIYXN1cmFHcmFwaFFMID0gPFxuICBNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiAmIFVwZGF0ZUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5VHlwZTxNQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4sXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8VXBkYXRlQ29uc3RydWN0b3JQYXJhbXMsIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICBjb25zdCBnZXRWYWx1ZUJ5QWN0aW9uID0gKG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8TUJhc2U+KTogdW5rbm93biA9PiB7XG4gICAgaWYgKGlzTmlsKG9wdGlvbnMuYWN0aW9uKSkgcmV0dXJuIG9wdGlvbnNcbiAgICBpZiAob3B0aW9ucy5hY3Rpb24gPT09IFVwZGF0ZU9wdGlvbkFjdGlvbnMuUkVNT1ZFX0ZJRUxEKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIG9wdGlvbnMudmFsdWVcbiAgfVxuXG4gIHJldHVybiBjbGFzcyBVcGRhdGVIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBVcGRhdGVSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgdXBkYXRlR3JhcGhRTE9wZXJhdGlvbjogc3RyaW5nXG4gICAgdXBkYXRlR3JhcGhRTE9iamVjdFR5cGU6IHN0cmluZ1xuICAgIHVwZGF0ZUdyYXBoUUxQS1R5cGU6IHN0cmluZ1xuXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XG4gICAgICBjb25zdCBvcHRpb25zOiBVcGRhdGVDb25zdHJ1Y3RvclBhcmFtcyA9IHBhcmFtcz8uWzBdXG5cbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcblxuICAgICAgdGhpcy51cGRhdGVHcmFwaFFMT3BlcmF0aW9uID0gb3B0aW9ucz8udXBkYXRlR3JhcGhRTE9wZXJhdGlvbiB8fCBgdXBkYXRlXyR7dGhpcy50YWJsZU5hbWV9X2J5X3BrYFxuICAgICAgdGhpcy51cGRhdGVHcmFwaFFMT2JqZWN0VHlwZSA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlIHx8IGAke3RoaXMudGFibGVOYW1lfV9zZXRfaW5wdXRgXG4gICAgICB0aGlzLnVwZGF0ZUdyYXBoUUxQS1R5cGUgPSBvcHRpb25zPy51cGRhdGVHcmFwaFFMUEtUeXBlIHx8IGAke3RoaXMudGFibGVOYW1lfV9wa19jb2x1bW5zX2lucHV0YFxuICAgIH1cblxuICAgIGFzeW5jIHVwZGF0ZShkYXRhOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFByb21pc2U8TUJhc2U+IHtcbiAgICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbihkYXRhKVxuXG4gICAgICBhd2FpdCB0aGlzLm11dGF0aW9uKFxuICAgICAgICB0aGlzLnVwZGF0ZUdyYXBoUUxPcGVyYXRpb24sXG4gICAgICAgIHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMubWFwKFxuICAgICAgICAgIChmaWVsZCkgPT4gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShmaWVsZCwgdGhpcy5maWVsZHMpLmNvbHVtbk5hbWUsXG4gICAgICAgICkgYXMgSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICAgICAgIHtcbiAgICAgICAgICBfc2V0OiB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLnVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY29udmVydERhdGFUb0hhc3VyYSh0aGlzLm1vZGVsLnRvSW5zdGFuY2UocGxhaW5EYXRhKSwgdHJ1ZSksXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBrX2NvbHVtbnM6IHsgdHlwZTogdGhpcy51cGRhdGVHcmFwaFFMUEtUeXBlLCB2YWx1ZTogdGhpcy5nZXRVcGRhdGVNb2RlbEtleXMocGxhaW5EYXRhKSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZShwbGFpbkRhdGEpXG4gICAgfVxuXG4gICAgcGFyYW1zVG9QbGFpbihwYXJhbXM6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8TUJhc2U+KTogUGFydGlhbDxNQmFzZT4ge1xuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsXG5cbiAgICAgIGlmIChtb2RlbC5pc01vZGVsKHBhcmFtcykpIHJldHVybiBwYXJhbXMudG9QbGFpbigpXG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXMpLnJlZHVjZShcbiAgICAgICAgKGRhdGEsIGN1cnJlbnRLZXkpID0+ICh7IC4uLmRhdGEsIFtjdXJyZW50S2V5XTogZ2V0VmFsdWVCeUFjdGlvbihwYXJhbXNbY3VycmVudEtleV0pIH0pLFxuICAgICAgICB7fSxcbiAgICAgIClcbiAgICB9XG5cbiAgICBnZXRVcGRhdGVNb2RlbEtleXMoZGF0YTogUGFydGlhbDxNQmFzZT4pOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzPE1CYXNlPiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMubW9kZWwudG9JbnN0YW5jZShkYXRhKVxuXG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5yZWR1Y2UoKGlkcywgaWRlbnRpZmllcikgPT4ge1xuICAgICAgICBpZiAoaXNOaWwoaW5zdGFuY2VbaWRlbnRpZmllcl0pKSByZXR1cm4gaWRzXG5cbiAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShpZGVudGlmaWVyLCB0aGlzLmZpZWxkcylcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb2x1bW5PcHRpb24udG8oZGF0YVtpZGVudGlmaWVyLnRvU3RyaW5nKCldLCBpbnN0YW5jZSlcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmlkcyxcbiAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiB2YWx1ZSxcbiAgICAgICAgfVxuICAgICAgfSwge30gYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllczxNQmFzZT4pXG4gICAgfVxuICB9IGFzIGFueVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxtQkFBbUIsR0FHcEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QixPQUFPLEVBQUUsS0FBSyxFQUFxQyxNQUFNLGdCQUFnQixDQUFBO0FBR3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVlqRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUlyQyxTQUEyRCxFQUkzRCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQTZCLEVBQVcsRUFBRTtRQUNsRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxPQUFPLENBQUE7UUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLFlBQVk7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUVwRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDdEIsQ0FBQyxDQUFBO0lBRUQsT0FBTyxNQUFNLHdCQUF5QixTQUFRLFNBQVM7UUFLckQsWUFBWSxHQUFHLE1BQU07WUFDbkIsTUFBTSxPQUFPLEdBQTRCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxDQUFDLENBQUMsQ0FBQTtZQUVwRCxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUVoQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsc0JBQXNCLEtBQUksVUFBVSxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUE7WUFDakcsSUFBSSxDQUFD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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXMsXG4gIFJlcG9zaXRvcnlVcGRhdGVQYXJhbXMsXG4gIFVwZGF0ZU9wdGlvbkFjdGlvbnMsXG4gIFVwZGF0ZU9wdGlvbnMsXG4gIFVwZGF0ZVJlcG9zaXRvcnksXG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzTmlsLCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEdyYXBoUUxSZXBvc2l0b3J5LCBIYXN1cmFHcmFwaFFMRmllbGRzIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB9IGZyb20gJy4vaGVscGVycydcblxuZXhwb3J0IHR5cGUgVXBkYXRlSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlUeXBlPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+ICYge1xuICBwYXJhbXNUb1BsYWluKHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxNQmFzZT4pOiBQYXJ0aWFsPE1CYXNlPlxufVxuXG5leHBvcnQgdHlwZSBVcGRhdGVDb25zdHJ1Y3RvclBhcmFtcyA9IHtcbiAgdXBkYXRlR3JhcGhRTE9wZXJhdGlvbj86IHN0cmluZ1xuICB1cGRhdGVHcmFwaFFMT2JqZWN0VHlwZT86IHN0cmluZ1xuICB1cGRhdGVHcmFwaFFMUEtUeXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoVXBkYXRlSGFzdXJhR3JhcGhRTCA9IDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4gJiBUTWl4aW5CYXNlLFxuKTogTWl4aW5DdG9yPFxuICBHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4gJiBVcGRhdGVIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVR5cGU8TUJhc2U+ICYgSW5zdGFuY2VUeXBlPFRNaXhpbkJhc2U+LFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zLCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT4+XG4+ID0+IHtcbiAgY29uc3QgZ2V0VmFsdWVCeUFjdGlvbiA9IChvcHRpb25zOiBVcGRhdGVPcHRpb25zPE1CYXNlPik6IHVua25vd24gPT4ge1xuICAgIGlmIChpc05pbChvcHRpb25zLmFjdGlvbikpIHJldHVybiBvcHRpb25zXG4gICAgaWYgKG9wdGlvbnMuYWN0aW9uID09PSBVcGRhdGVPcHRpb25BY3Rpb25zLlJFTU9WRV9GSUVMRCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBvcHRpb25zLnZhbHVlXG4gIH1cblxuICByZXR1cm4gY2xhc3MgVXBkYXRlSGFzdXJhR3JhcGhRTE1peGluIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgVXBkYXRlUmVwb3NpdG9yeTxNQmFzZT4ge1xuICAgIHVwZGF0ZUdyYXBoUUxPcGVyYXRpb246IHN0cmluZ1xuICAgIHVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlOiBzdHJpbmdcbiAgICB1cGRhdGVHcmFwaFFMUEtUeXBlOiBzdHJpbmdcblxuICAgIGNvbnN0cnVjdG9yKC4uLnBhcmFtcykge1xuICAgICAgY29uc3Qgb3B0aW9uczogVXBkYXRlQ29uc3RydWN0b3JQYXJhbXMgPSBwYXJhbXM/LlswXVxuXG4gICAgICBzdXBlciguLi5wYXJhbXMpXG5cbiAgICAgIHRoaXMudXBkYXRlR3JhcGhRTE9wZXJhdGlvbiA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxPcGVyYXRpb24gfHwgYHVwZGF0ZV8ke3RoaXMudGFibGVOYW1lfV9ieV9wa2BcbiAgICAgIHRoaXMudXBkYXRlR3JhcGhRTE9iamVjdFR5cGUgPSBvcHRpb25zPy51cGRhdGVHcmFwaFFMT2JqZWN0VHlwZSB8fCBgJHt0aGlzLnRhYmxlTmFtZX1fc2V0X2lucHV0YFxuICAgICAgdGhpcy51cGRhdGVHcmFwaFFMUEtUeXBlID0gb3B0aW9ucz8udXBkYXRlR3JhcGhRTFBLVHlwZSB8fCBgJHt0aGlzLnRhYmxlTmFtZX1fcGtfY29sdW1uc19pbnB1dGBcbiAgICB9XG5cbiAgICBhc3luYyB1cGRhdGUoZGF0YTogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxNQmFzZT4pOiBQcm9taXNlPE1CYXNlPiB7XG4gICAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oZGF0YSlcblxuICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbihcbiAgICAgICAgdGhpcy51cGRhdGVHcmFwaFFMT3BlcmF0aW9uLFxuICAgICAgICB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLm1hcChcbiAgICAgICAgICAoZmllbGQpID0+IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoZmllbGQsIHRoaXMuZmllbGRzKS5jb2x1bW5OYW1lLFxuICAgICAgICApIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICAgICB7XG4gICAgICAgICAgX3NldDoge1xuICAgICAgICAgICAgdHlwZTogdGhpcy51cGRhdGVHcmFwaFFMT2JqZWN0VHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmNvbnZlcnREYXRhVG9IYXN1cmEodGhpcy5tb2RlbC50b0luc3RhbmNlKHBsYWluRGF0YSksIHRydWUpLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwa19jb2x1bW5zOiB7IHR5cGU6IHRoaXMudXBkYXRlR3JhcGhRTFBLVHlwZSwgdmFsdWU6IHRoaXMuZ2V0VXBkYXRlTW9kZWxLZXlzKHBsYWluRGF0YSksIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIHJldHVybiB0aGlzLm1vZGVsLnRvSW5zdGFuY2UocGxhaW5EYXRhKVxuICAgIH1cblxuICAgIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbFxuXG4gICAgICBpZiAobW9kZWwuaXNNb2RlbChwYXJhbXMpKSByZXR1cm4gcGFyYW1zLnRvUGxhaW4oKVxuXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKS5yZWR1Y2UoXG4gICAgICAgIChkYXRhLCBjdXJyZW50S2V5KSA9PiAoe1xuICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgLi4uKHBhcmFtc1tjdXJyZW50S2V5XSAmJiB7IFtjdXJyZW50S2V5XTogZ2V0VmFsdWVCeUFjdGlvbihwYXJhbXNbY3VycmVudEtleV0pIH0pLFxuICAgICAgICB9KSxcbiAgICAgICAge30sXG4gICAgICApXG4gICAgfVxuXG4gICAgZ2V0VXBkYXRlTW9kZWxLZXlzKGRhdGE6IFBhcnRpYWw8TUJhc2U+KTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllczxNQmFzZT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoZGF0YSlcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMucmVkdWNlKChpZHMsIGlkZW50aWZpZXIpID0+IHtcbiAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJdKSkgcmV0dXJuIGlkc1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbk9wdGlvbiA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoaWRlbnRpZmllciwgdGhpcy5maWVsZHMpXG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uT3B0aW9uLnRvKGRhdGFbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pZHMsXG4gICAgICAgICAgW2NvbHVtbk9wdGlvbi5jb2x1bW5OYW1lXTogdmFsdWUsXG4gICAgICAgIH1cbiAgICAgIH0sIHt9IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXM8TUJhc2U+KVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { __awaiter, __rest } from "tslib";
2
- import { Shops, Where } from '../../../../domain';
3
- import { Base } from '../../../../utils';
2
+ import { Shops, Where, } from '../../../../domain';
3
+ import { NotFoundError } from '../../../../errors';
4
+ import { Base, isNil } from '../../../../utils';
4
5
  import { HasuraGraphQLColumnType } from '../../enums';
5
6
  import { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins';
6
7
  import { ProductHasuraGraphQL } from '../../models';
@@ -63,7 +64,7 @@ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
63
64
  stock: {
64
65
  columnName: 'stock',
65
66
  from: (quantity) => ({ quantity }),
66
- to: (value) => (value === null || value === void 0 ? void 0 : value.quantity) || value,
67
+ to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
67
68
  },
68
69
  },
69
70
  'slug',
@@ -95,6 +96,17 @@ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
95
96
  ],
96
97
  });
97
98
  }
99
+ get(identifiers) {
100
+ const _super = Object.create(null, {
101
+ get: { get: () => super.get }
102
+ });
103
+ var _a;
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ return Number.isNaN(+identifiers.id)
106
+ ? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
107
+ : _super.get.call(this, identifiers);
108
+ });
109
+ }
98
110
  getBySlug(slug, shop) {
99
111
  var _a;
100
112
  return __awaiter(this, void 0, void 0, function* () {
@@ -112,7 +124,9 @@ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
112
124
  update: { get: () => super.update }
113
125
  });
114
126
  return __awaiter(this, void 0, void 0, function* () {
115
- const { categories, id } = params, data = __rest(params, ["categories", "id"]);
127
+ const { categories, id: checkId } = params, data = __rest(params, ["categories", "id"]);
128
+ const plainData = this.paramsToPlain({ id: checkId });
129
+ const id = yield this.getId(plainData.id);
116
130
  const product = yield _super.update.call(this, Object.assign({ id }, data));
117
131
  product.categories = categories && (yield this.updateCategories(+id, { categories }));
118
132
  return product;
@@ -138,5 +152,16 @@ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
138
152
  return plainData.categories;
139
153
  });
140
154
  }
155
+ getId(id) {
156
+ var _a, _b;
157
+ return __awaiter(this, void 0, void 0, function* () {
158
+ if (!Number.isNaN(+id))
159
+ return id;
160
+ const { data } = yield this.find({ filters: { firestoreId: id } });
161
+ if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
162
+ return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
163
+ throw new NotFoundError(`Product with id ${id} not found`);
164
+ });
165
+ }
141
166
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvcHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLEtBQUssRUFBc0MsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDeEcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR25ELE1BQU0sT0FBTyw4QkFDWCxTQUFRLHFCQUFxQixDQUFDLGlCQUFpQixDQUF1QixJQUFJLENBQUMsQ0FBQztJQUc1RSxZQUFZLFFBQWdCLEVBQUUsV0FBcUM7UUFDakUsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixRQUFRO1lBQ1IsV0FBVztZQUNYLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUN0RixFQUFFLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsRUFBRTtnQkFDL0MsRUFBRSxJQUFJLEVBQUUsRUFB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S0FBQTtJQUVhLGdCQUFnQixDQUM1QixTQUFpQixFQUNqQixFQUFFLFVBQVUsRUFBb0U7O1lBRWhGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO1lBRXBELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUNoRSxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLDJCQUEyQjtvQkFDakMsUUFBUSxFQUFFLElBQUk7b0JBQ2QsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFO2lCQUMxQzthQUNGLENBQUMsQ0FBQTtZQUVGLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUNoRSxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLGtDQUFrQztvQkFDeEMsUUFBUSxFQUFFLElBQUk7b0JBQ2QsS0FBSyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztpQkFDdEc7YUFDRixDQUFDLENBQUE7WUFFRixPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUE7UUFDN0IsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9kdWN0UmVwb3NpdG9yeSwgU2hvcHMsIFNob3BzUHJpY2UsIFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXMsIFdoZXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgSGFzdXJhR3JhcGhRTENvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcydcbmltcG9ydCB7IHdpdGhDcnVkSGFzdXJhR3JhcGhRTCwgd2l0aEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21vZGVscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aENydWRIYXN1cmFHcmFwaFFMKHdpdGhIYXN1cmFHcmFwaFFMPFByb2R1Y3RIYXN1cmFHcmFwaFFMPihCYXNlKSlcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxue1xuICBjb25zdHJ1Y3RvcihlbmRwb2ludDogc3RyaW5nLCBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdGFibGVOYW1lOiAncHJvZHVjdCcsXG4gICAgICBtb2RlbDogUHJvZHVjdEhhc3VyYUdyYXBoUUwsXG4gICAgICBlbmRwb2ludCxcbiAgICAgIGF1dGhPcHRpb25zLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHsgaWQ6IHsgY29sdW1uTmFtZTogJ2lkJywgdG86ICh2YWx1ZSkgPT4gK3ZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlLnRvU3RyaW5nKCkgfSB9LFxuICAgICAgICB7IGZpcmVzdG9yZUlkOiB7IGNvbHVtbk5hbWU6ICdmaXJlc3RvcmVfaWQnIH0gfSxcbiAgICAgICAgeyBDRVNUOiB7IGNvbHVtbk5hbWU6ICdjZXN0JyB9IH0sXG4gICAgICAgIHsgRUFOOiB7IGNvbHVtbk5hbWU6ICdlYW4nIH0gfSxcbiAgICAgICAgeyBOQ006IHsgY29sdW1uTmFtZTogJ25jbScgfSB9LFxuICAgICAgICAnYnJhbmQnLFxuICAgICAgICB7IGNvc3RQcmljZTogeyBjb2x1bW5OYW1lOiAnY29zdF9wcmljZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBmcm9tOiAoZGVzY3JpcHRpb24pID0+XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoU2hvcHMpLnJlZHVjZSgoc2hvcHMsIHNob3ApID0+ICh7IC4uLnNob3BzLCBbc2hvcF06IHsgZGVzY3JpcHRpb24gfSB9KSwge30pLFxuICAgICAgICAgICAgdG86ICh2YWx1ZSkgPT4gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuc2hpZnQoKS5kZXNjcmlwdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGhhc1ZhcmlhbnRzOiB7IGNvbHVtbk5hbWU6ICdoYXNfdmFyaWFudHMnIH0gfSxcbiAgICAgICAgeyBpbWFnZXM6IHsgY29sdW1uTmFtZTogJ2ltYWdlcycsIHRvOiAodmFsdWUpID0+IGB7XCIke3ZhbHVlLmpvaW4oYFwiLFwiYCl9XCJ9YCB9IH0sXG4gICAgICAgIHsgbWluaWF0dXJlczogeyBjb2x1bW5OYW1lOiAnbWluaWF0dXJlcycsIHRvOiAodmFsdWUpID0+IGB7XCIke3ZhbHVlLmpvaW4oYFwiLFwiYCl9XCJ9YCB9IH0sXG4gICAgICAgICduYW1lJyxcbiAgICAgICAge1xuICAgICAgICAgIHByaWNlOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAncHJpY2UnLFxuICAgICAgICAgICAgZnJvbTogKHByaWNlLCBkYXRhKTogU2hvcHNQcmljZSA9PlxuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKFNob3BzKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHByaWNlczogU2hvcHNQcmljZSwgc2hvcCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIC4uLnByaWNlcyxcbiAgICAgICAgICAgICAgICAgIFtzaG9wXToge1xuICAgICAgICAgICAgICAgICAgICBwcmljZSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbFByaWNlOiBkYXRhLmZ1bGxfcHJpY2UsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2U6IGRhdGEuc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyUHJpY2U6IGRhdGEuc3Vic2NyaWJlcl9wcmljZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycz8ucHJpY2UgJiYgeyBwcmljZTogZmlsdGVycy5wcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycy5mdWxsUHJpY2UgJiYgeyBmdWxsX3ByaWNlOiBmaWx0ZXJzLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlICYmIHtcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZTogZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJzLnN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IGZpbHRlcnMuc3Vic2NyaWJlclByaWNlIH0pLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VEYXRhID0gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuc2hpZnQoKVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uKHByaWNlRGF0YT8ucHJpY2UgJiYgeyBwcmljZTogcHJpY2VEYXRhLnByaWNlIH0pLFxuICAgICAgICAgICAgICAgIC4uLihwcmljZURhdGEuZnVsbFByaWNlICYmIHsgZnVsbF9wcmljZTogcHJpY2VEYXRhLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgJiYge1xuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlOiBwcmljZURhdGEuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLnN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgfSksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBmdWxsUHJpY2U6IHsgY29sdW1uTmFtZTogJ2Z1bGxfcHJpY2UnIH0gfSxcbiAgICAgICAgeyBzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlOiB7IGNvbHVtbk5hbWU6ICdzdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2UnIH0gfSxcbiAgICAgICAgeyBzdWJzY3JpYmVyUHJpY2U6IHsgY29sdW1uTmFtZTogJ3N1YnNjcmliZXJfcHJpY2UnIH0gfSxcbiAgICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAgIHsgcHVibGlzaGVkR2xhbTogeyBjb2x1bW5OYW1lOiAncHVibGlzaGVkX2dsYW0nIH0gfSxcbiAgICAgICAgJ3NrdScsXG4gICAgICAgIHtcbiAgICAgICAgICBzdG9jazoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ3N0b2NrJyxcbiAgICAgICAgICAgIGZyb206IChxdWFudGl0eTogbnVtYmVyKSA9PiAoeyBxdWFudGl0eSB9KSxcbiAgICAgICAgICAgIHRvOiAodmFsdWUpID0+IHZhbHVlPy5xdWFudGl0eSB8fCB2YWx1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAnc2x1ZycsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ3ZpZGVvJyxcbiAgICAgICAgJ3dlaWdodCcsXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yaWVzOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAnY2F0ZWdvcmllcycsXG4gICAgICAgICAgICBmaWVsZHM6IFsnY2F0ZWdvcnlfaWQnXSxcbiAgICAgICAgICAgIGJpbmRQZXJzaXN0RGF0YTogKHZhbHVlKSA9PiAoe1xuICAgICAgICAgICAgICBjYXRlZ29yaWVzOiB7IGRhdGE6IHZhbHVlLm1hcCgoY2F0ZWdvcnkpID0+ICh7IGNhdGVnb3J5X2lkOiArY2F0ZWdvcnkgfSkpIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRvOiAoY2F0ZWdvcmllcykgPT4gY2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5SWQpID0+ICtjYXRlZ29yeUlkKSxcbiAgICAgICAgICAgIGZyb206IChjYXRlZ29yaWVzOiB7IGNhdGVnb3J5X2lkOiBudW1iZXIgfVtdKSA9PlxuICAgICAgICAgICAgICBjYXRlZ29yaWVzPy5tYXAoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeT8uY2F0ZWdvcnlfaWQ/LnRvU3RyaW5nKCkpIHx8IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaG9wQXZhaWxhYmlsaXR5OiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAnc2hvcF9hdmFpbGFiaWxpdGllcycsXG4gICAgICAgICAgICBmaWVsZHM6IFsnc2hvcCddLFxuICAgICAgICAgICAgZnJvbTogKHNob3ApID0+IChBcnJheS5pc0FycmF5KHNob3ApID8gc2hvcC5tYXAoKHJvdzogeyBzaG9wOiBTaG9wcyB9KSA9PiByb3cuc2hvcCkgOiBbXSksXG4gICAgICAgICAgICB0bzogKHNob3BzKSA9PiBzaG9wcy5tYXAoKHNob3A6IFNob3BzKSA9PiAoeyBzaG9wIH0pKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IHRhZ3M6IHsgY29sdW1uTmFtZTogJ3RhZ3MnLCB0eXBlOiBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYiB9IH0sXG4gICAgICAgIHsgY3JlYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICdjcmVhdGVkX2F0JyB9IH0sXG4gICAgICAgIHsgdXBkYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICd1cGRhdGVkX2F0JyB9IH0sXG4gICAgICBdLFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nLCBzaG9wOiBTaG9wcyk6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUw+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmZpbmQoe1xuICAgICAgZmlsdGVyczoge1xuICAgICAgICBzbHVnOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiBzbHVnIH0sXG4gICAgICAgIHNob3BBdmFpbGFiaWxpdHk6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogW3Nob3BdIH0sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gcmVzdWx0Py5kYXRhPy5zaGlmdCgpXG4gIH1cblxuICBhc3luYyB1cGRhdGUocGFyYW1zOiBVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUw+IHtcbiAgICBjb25zdCB7IGNhdGVnb3JpZXMsIGlkLCAuLi5kYXRhIH0gPSBwYXJhbXNcbiAgICBjb25zdCBwcm9kdWN0ID0gYXdhaXQgc3VwZXIudXBkYXRlKHsgaWQsIC4uLmRhdGEgfSlcblxuICAgIHByb2R1Y3QuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXMgJiYgKGF3YWl0IHRoaXMudXBkYXRlQ2F0ZWdvcmllcygraWQsIHsgY2F0ZWdvcmllcyB9KSlcblxuICAgIHJldHVybiBwcm9kdWN0XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNhdGVnb3JpZXMoXG4gICAgcHJvZHVjdElkOiBudW1iZXIsXG4gICAgeyBjYXRlZ29yaWVzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4sICdjYXRlZ29yaWVzJz4sXG4gICk6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUxbJ2NhdGVnb3JpZXMnXT4ge1xuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IGNhdGVnb3JpZXMgfSlcblxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV9wcm9kdWN0X2Jvb2xfZXhwJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHZhbHVlOiB7IHByb2R1Y3RfaWQ6IHsgX2VxOiBwcm9kdWN0SWQgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgb2JqZWN0czoge1xuICAgICAgICB0eXBlOiAnW2NhdGVnb3J5X3Byb2R1Y3RfaW5zZXJ0X2lucHV0IV0nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHBsYWluRGF0YS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnlJZCkgPT4gKHsgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQsIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9KSksXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gcGxhaW5EYXRhLmNhdGVnb3JpZXNcbiAgfVxufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvcHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBR0wsS0FBSyxFQUdMLEtBQUssR0FDTixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR25ELE1BQU0sT0FBTyw4QkFDWCxTQUFRLHFCQUFxQixDQUFDLGlCQUFpQixDQUF1QixJQUFJLENBQUMsQ0FBQztJQUc1RSxZQUFZLFFBQWdCLEVBQUUsV0FBcUM7UUFDakUsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixRQUFRO1lBQ1IsV0FBVztZQUNYLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUN0RixFQUFFLFdBQVcsRUFBRSxFQUFF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QUFNLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDaEUsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxrQ0FBa0M7b0JBQ3hDLFFBQVEsRUFBRSxJQUFJO29CQUNkLEtBQUssRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7aUJBQ3RHO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFBO1FBQzdCLENBQUM7S0FBQTtJQUVhLEtBQUssQ0FBQyxFQUFVOzs7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQUUsT0FBTyxFQUFFLENBQUE7WUFFakMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFFbEUsSUFBSSxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxDQUFDLENBQUMsMENBQUUsRUFBRTtnQkFBRSxPQUFPLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLENBQUMsQ0FBQywwQ0FBRSxFQUFFLENBQUE7WUFFdkMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQTs7S0FDM0Q7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEdldFJlcG9zaXRvcnlQYXJhbXMsXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBTaG9wcyxcbiAgU2hvcHNQcmljZSxcbiAgVXBkYXRlUmVwb3NpdG9yeVBhcmFtcyxcbiAgV2hlcmUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBCYXNlLCBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgSGFzdXJhR3JhcGhRTENvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcydcbmltcG9ydCB7IHdpdGhDcnVkSGFzdXJhR3JhcGhRTCwgd2l0aEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21vZGVscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aENydWRIYXN1cmFHcmFwaFFMKHdpdGhIYXN1cmFHcmFwaFFMPFByb2R1Y3RIYXN1cmFHcmFwaFFMPihCYXNlKSlcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxue1xuICBjb25zdHJ1Y3RvcihlbmRwb2ludDogc3RyaW5nLCBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdGFibGVOYW1lOiAncHJvZHVjdCcsXG4gICAgICBtb2RlbDogUHJvZHVjdEhhc3VyYUdyYXBoUUwsXG4gICAgICBlbmRwb2ludCxcbiAgICAgIGF1dGhPcHRpb25zLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHsgaWQ6IHsgY29sdW1uTmFtZTogJ2lkJywgdG86ICh2YWx1ZSkgPT4gK3ZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlLnRvU3RyaW5nKCkgfSB9LFxuICAgICAgICB7IGZpcmVzdG9yZUlkOiB7IGNvbHVtbk5hbWU6ICdmaXJlc3RvcmVfaWQnIH0gfSxcbiAgICAgICAgeyBDRVNUOiB7IGNvbHVtbk5hbWU6ICdjZXN0JyB9IH0sXG4gICAgICAgIHsgRUFOOiB7IGNvbHVtbk5hbWU6ICdlYW4nIH0gfSxcbiAgICAgICAgeyBOQ006IHsgY29sdW1uTmFtZTogJ25jbScgfSB9LFxuICAgICAgICAnYnJhbmQnLFxuICAgICAgICB7IGNvc3RQcmljZTogeyBjb2x1bW5OYW1lOiAnY29zdF9wcmljZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBmcm9tOiAoZGVzY3JpcHRpb24pID0+XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoU2hvcHMpLnJlZHVjZSgoc2hvcHMsIHNob3ApID0+ICh7IC4uLnNob3BzLCBbc2hvcF06IHsgZGVzY3JpcHRpb24gfSB9KSwge30pLFxuICAgICAgICAgICAgdG86ICh2YWx1ZSkgPT4gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuc2hpZnQoKS5kZXNjcmlwdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGhhc1ZhcmlhbnRzOiB7IGNvbHVtbk5hbWU6ICdoYXNfdmFyaWFudHMnIH0gfSxcbiAgICAgICAgeyBpbWFnZXM6IHsgY29sdW1uTmFtZTogJ2ltYWdlcycsIHRvOiAodmFsdWUpID0+IGB7XCIke3ZhbHVlLmpvaW4oYFwiLFwiYCl9XCJ9YCB9IH0sXG4gICAgICAgIHsgbWluaWF0dXJlczogeyBjb2x1bW5OYW1lOiAnbWluaWF0dXJlcycsIHRvOiAodmFsdWUpID0+IGB7XCIke3ZhbHVlLmpvaW4oYFwiLFwiYCl9XCJ9YCB9IH0sXG4gICAgICAgICduYW1lJyxcbiAgICAgICAge1xuICAgICAgICAgIHByaWNlOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAncHJpY2UnLFxuICAgICAgICAgICAgZnJvbTogKHByaWNlLCBkYXRhKTogU2hvcHNQcmljZSA9PlxuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKFNob3BzKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHByaWNlczogU2hvcHNQcmljZSwgc2hvcCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIC4uLnByaWNlcyxcbiAgICAgICAgICAgICAgICAgIFtzaG9wXToge1xuICAgICAgICAgICAgICAgICAgICBwcmljZSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbFByaWNlOiBkYXRhLmZ1bGxfcHJpY2UsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2U6IGRhdGEuc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyUHJpY2U6IGRhdGEuc3Vic2NyaWJlcl9wcmljZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycz8ucHJpY2UgJiYgeyBwcmljZTogZmlsdGVycy5wcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycy5mdWxsUHJpY2UgJiYgeyBmdWxsX3ByaWNlOiBmaWx0ZXJzLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlICYmIHtcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZTogZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJzLnN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IGZpbHRlcnMuc3Vic2NyaWJlclByaWNlIH0pLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VEYXRhID0gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuc2hpZnQoKVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uKHByaWNlRGF0YT8ucHJpY2UgJiYgeyBwcmljZTogcHJpY2VEYXRhLnByaWNlIH0pLFxuICAgICAgICAgICAgICAgIC4uLihwcmljZURhdGEuZnVsbFByaWNlICYmIHsgZnVsbF9wcmljZTogcHJpY2VEYXRhLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgJiYge1xuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlOiBwcmljZURhdGEuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLnN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgfSksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBmdWxsUHJpY2U6IHsgY29sdW1uTmFtZTogJ2Z1bGxfcHJpY2UnIH0gfSxcbiAgICAgICAgeyBzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlOiB7IGNvbHVtbk5hbWU6ICdzdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2UnIH0gfSxcbiAgICAgICAgeyBzdWJzY3JpYmVyUHJpY2U6IHsgY29sdW1uTmFtZTogJ3N1YnNjcmliZXJfcHJpY2UnIH0gfSxcbiAgICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAgIHsgcHVibGlzaGVkR2xhbTogeyBjb2x1bW5OYW1lOiAncHVibGlzaGVkX2dsYW0nIH0gfSxcbiAgICAgICAgJ3NrdScsXG4gICAgICAgIHtcbiAgICAgICAgICBzdG9jazoge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ3N0b2NrJyxcbiAgICAgICAgICAgIGZyb206IChxdWFudGl0eTogbnVtYmVyKSA9PiAoeyBxdWFudGl0eSB9KSxcbiAgICAgICAgICAgIHRvOiAodmFsdWUpID0+IChpc05pbCh2YWx1ZT8ucXVhbnRpdHkpID8gdmFsdWUgOiB2YWx1ZT8ucXVhbnRpdHkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdzbHVnJyxcbiAgICAgICAgJ3R5cGUnLFxuICAgICAgICAndmlkZW8nLFxuICAgICAgICAnd2VpZ2h0JyxcbiAgICAgICAge1xuICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdjYXRlZ29yaWVzJyxcbiAgICAgICAgICAgIGZpZWxkczogWydjYXRlZ29yeV9pZCddLFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXM6IHsgZGF0YTogdmFsdWUubWFwKChjYXRlZ29yeSkgPT4gKHsgY2F0ZWdvcnlfaWQ6ICtjYXRlZ29yeSB9KSkgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdG86IChjYXRlZ29yaWVzKSA9PiBjYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnlJZCkgPT4gK2NhdGVnb3J5SWQpLFxuICAgICAgICAgICAgZnJvbTogKGNhdGVnb3JpZXM6IHsgY2F0ZWdvcnlfaWQ6IG51bWJlciB9W10pID0+XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXM/Lm1hcCgoY2F0ZWdvcnkpID0+IGNhdGVnb3J5Py5jYXRlZ29yeV9pZD8udG9TdHJpbmcoKSkgfHwgW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNob3BBdmFpbGFiaWxpdHk6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdzaG9wX2F2YWlsYWJpbGl0aWVzJyxcbiAgICAgICAgICAgIGZpZWxkczogWydzaG9wJ10sXG4gICAgICAgICAgICBmcm9tOiAoc2hvcCkgPT4gKEFycmF5LmlzQXJyYXkoc2hvcCkgPyBzaG9wLm1hcCgocm93OiB7IHNob3A6IFNob3BzIH0pID0+IHJvdy5zaG9wKSA6IFtdKSxcbiAgICAgICAgICAgIHRvOiAoc2hvcHMpID0+IHNob3BzLm1hcCgoc2hvcDogU2hvcHMpID0+ICh7IHNob3AgfSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgdGFnczogeyBjb2x1bW5OYW1lOiAndGFncycsIHR5cGU6IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLkpzb25iIH0gfSxcbiAgICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcbiAgICAgICAgeyB1cGRhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ3VwZGF0ZWRfYXQnIH0gfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldChpZGVudGlmaWVyczogR2V0UmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiB7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTigraWRlbnRpZmllcnMuaWQpXG4gICAgICA/IChhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZGVudGlmaWVycy5pZCB9IH0pKS5kYXRhPy5bMF1cbiAgICAgIDogc3VwZXIuZ2V0KGlkZW50aWZpZXJzKVxuICB9XG5cbiAgYXN5bmMgZ2V0QnlTbHVnKHNsdWc6IHN0cmluZywgc2hvcDogU2hvcHMpOiBQcm9taXNlPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5maW5kKHtcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgc2x1ZzogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogc2x1ZyB9LFxuICAgICAgICBzaG9wQXZhaWxhYmlsaXR5OiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IFtzaG9wXSB9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlc3VsdD8uZGF0YT8uc2hpZnQoKVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlKHBhcmFtczogVXBkYXRlUmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiB7XG4gICAgY29uc3QgeyBjYXRlZ29yaWVzLCBpZDogY2hlY2tJZCwgLi4uZGF0YSB9ID0gcGFyYW1zXG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgaWQ6IGNoZWNrSWQgfSlcbiAgICBjb25zdCBpZCA9IGF3YWl0IHRoaXMuZ2V0SWQocGxhaW5EYXRhLmlkKVxuICAgIGNvbnN0IHByb2R1Y3QgPSBhd2FpdCBzdXBlci51cGRhdGUoeyBpZCwgLi4uZGF0YSB9KVxuXG4gICAgcHJvZHVjdC5jYXRlZ29yaWVzID0gY2F0ZWdvcmllcyAmJiAoYXdhaXQgdGhpcy51cGRhdGVDYXRlZ29yaWVzKCtpZCwgeyBjYXRlZ29yaWVzIH0pKVxuXG4gICAgcmV0dXJuIHByb2R1Y3RcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlQ2F0ZWdvcmllcyhcbiAgICBwcm9kdWN0SWQ6IG51bWJlcixcbiAgICB7IGNhdGVnb3JpZXMgfTogUGljazxVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiwgJ2NhdGVnb3JpZXMnPixcbiAgKTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTFsnY2F0ZWdvcmllcyddPiB7XG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgY2F0ZWdvcmllcyB9KVxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbignZGVsZXRlX2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgdHlwZTogJ2NhdGVnb3J5X3Byb2R1Y3RfYm9vbF9leHAnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHsgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9IH0sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLm11dGF0aW9uKCdpbnNlcnRfY2F0ZWdvcnlfcHJvZHVjdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICBvYmplY3RzOiB7XG4gICAgICAgIHR5cGU6ICdbY2F0ZWdvcnlfcHJvZHVjdF9pbnNlcnRfaW5wdXQhXScsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB2YWx1ZTogcGxhaW5EYXRhLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeUlkKSA9PiAoeyBjYXRlZ29yeV9pZDogY2F0ZWdvcnlJZCwgcHJvZHVjdF9pZDogcHJvZHVjdElkIH0pKSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBwbGFpbkRhdGEuY2F0ZWdvcmllc1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJZChpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIU51bWJlci5pc05hTigraWQpKSByZXR1cm4gaWRcblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogaWQgfSB9KVxuXG4gICAgaWYgKGRhdGE/LlswXT8uaWQpIHJldHVybiBkYXRhPy5bMF0/LmlkXG5cbiAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUHJvZHVjdCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApXG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,9 @@
1
- import { Base } from '../../../../utils';
2
- import { VariantHasuraGraphQL } from '../../models';
1
+ import { __awaiter, __rest } from "tslib";
3
2
  import { Shops } from '../../../../domain';
3
+ import { NotFoundError } from '../../../../errors';
4
+ import { Base, isNil } from '../../../../utils';
4
5
  import { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins';
6
+ import { VariantHasuraGraphQL } from '../../models';
5
7
  export class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
6
8
  constructor(endpoint, authOptions) {
7
9
  super({
@@ -12,7 +14,7 @@ export class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
12
14
  fields: [
13
15
  { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
14
16
  { firestoreId: { columnName: 'firestore_id' } },
15
- { productId: { columnName: 'main_product_id', to: (value) => +value, from: (value) => value.toString() } },
17
+ { productId: { columnName: 'main_product_id', to: (value) => +value, from: (value) => value === null || value === void 0 ? void 0 : value.toString() } },
16
18
  { EAN: { columnName: 'ean' } },
17
19
  { costPrice: { columnName: 'cost_price' } },
18
20
  {
@@ -46,7 +48,7 @@ export class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
46
48
  stock: {
47
49
  columnName: 'stock',
48
50
  from: (quantity) => ({ quantity }),
49
- to: (value) => (value === null || value === void 0 ? void 0 : value.quantity) || value,
51
+ to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
50
52
  },
51
53
  },
52
54
  'weight',
@@ -57,5 +59,40 @@ export class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHa
57
59
  ],
58
60
  });
59
61
  }
62
+ get(identifiers) {
63
+ const _super = Object.create(null, {
64
+ get: { get: () => super.get }
65
+ });
66
+ var _a;
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ return Number.isNaN(+identifiers.id)
69
+ ? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
70
+ : _super.get.call(this, identifiers);
71
+ });
72
+ }
73
+ update(params) {
74
+ const _super = Object.create(null, {
75
+ update: { get: () => super.update }
76
+ });
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const { productId, id: checkId } = params, data = __rest(params, ["productId", "id"]);
79
+ const dataWithProductId = this.paramsToPlain({ id: checkId, productId });
80
+ const id = yield this.getId(dataWithProductId.id);
81
+ const product = yield _super.update.call(this, Object.assign({ id }, data));
82
+ product.productId = dataWithProductId.productId;
83
+ return product;
84
+ });
85
+ }
86
+ getId(id) {
87
+ var _a, _b;
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ if (!Number.isNaN(+id))
90
+ return id;
91
+ const { data } = yield this.find({ filters: { firestoreId: id } });
92
+ if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
93
+ return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
94
+ throw new NotFoundError(`Product with id ${id} not found`);
95
+ });
96
+ }
60
97
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvdmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBaUMsTUFBTSxvQkFBb0IsQ0FBQTtBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFdkUsTUFBTSxPQUFPLDhCQUNYLFNBQVEscUJBQXFCLENBQUMsaUJBQWlCLENBQXVCLElBQUksQ0FBQyxDQUFDO0lBRzVFLFlBQVksUUFBZ0IsRUFBRSxXQUFxQztRQUNqRSxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFFBQVE7WUFDUixXQUFXO1lBQ1gsTUFBTSxFQUFFO2dCQUNOLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUU7Z0JBQ3RGLEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxFQUFFO2dCQUMvQyxFQUFFLFNBQVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxD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QSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsUUFBUSxLQUFJLEtBQUs7cUJBQ3hDO2lCQUNGO2dCQUNELFFBQVE7Z0JBQ1IsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakQsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN2RixFQUFFLFNBQVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDM0MsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUU7YUFDNUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IFZhcmlhbnRIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi4vLi4vbW9kZWxzJ1xuaW1wb3J0IHsgU2hvcHMsIFNob3BzUHJpY2UsIFZhcmlhbnRSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgd2l0aENydWRIYXN1cmFHcmFwaFFMLCB3aXRoSGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21peGlucydcblxuZXhwb3J0IGNsYXNzIFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkSGFzdXJhR3JhcGhRTCh3aXRoSGFzdXJhR3JhcGhRTDxWYXJpYW50SGFzdXJhR3JhcGhRTD4oQmFzZSkpXG4gIGltcGxlbWVudHMgVmFyaWFudFJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IoZW5kcG9pbnQ6IHN0cmluZywgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIHRhYmxlTmFtZTogJ3Byb2R1Y3QnLFxuICAgICAgbW9kZWw6IFZhcmlhbnRIYXN1cmFHcmFwaFFMLFxuICAgICAgZW5kcG9pbnQsXG4gICAgICBhdXRoT3B0aW9ucyxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IGlkOiB7IGNvbHVtbk5hbWU6ICdpZCcsIHRvOiAodmFsdWUpID0+ICt2YWx1ZSwgZnJvbTogKHZhbHVlKSA9PiB2YWx1ZS50b1N0cmluZygpIH0gfSxcbiAgICAgICAgeyBmaXJlc3RvcmVJZDogeyBjb2x1bW5OYW1lOiAnZmlyZXN0b3JlX2lkJyB9IH0sXG4gICAgICAgIHsgcHJvZHVjdElkOiB7IGNvbHVtbk5hbWU6ICdtYWluX3Byb2R1Y3RfaWQnLCB0bzogKHZhbHVlKSA9PiArdmFsdWUsIGZyb206ICh2YWx1ZSkgPT4gdmFsdWUudG9TdHJpbmcoKSB9IH0sXG4gICAgICAgIHsgRUFOOiB7IGNvbHVtbk5hbWU6ICdlYW4nIH0gfSxcbiAgICAgICAgeyBjb3N0UHJpY2U6IHsgY29sdW1uTmFtZTogJ2Nvc3RfcHJpY2UnIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHByaWNlOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAncHJpY2UnLFxuICAgICAgICAgICAgZnJvbTogKHByaWNlLCBkYXRhKTogU2hvcHNQcmljZSA9PlxuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKFNob3BzKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHByaWNlczogU2hvcHNQcmljZSwgc2hvcCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIC4uLnByaWNlcyxcbiAgICAgICAgICAgICAgICAgIFtzaG9wXToge1xuICAgICAgICAgICAgICAgICAgICBwcmljZSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbFByaWNlOiBkYXRhLmZ1bGxfcHJpY2UsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2U6IGRhdGEuc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyUHJpY2U6IGRhdGEuc3Vic2NyaWJlcl9wcmljZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QudmFsdWVzKHNlbnRlbmNlKS5zaGlmdCgpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycz8ucHJpY2UgJiYgeyBwcmljZTogZmlsdGVycy5wcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycy5mdWxsUHJpY2UgJiYgeyBmdWxsX3ByaWNlOiBmaWx0ZXJzLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlICYmIHtcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZTogZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJzLnN1YnNjcmliZXJQcmljZSAmJiB7IHN1YnNjcmliZXJfcHJpY2U6IGZpbHRlcnMuc3Vic2NyaWJlclByaWNlIH0pLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUsIGluc3RhbmNlPykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwcmljZURhdGEgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5zaGlmdCgpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhPy5wcmljZSAmJiB7IHByaWNlOiBwcmljZURhdGEucHJpY2UgfSksXG4gICAgICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5mdWxsUHJpY2UgJiYgeyBmdWxsX3ByaWNlOiBwcmljZURhdGEuZnVsbFByaWNlIH0pLFxuICAgICAgICAgICAgICAgIC4uLihwcmljZURhdGEuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSAmJiB7XG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLihwcmljZURhdGEuc3Vic2NyaWJlclByaWNlICYmIHsgc3Vic2NyaWJlcl9wcmljZTogcHJpY2VEYXRhLnN1YnNjcmliZXJQcmljZSB9KSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGZ1bGxQcmljZTogeyBjb2x1bW5OYW1lOiAnZnVsbF9wcmljZScgfSB9LFxuICAgICAgICB7IHN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2U6IHsgY29sdW1uTmFtZTogJ3N1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZScgfSB9LFxuICAgICAgICB7IHN1YnNjcmliZXJQcmljZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9wcmljZScgfSB9LFxuICAgICAgICAnc2t1JyxcbiAgICAgICAge1xuICAgICAgICAgIHN0b2NrOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAnc3RvY2snLFxuICAgICAgICAgICAgZnJvbTogKHF1YW50aXR5OiBudW1iZXIpID0+ICh7IHF1YW50aXR5IH0pLFxuICAgICAgICAgICAgdG86ICh2YWx1ZSkgPT4gdmFsdWU/LnF1YW50aXR5IHx8IHZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICd3ZWlnaHQnLFxuICAgICAgICB7IG5hbWU6IHsgdG86ICgpID0+ICcnLCBmcm9tOiAoKSA9PiB1bmRlZmluZWQgfSB9LFxuICAgICAgICB7IGhhc1ZhcmlhbnRzOiB7IGNvbHVtbk5hbWU6ICdoYXNfdmFyaWFudHMnLCB0bzogKCkgPT4gZmFsc2UsIGZyb206ICgpID0+IHVuZGVmaW5lZCB9IH0sXG4gICAgICAgIHsgY3JlYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICdjcmVhdGVkX2F0JyB9IH0sXG4gICAgICAgIHsgdXBkYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICd1cGRhdGVkX2F0JyB9IH0sXG4gICAgICBdLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvdmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXVCLEtBQUssRUFBeUQsTUFBTSxvQkFBb0IsQ0FBQTtBQUN0SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR25ELE1BQU0sT0FBTyw4QkFDWCxTQUFRLHFCQUFxQixDQUFDLGlCQUFpQixDQUF1QixJQUFJLENBQUMsQ0FBQztJQUc1RSxZQUFZLFFBQWdCLEVBQUUsV0FBcUM7UUFDakUsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixRQUFRO1lBQ1IsV0FBVztZQUNYLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUN0RixFQUFFLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsRUFBRTtnQkFDL0MsRUFBRSxTQUFTLEVBQUUsRUFB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TSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxLQUFjLE1BQU0sRUFBZixJQUFJLFVBQUssTUFBTSxFQUE1QyxtQkFBbUMsQ0FBUyxDQUFBO1lBQ2xELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUN4RSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFNLE1BQU0sNEJBQUcsRUFBRSxJQUFLLElBQUksRUFBRyxDQUFBO1lBRW5ELE9BQU8sQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFBO1lBRS9DLE9BQU8sT0FBTyxDQUFBO1FBQ2hCLENBQUM7S0FBQTtJQUVhLEtBQUssQ0FBQyxFQUFVOzs7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQUUsT0FBTyxFQUFFLENBQUE7WUFFakMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFFbEUsSUFBSSxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxDQUFDLENBQUMsMENBQUUsRUFBRTtnQkFBRSxPQUFPLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLENBQUMsQ0FBQywwQ0FBRSxFQUFFLENBQUE7WUFFdkMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQTs7S0FDM0Q7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFJlcG9zaXRvcnlQYXJhbXMsIFNob3BzLCBTaG9wc1ByaWNlLCBVcGRhdGVSZXBvc2l0b3J5UGFyYW1zLCBWYXJpYW50UmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBCYXNlLCBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgd2l0aENydWRIYXN1cmFHcmFwaFFMLCB3aXRoSGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21peGlucydcbmltcG9ydCB7IFZhcmlhbnRIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi4vLi4vbW9kZWxzJ1xuaW1wb3J0IHsgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmV4cG9ydCBjbGFzcyBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEhhc3VyYUdyYXBoUUwod2l0aEhhc3VyYUdyYXBoUUw8VmFyaWFudEhhc3VyYUdyYXBoUUw+KEJhc2UpKVxuICBpbXBsZW1lbnRzIFZhcmlhbnRSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50OiBzdHJpbmcsIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICB0YWJsZU5hbWU6ICdwcm9kdWN0JyxcbiAgICAgIG1vZGVsOiBWYXJpYW50SGFzdXJhR3JhcGhRTCxcbiAgICAgIGVuZHBvaW50LFxuICAgICAgYXV0aE9wdGlvbnMsXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAgeyBpZDogeyBjb2x1bW5OYW1lOiAnaWQnLCB0bzogKHZhbHVlKSA9PiArdmFsdWUsIGZyb206ICh2YWx1ZSkgPT4gdmFsdWUudG9TdHJpbmcoKSB9IH0sXG4gICAgICAgIHsgZmlyZXN0b3JlSWQ6IHsgY29sdW1uTmFtZTogJ2ZpcmVzdG9yZV9pZCcgfSB9LFxuICAgICAgICB7IHByb2R1Y3RJZDogeyBjb2x1bW5OYW1lOiAnbWFpbl9wcm9kdWN0X2lkJywgdG86ICh2YWx1ZSkgPT4gK3ZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlPy50b1N0cmluZygpIH0gfSxcbiAgICAgICAgeyBFQU46IHsgY29sdW1uTmFtZTogJ2VhbicgfSB9LFxuICAgICAgICB7IGNvc3RQcmljZTogeyBjb2x1bW5OYW1lOiAnY29zdF9wcmljZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJpY2U6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdwcmljZScsXG4gICAgICAgICAgICBmcm9tOiAocHJpY2UsIGRhdGEpOiBTaG9wc1ByaWNlID0+XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoU2hvcHMpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAocHJpY2VzOiBTaG9wc1ByaWNlLCBzaG9wKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgLi4ucHJpY2VzLFxuICAgICAgICAgICAgICAgICAgW3Nob3BdOiB7XG4gICAgICAgICAgICAgICAgICAgIHByaWNlLFxuICAgICAgICAgICAgICAgICAgICBmdWxsUHJpY2U6IGRhdGEuZnVsbF9wcmljZSxcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZTogZGF0YS5zdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJQcmljZTogZGF0YS5zdWJzY3JpYmVyX3ByaWNlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGJpbmRGaW5kRmlsdGVyOiAoc2VudGVuY2UpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IE9iamVjdC52YWx1ZXMoc2VudGVuY2UpLnNoaWZ0KClcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJzPy5wcmljZSAmJiB7IHByaWNlOiBmaWx0ZXJzLnByaWNlIH0pLFxuICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJzLmZ1bGxQcmljZSAmJiB7IGZ1bGxfcHJpY2U6IGZpbHRlcnMuZnVsbFByaWNlIH0pLFxuICAgICAgICAgICAgICAgIC4uLihmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgJiYge1xuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlOiBmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLi4uKGZpbHRlcnMuc3Vic2NyaWJlclByaWNlICYmIHsgc3Vic2NyaWJlcl9wcmljZTogZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UgfSksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSwgaW5zdGFuY2U/KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaWNlRGF0YSA9IE9iamVjdC52YWx1ZXModmFsdWUpLnNoaWZ0KClcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLihwcmljZURhdGE/LnByaWNlICYmIHsgcHJpY2U6IHByaWNlRGF0YS5wcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLmZ1bGxQcmljZSAmJiB7IGZ1bGxfcHJpY2U6IHByaWNlRGF0YS5mdWxsUHJpY2UgfSksXG4gICAgICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlICYmIHtcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZTogcHJpY2VEYXRhLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLi4uKHByaWNlRGF0YS5zdWJzY3JpYmVyUHJpY2UgJiYgeyBzdWJzY3JpYmVyX3ByaWNlOiBwcmljZURhdGEuc3Vic2NyaWJlclByaWNlIH0pLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgZnVsbFByaWNlOiB7IGNvbHVtbk5hbWU6ICdmdWxsX3ByaWNlJyB9IH0sXG4gICAgICAgIHsgc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlJyB9IH0sXG4gICAgICAgIHsgc3Vic2NyaWJlclByaWNlOiB7IGNvbHVtbk5hbWU6ICdzdWJzY3JpYmVyX3ByaWNlJyB9IH0sXG4gICAgICAgICdza3UnLFxuICAgICAgICB7XG4gICAgICAgICAgc3RvY2s6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdzdG9jaycsXG4gICAgICAgICAgICBmcm9tOiAocXVhbnRpdHk6IG51bWJlcikgPT4gKHsgcXVhbnRpdHkgfSksXG4gICAgICAgICAgICB0bzogKHZhbHVlKSA9PiAoaXNOaWwodmFsdWU/LnF1YW50aXR5KSA/IHZhbHVlIDogdmFsdWU/LnF1YW50aXR5KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAnd2VpZ2h0JyxcbiAgICAgICAgeyBuYW1lOiB7IHRvOiAoKSA9PiAnJywgZnJvbTogKCkgPT4gdW5kZWZpbmVkIH0gfSxcbiAgICAgICAgeyBoYXNWYXJpYW50czogeyBjb2x1bW5OYW1lOiAnaGFzX3ZhcmlhbnRzJywgdG86ICgpID0+IGZhbHNlLCBmcm9tOiAoKSA9PiB1bmRlZmluZWQgfSB9LFxuICAgICAgICB7IGNyZWF0ZWRBdDogeyBjb2x1bW5OYW1lOiAnY3JlYXRlZF9hdCcgfSB9LFxuICAgICAgICB7IHVwZGF0ZWRBdDogeyBjb2x1bW5OYW1lOiAndXBkYXRlZF9hdCcgfSB9LFxuICAgICAgXSxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0KGlkZW50aWZpZXJzOiBHZXRSZXBvc2l0b3J5UGFyYW1zPFZhcmlhbnRIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8VmFyaWFudEhhc3VyYUdyYXBoUUw+IHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKCtpZGVudGlmaWVycy5pZClcbiAgICAgID8gKGF3YWl0IHRoaXMuZmluZCh7IGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IGlkZW50aWZpZXJzLmlkIH0gfSkpLmRhdGE/LlswXVxuICAgICAgOiBzdXBlci5nZXQoaWRlbnRpZmllcnMpXG4gIH1cblxuICBhc3luYyB1cGRhdGUocGFyYW1zOiBVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPFZhcmlhbnRIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8VmFyaWFudEhhc3VyYUdyYXBoUUw+IHtcbiAgICBjb25zdCB7IHByb2R1Y3RJZCwgaWQ6IGNoZWNrSWQsIC4uLmRhdGEgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGRhdGFXaXRoUHJvZHVjdElkID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgaWQ6IGNoZWNrSWQsIHByb2R1Y3RJZCB9KVxuICAgIGNvbnN0IGlkID0gYXdhaXQgdGhpcy5nZXRJZChkYXRhV2l0aFByb2R1Y3RJZC5pZClcbiAgICBjb25zdCBwcm9kdWN0ID0gYXdhaXQgc3VwZXIudXBkYXRlKHsgaWQsIC4uLmRhdGEgfSlcblxuICAgIHByb2R1Y3QucHJvZHVjdElkID0gZGF0YVdpdGhQcm9kdWN0SWQucHJvZHVjdElkXG5cbiAgICByZXR1cm4gcHJvZHVjdFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJZChpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIU51bWJlci5pc05hTigraWQpKSByZXR1cm4gaWRcblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogaWQgfSB9KVxuXG4gICAgaWYgKGRhdGE/LlswXT8uaWQpIHJldHVybiBkYXRhPy5bMF0/LmlkXG5cbiAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUHJvZHVjdCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApXG4gIH1cbn1cbiJdfQ==
@@ -2105,7 +2105,7 @@ const withUpdateHasuraGraphQL = (MixinBase) => {
2105
2105
  const model = this.model;
2106
2106
  if (model.isModel(params))
2107
2107
  return params.toPlain();
2108
- return Object.keys(params).reduce((data, currentKey) => (Object.assign(Object.assign({}, data), { [currentKey]: getValueByAction(params[currentKey]) })), {});
2108
+ return Object.keys(params).reduce((data, currentKey) => (Object.assign(Object.assign({}, data), (params[currentKey] && { [currentKey]: getValueByAction(params[currentKey]) }))), {});
2109
2109
  }
2110
2110
  getUpdateModelKeys(data) {
2111
2111
  const instance = this.model.toInstance(data);
@@ -2443,7 +2443,7 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2443
2443
  stock: {
2444
2444
  columnName: 'stock',
2445
2445
  from: (quantity) => ({ quantity }),
2446
- to: (value) => (value === null || value === void 0 ? void 0 : value.quantity) || value,
2446
+ to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
2447
2447
  },
2448
2448
  },
2449
2449
  'slug',
@@ -2475,6 +2475,17 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2475
2475
  ],
2476
2476
  });
2477
2477
  }
2478
+ get(identifiers) {
2479
+ const _super = Object.create(null, {
2480
+ get: { get: () => super.get }
2481
+ });
2482
+ var _a;
2483
+ return __awaiter(this, void 0, void 0, function* () {
2484
+ return Number.isNaN(+identifiers.id)
2485
+ ? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
2486
+ : _super.get.call(this, identifiers);
2487
+ });
2488
+ }
2478
2489
  getBySlug(slug, shop) {
2479
2490
  var _a;
2480
2491
  return __awaiter(this, void 0, void 0, function* () {
@@ -2492,7 +2503,9 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2492
2503
  update: { get: () => super.update }
2493
2504
  });
2494
2505
  return __awaiter(this, void 0, void 0, function* () {
2495
- const { categories, id } = params, data = __rest(params, ["categories", "id"]);
2506
+ const { categories, id: checkId } = params, data = __rest(params, ["categories", "id"]);
2507
+ const plainData = this.paramsToPlain({ id: checkId });
2508
+ const id = yield this.getId(plainData.id);
2496
2509
  const product = yield _super.update.call(this, Object.assign({ id }, data));
2497
2510
  product.categories = categories && (yield this.updateCategories(+id, { categories }));
2498
2511
  return product;
@@ -2518,6 +2531,17 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2518
2531
  return plainData.categories;
2519
2532
  });
2520
2533
  }
2534
+ getId(id) {
2535
+ var _a, _b;
2536
+ return __awaiter(this, void 0, void 0, function* () {
2537
+ if (!Number.isNaN(+id))
2538
+ return id;
2539
+ const { data } = yield this.find({ filters: { firestoreId: id } });
2540
+ if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
2541
+ return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
2542
+ throw new NotFoundError(`Product with id ${id} not found`);
2543
+ });
2544
+ }
2521
2545
  }
2522
2546
 
2523
2547
  class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
@@ -2530,7 +2554,7 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2530
2554
  fields: [
2531
2555
  { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
2532
2556
  { firestoreId: { columnName: 'firestore_id' } },
2533
- { productId: { columnName: 'main_product_id', to: (value) => +value, from: (value) => value.toString() } },
2557
+ { productId: { columnName: 'main_product_id', to: (value) => +value, from: (value) => value === null || value === void 0 ? void 0 : value.toString() } },
2534
2558
  { EAN: { columnName: 'ean' } },
2535
2559
  { costPrice: { columnName: 'cost_price' } },
2536
2560
  {
@@ -2564,7 +2588,7 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2564
2588
  stock: {
2565
2589
  columnName: 'stock',
2566
2590
  from: (quantity) => ({ quantity }),
2567
- to: (value) => (value === null || value === void 0 ? void 0 : value.quantity) || value,
2591
+ to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
2568
2592
  },
2569
2593
  },
2570
2594
  'weight',
@@ -2575,6 +2599,41 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
2575
2599
  ],
2576
2600
  });
2577
2601
  }
2602
+ get(identifiers) {
2603
+ const _super = Object.create(null, {
2604
+ get: { get: () => super.get }
2605
+ });
2606
+ var _a;
2607
+ return __awaiter(this, void 0, void 0, function* () {
2608
+ return Number.isNaN(+identifiers.id)
2609
+ ? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
2610
+ : _super.get.call(this, identifiers);
2611
+ });
2612
+ }
2613
+ update(params) {
2614
+ const _super = Object.create(null, {
2615
+ update: { get: () => super.update }
2616
+ });
2617
+ return __awaiter(this, void 0, void 0, function* () {
2618
+ const { productId, id: checkId } = params, data = __rest(params, ["productId", "id"]);
2619
+ const dataWithProductId = this.paramsToPlain({ id: checkId, productId });
2620
+ const id = yield this.getId(dataWithProductId.id);
2621
+ const product = yield _super.update.call(this, Object.assign({ id }, data));
2622
+ product.productId = dataWithProductId.productId;
2623
+ return product;
2624
+ });
2625
+ }
2626
+ getId(id) {
2627
+ var _a, _b;
2628
+ return __awaiter(this, void 0, void 0, function* () {
2629
+ if (!Number.isNaN(+id))
2630
+ return id;
2631
+ const { data } = yield this.find({ filters: { firestoreId: id } });
2632
+ if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
2633
+ return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
2634
+ throw new NotFoundError(`Product with id ${id} not found`);
2635
+ });
2636
+ }
2578
2637
  }
2579
2638
 
2580
2639
  /**