@rosen-bridge/config 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils.js CHANGED
@@ -58,4 +58,4 @@ export const getValueFromConfigSources = (sources, path) => {
58
58
  }
59
59
  return null;
60
60
  };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsR0FBUSxFQUNSLElBQWMsRUFDb0IsRUFBRTtJQUNwQyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDaEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBcUIsRUFBVSxFQUFFO0lBQzdELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsT0FBd0IsRUFDeEIsSUFBYyxFQUNkLEVBQUU7SUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssOEJBQThCLEVBQUUsQ0FBQztZQUM3RCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDckMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29uZmlnU291cmNlIH0gZnJvbSAnY29uZmlnJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vKipcbiAqIHJldHVybnMgdGhlIHZhbHVlIGF0IGEgcGF0aCBpbiB0aGUgcGFzc2VkIG9iamVjdCwgYW5kIGlmIGl0IGhhcyBhIHZhbHVlXG4gKiBkZWZpbmVkIGF0IHRoYXQgcGF0aFxuICpcbiAqIEBwYXJhbSB7Kn0gb2JqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIHBhdGggdG8gdGhlIHZhbHVlIHRvIGJlIHJldHVybmVkXG4gKiBAcmV0dXJuIHt7IGRlZmluZWQ6IGJvb2xlYW47IHZhbHVlOiBhbnkgfX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKFxuICBvYmo6IGFueSxcbiAgcGF0aDogc3RyaW5nW11cbik6IHsgZGVmaW5lZDogYm9vbGVhbjsgdmFsdWU6IGFueSB9ID0+IHtcbiAgbGV0IHZhbHVlID0gb2JqO1xuICBmb3IgKGNvbnN0IGtleSBvZiBwYXRoKSB7XG4gICAgaWYgKHZhbHVlICE9IHVuZGVmaW5lZCAmJiBPYmplY3QuaGFzT3duKHZhbHVlLCBrZXkpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IGRlZmluZWQ6IGZhbHNlLCB2YWx1ZTogdW5kZWZpbmVkIH07XG4gICAgfVxuICB9XG4gIHJldHVybiB7IGRlZmluZWQ6IHRydWUsIHZhbHVlIH07XG59O1xuXG4vKipcbiAqIHJldHVybnMgc291cmNlIG5hbWUvbGV2ZWwgZm9yIGEgbm9kZSBjb25maWcgc291cmNlXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtJQ29uZmlnU291cmNlfSBzb3VyY2VcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFNvdXJjZU5hbWUgPSAoc291cmNlOiBJQ29uZmlnU291cmNlKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHNvdXJjZS5uYW1lLnN0YXJ0c1dpdGgoJyQnKVxuICAgID8gc291cmNlLm5hbWVcbiAgICA6IHBhdGgucGFyc2Uoc291cmNlLm5hbWUpLm5hbWU7XG59O1xuXG4vKipcbiAqIHJldHVybnMgYSBjb25maWcga2V5IGZyb20gdGhlIGhpZ2hlc3QgbGV2ZWwgc291cmNlIGluIGFuIGFycmF5IG9mIHNvdXJjZXNcbiAqXG4gKiBAcGFyYW0ge0lDb25maWdTb3VyY2VbXX0gc291cmNlc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aFxuICogQHJldHVybiB7Kn1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlRnJvbUNvbmZpZ1NvdXJjZXMgPSAoXG4gIHNvdXJjZXM6IElDb25maWdTb3VyY2VbXSxcbiAgcGF0aDogc3RyaW5nW11cbikgPT4ge1xuICBmb3IgKGxldCBpID0gc291cmNlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXNbaV07XG4gICAgaWYgKGdldFNvdXJjZU5hbWUoc291cmNlKSA9PT0gJ2N1c3RvbS1lbnZpcm9ubWVudC12YXJpYWJsZXMnKSB7XG4gICAgICBjb25zdCB7IHZhbHVlOiBlbnZWYXIsIGRlZmluZWQgfSA9IGdldFZhbHVlKHNvdXJjZS5wYXJzZWQsIHBhdGgpO1xuICAgICAgaWYgKGRlZmluZWQpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52W2VudlZhcl0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW52W2VudlZhcl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgZGVmaW5lZCB9ID0gZ2V0VmFsdWUoc291cmNlLnBhcnNlZCwgcGF0aCk7XG4gICAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufTtcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsR0FBUSxFQUNSLElBQWMsRUFDb0IsRUFBRTtJQUNwQyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDaEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBcUIsRUFBVSxFQUFFO0lBQzdELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsT0FBd0IsRUFDeEIsSUFBYyxFQUNkLEVBQUU7SUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssOEJBQThCLEVBQUUsQ0FBQztZQUM3RCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDckMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29uZmlnU291cmNlIH0gZnJvbSAnY29uZmlnJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vKipcbiAqIHJldHVybnMgdGhlIHZhbHVlIGF0IGEgcGF0aCBpbiB0aGUgcGFzc2VkIG9iamVjdCwgYW5kIGlmIGl0IGhhcyBhIHZhbHVlXG4gKiBkZWZpbmVkIGF0IHRoYXQgcGF0aFxuICpcbiAqIEBwYXJhbSB7Kn0gb2JqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIHBhdGggdG8gdGhlIHZhbHVlIHRvIGJlIHJldHVybmVkXG4gKiBAcmV0dXJuIHt7IGRlZmluZWQ6IGJvb2xlYW47IHZhbHVlOiBhbnkgfX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKFxuICBvYmo6IGFueSxcbiAgcGF0aDogc3RyaW5nW10sXG4pOiB7IGRlZmluZWQ6IGJvb2xlYW47IHZhbHVlOiBhbnkgfSA9PiB7XG4gIGxldCB2YWx1ZSA9IG9iajtcbiAgZm9yIChjb25zdCBrZXkgb2YgcGF0aCkge1xuICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQgJiYgT2JqZWN0Lmhhc093bih2YWx1ZSwga2V5KSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBkZWZpbmVkOiBmYWxzZSwgdmFsdWU6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBkZWZpbmVkOiB0cnVlLCB2YWx1ZSB9O1xufTtcblxuLyoqXG4gKiByZXR1cm5zIHNvdXJjZSBuYW1lL2xldmVsIGZvciBhIG5vZGUgY29uZmlnIHNvdXJjZVxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7SUNvbmZpZ1NvdXJjZX0gc291cmNlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTb3VyY2VOYW1lID0gKHNvdXJjZTogSUNvbmZpZ1NvdXJjZSk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBzb3VyY2UubmFtZS5zdGFydHNXaXRoKCckJylcbiAgICA/IHNvdXJjZS5uYW1lXG4gICAgOiBwYXRoLnBhcnNlKHNvdXJjZS5uYW1lKS5uYW1lO1xufTtcblxuLyoqXG4gKiByZXR1cm5zIGEgY29uZmlnIGtleSBmcm9tIHRoZSBoaWdoZXN0IGxldmVsIHNvdXJjZSBpbiBhbiBhcnJheSBvZiBzb3VyY2VzXG4gKlxuICogQHBhcmFtIHtJQ29uZmlnU291cmNlW119IHNvdXJjZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhcbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWYWx1ZUZyb21Db25maWdTb3VyY2VzID0gKFxuICBzb3VyY2VzOiBJQ29uZmlnU291cmNlW10sXG4gIHBhdGg6IHN0cmluZ1tdLFxuKSA9PiB7XG4gIGZvciAobGV0IGkgPSBzb3VyY2VzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3Qgc291cmNlID0gc291cmNlc1tpXTtcbiAgICBpZiAoZ2V0U291cmNlTmFtZShzb3VyY2UpID09PSAnY3VzdG9tLWVudmlyb25tZW50LXZhcmlhYmxlcycpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWU6IGVudlZhciwgZGVmaW5lZCB9ID0gZ2V0VmFsdWUoc291cmNlLnBhcnNlZCwgcGF0aCk7XG4gICAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnZbZW52VmFyXSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzcy5lbnZbZW52VmFyXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBkZWZpbmVkIH0gPSBnZXRWYWx1ZShzb3VyY2UucGFyc2VkLCBwYXRoKTtcbiAgICAgIGlmIChkZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../lib/value/validators.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAsC/C,CAAC;AAiBF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6MhE,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../lib/value/validators.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA2C/C,CAAC;AAiBF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6MhE,CAAC"}
@@ -10,27 +10,32 @@ export const valueValidators = {
10
10
  }
11
11
  }
12
12
  },
13
- array: (value, field) => {
13
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+ array: (value, _field) => {
14
15
  if (!Array.isArray(value)) {
15
16
  throw new Error(`value must be of array type`);
16
17
  }
17
18
  },
18
- string: (value, field) => {
19
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
+ string: (value, _field) => {
19
21
  if (typeof value !== 'string') {
20
22
  throw new Error(`value must be of string type`);
21
23
  }
22
24
  },
23
- boolean: (value, field) => {
25
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
+ boolean: (value, _field) => {
24
27
  if (typeof value !== 'boolean') {
25
28
  throw new Error(`value must be of boolean type`);
26
29
  }
27
30
  },
28
- number: (value, field) => {
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
+ number: (value, _field) => {
29
33
  if (typeof value !== 'number') {
30
34
  throw new Error(`value must be of number type`);
31
35
  }
32
36
  },
33
- bigint: (value, field) => {
37
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
+ bigint: (value, _field) => {
34
39
  if (typeof value !== 'bigint') {
35
40
  throw new Error(`value must be of bigint type`);
36
41
  }
@@ -158,4 +163,4 @@ export const valueValidations = {
158
163
  },
159
164
  },
160
165
  };
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92YWx1ZS92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBd0I7SUFDbEQsTUFBTSxFQUFFLENBQUMsS0FBMEIsRUFBRSxLQUF3QixFQUFFLEVBQUU7UUFDL0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDeEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsa0NBQWtDLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEtBQXVCLEVBQUUsRUFBRTtRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLEtBQWEsRUFBRSxLQUF3QixFQUFFLEVBQUU7UUFDbEQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENB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QUVELElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYix5Q0FBeUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUMxRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi4vc2NoZW1hL3R5cGVzL2ZpZWxkcyc7XG5pbXBvcnQge1xuICBWQ2hvaWNlcyxcbiAgVkdyZWF0ZXIsXG4gIFZHcmVhdGVyRXF1YWwsXG4gIFZMZXNzLFxuICBWTGVzc0VxdWFsLFxuICBWUmVnZXgsXG4gIFZSZXF1aXJlZCxcbn0gZnJvbSAnLi4vc2NoZW1hL3R5cGVzL3ZhbGlkYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IHZhbHVlVmFsaWRhdG9yczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgb2JqZWN0OiAodmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4sIGZpZWxkOiB0eXBlcy5PYmplY3RGaWVsZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2Ygb2JqZWN0IHR5cGVgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWFLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhmaWVsZC5jaGlsZHJlbikpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgaWYgKCFzY2hlbWFLZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCIke2tleX1cIiBrZXkgaXMgbm90IGZvdW5kIGluIHRoZSBzY2hlbWFgKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIGFycmF5OiAodmFsdWU6IEFycmF5PGFueT4sIGZpZWxkOiB0eXBlcy5BcnJheUZpZWxkKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIGFycmF5IHR5cGVgKTtcbiAgICB9XG4gIH0sXG4gIHN0cmluZzogKHZhbHVlOiBzdHJpbmcsIGZpZWxkOiB0eXBlcy5TdHJpbmdGaWVsZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2Ygc3RyaW5nIHR5cGVgKTtcbiAgICB9XG4gIH0sXG4gIGJvb2xlYW46ICh2YWx1ZTogYm9vbGVhbiwgZmllbGQ6IHR5cGVzLkJvb2xlYW5GaWVsZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIGJvb2xlYW4gdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgbnVtYmVyOiAodmFsdWU6IG51bWJlciwgZmllbGQ6IHR5cGVzLk51bWJlckZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBudW1iZXIgdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgYmlnaW50OiAodmFsdWU6IGJpZ2ludCwgZmllbGQ6IHR5cGVzLkJpZ0ludEZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2JpZ2ludCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBiaWdpbnQgdHlwZWApO1xuICAgIH1cbiAgfSxcbn07XG5cbmNvbnN0IHJlcXVpcmVkID0gKFxuICB2YWx1ZTogYW55LFxuICB2YWxpZGF0aW9uOiBWUmVxdWlyZWQsXG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3JcbikgPT4ge1xuICBpZiAodmFsaWRhdGlvbi53aGVuICYmICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodmFsaWRhdGlvbi5yZXF1aXJlZCAmJiB2YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIGlzIHJlcXVpcmVkIGJ1dCBub3QgZm91bmQgaW4gY29uZmlnJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWx1ZVZhbGlkYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgYm9vbGVhbjogeyByZXF1aXJlZCB9LFxuICBzdHJpbmc6IHtcbiAgICByZXF1aXJlZCxcbiAgICByZWdleDogKFxuICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb246IFZSZWdleCxcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cCh2YWxpZGF0aW9uLnJlZ2V4KTtcbiAgICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gocmUpO1xuICAgICAgaWYgKG1hdGNoID09IG51bGwgfHwgbWF0Y2hbMF0gIT09IHZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgc2hvdWxkIG1hdGNoIHRoZSByZWdleD1cIiR7dmFsaWRhdGlvbi5yZWdleH1cImApO1xuICAgICAgfVxuICAgIH0sXG4gICAgY2hvaWNlczogKFxuICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb246IFZDaG9pY2VzLFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3JcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF2YWxpZGF0aW9uLmNob2ljZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIG9uZSBvZiB0aGUgY2hvaWNlcz1bJHt2YWxpZGF0aW9uLmNob2ljZXMuam9pbihcbiAgICAgICAgICAgICcsICdcbiAgICAgICAgICApfV1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgcmVxdWlyZWQsXG4gICAgZ3Q6IChcbiAgICAgIHZhbHVlOiBudW1iZXIsXG4gICAgICB2YWxpZGF0aW9uOiBWR3JlYXRlcjxudW1iZXI+LFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3JcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlIDw9IHZhbGlkYXRpb24uZ3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuICR7dmFsaWRhdGlvbi5ndH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGd0ZTogKFxuICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgIHZhbGlkYXRpb246IFZHcmVhdGVyRXF1YWw8bnVtYmVyPixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA8IHZhbGlkYXRpb24uZ3RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3ZhbGlkYXRpb24uZ3RlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0OiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkxlc3M8bnVtYmVyPixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA+PSB2YWxpZGF0aW9uLmx0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiAke3ZhbGlkYXRpb24ubHR9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdGU6IChcbiAgICAgIHZhbHVlOiBudW1iZXIsXG4gICAgICB2YWxpZGF0aW9uOiBWTGVzc0VxdWFsPG51bWJlcj4sXG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvclxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgYmlnaW50OiB7XG4gICAgcmVxdWlyZWQsXG4gICAgZ3Q6IChcbiAgICAgIHZhbHVlOiBiaWdpbnQsXG4gICAgICB2YWxpZGF0aW9uOiBWR3JlYXRlcjxiaWdpbnQ+LFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3JcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlIDw9IHZhbGlkYXRpb24uZ3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuICR7dmFsaWRhdGlvbi5ndH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGd0ZTogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZHcmVhdGVyRXF1YWw8YmlnaW50PixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA8IHZhbGlkYXRpb24uZ3RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3ZhbGlkYXRpb24uZ3RlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0OiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkxlc3M8YmlnaW50PixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA+PSB2YWxpZGF0aW9uLmx0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiAke3ZhbGlkYXRpb24ubHR9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdGU6IChcbiAgICAgIHZhbHVlOiBiaWdpbnQsXG4gICAgICB2YWxpZGF0aW9uOiBWTGVzc0VxdWFsPGJpZ2ludD4sXG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvclxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92YWx1ZS92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBd0I7SUFDbEQsTUFBTSxFQUFFLENBQUMsS0FBMEIsRUFBRSxLQUF3QixFQUFFLEVBQUU7UUFDL0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDeEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsa0NBQWtDLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsS0FBSyxFQUFFLENBQUMsS0FBaUIsRUFBRSxNQUF3QixFQUFFLEVBQUU7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQXlCLEVBQUUsRUFBRTtRQUNuRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENB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VSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUN2RCxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLHlDQUF5QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQzFELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1ZhbGlkYXRvciB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi9zY2hlbWEvdHlwZXMvZmllbGRzJztcbmltcG9ydCB7XG4gIFZDaG9pY2VzLFxuICBWR3JlYXRlcixcbiAgVkdyZWF0ZXJFcXVhbCxcbiAgVkxlc3MsXG4gIFZMZXNzRXF1YWwsXG4gIFZSZWdleCxcbiAgVlJlcXVpcmVkLFxufSBmcm9tICcuLi9zY2hlbWEvdHlwZXMvdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgdmFsdWVWYWxpZGF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICBvYmplY3Q6ICh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiwgZmllbGQ6IHR5cGVzLk9iamVjdEZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBvYmplY3QgdHlwZWApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYUtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKGZpZWxkLmNoaWxkcmVuKSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG4gICAgICBpZiAoIXNjaGVtYUtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIiR7a2V5fVwiIGtleSBpcyBub3QgZm91bmQgaW4gdGhlIHNjaGVtYWApO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBhcnJheTogKHZhbHVlOiBBcnJheTxhbnk+LCBfZmllbGQ6IHR5cGVzLkFycmF5RmllbGQpID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2YgYXJyYXkgdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBzdHJpbmc6ICh2YWx1ZTogc3RyaW5nLCBfZmllbGQ6IHR5cGVzLlN0cmluZ0ZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBzdHJpbmcgdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBib29sZWFuOiAodmFsdWU6IGJvb2xlYW4sIF9maWVsZDogdHlwZXMuQm9vbGVhbkZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2YgYm9vbGVhbiB0eXBlYCk7XG4gICAgfVxuICB9LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG51bWJlcjogKHZhbHVlOiBudW1iZXIsIF9maWVsZDogdHlwZXMuTnVtYmVyRmllbGQpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIG51bWJlciB0eXBlYCk7XG4gICAgfVxuICB9LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGJpZ2ludDogKHZhbHVlOiBiaWdpbnQsIF9maWVsZDogdHlwZXMuQmlnSW50RmllbGQpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYmlnaW50Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIGJpZ2ludCB0eXBlYCk7XG4gICAgfVxuICB9LFxufTtcblxuY29uc3QgcmVxdWlyZWQgPSAoXG4gIHZhbHVlOiBhbnksXG4gIHZhbGlkYXRpb246IFZSZXF1aXJlZCxcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbikgPT4ge1xuICBpZiAodmFsaWRhdGlvbi53aGVuICYmICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodmFsaWRhdGlvbi5yZXF1aXJlZCAmJiB2YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIGlzIHJlcXVpcmVkIGJ1dCBub3QgZm91bmQgaW4gY29uZmlnJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWx1ZVZhbGlkYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgYm9vbGVhbjogeyByZXF1aXJlZCB9LFxuICBzdHJpbmc6IHtcbiAgICByZXF1aXJlZCxcbiAgICByZWdleDogKFxuICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb246IFZSZWdleCxcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAodmFsaWRhdGlvbi5yZWdleCk7XG4gICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlKTtcbiAgICAgIGlmIChtYXRjaCA9PSBudWxsIHx8IG1hdGNoWzBdICE9PSB2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBtYXRjaCB0aGUgcmVnZXg9XCIke3ZhbGlkYXRpb24ucmVnZXh9XCJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNob2ljZXM6IChcbiAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICB2YWxpZGF0aW9uOiBWQ2hvaWNlcyxcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbGlkYXRpb24uY2hvaWNlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGB2YWx1ZSBzaG91bGQgYmUgb25lIG9mIHRoZSBjaG9pY2VzPVske3ZhbGlkYXRpb24uY2hvaWNlcy5qb2luKFxuICAgICAgICAgICAgJywgJyxcbiAgICAgICAgICApfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIHJlcXVpcmVkLFxuICAgIGd0OiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXI8bnVtYmVyPixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPD0gdmFsaWRhdGlvbi5ndCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gJHt2YWxpZGF0aW9uLmd0fWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3RlOiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXJFcXVhbDxudW1iZXI+LFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3IsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA8IHZhbGlkYXRpb24uZ3RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3ZhbGlkYXRpb24uZ3RlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdDogKFxuICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzPG51bWJlcj4sXG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID49IHZhbGlkYXRpb24ubHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuICR7dmFsaWRhdGlvbi5sdH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0ZTogKFxuICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzRXF1YWw8bnVtYmVyPixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJpZ2ludDoge1xuICAgIHJlcXVpcmVkLFxuICAgIGd0OiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXI8YmlnaW50PixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPD0gdmFsaWRhdGlvbi5ndCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gJHt2YWxpZGF0aW9uLmd0fWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3RlOiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXJFcXVhbDxiaWdpbnQ+LFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3IsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA8IHZhbGlkYXRpb24uZ3RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3ZhbGlkYXRpb24uZ3RlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdDogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzPGJpZ2ludD4sXG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID49IHZhbGlkYXRpb24ubHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuICR7dmFsaWRhdGlvbi5sdH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0ZTogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzRXF1YWw8YmlnaW50PixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuIl19
package/package.json CHANGED
@@ -1,38 +1,45 @@
1
1
  {
2
2
  "name": "@rosen-bridge/config",
3
- "version": "0.4.0",
3
+ "version": "1.0.0",
4
4
  "description": "a package to manage configs of rosen bridge projects",
5
- "repository": "git+https://github.com/rosen-bridge/utils.git",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/rosen-bridge/utils.git"
8
+ },
6
9
  "license": "MIT",
7
10
  "author": "Rosen Team",
8
11
  "type": "module",
9
12
  "main": "dist/index.js",
10
13
  "bin": "dist/cli.js",
11
14
  "types": "dist/index.d.ts",
15
+ "files": [
16
+ "dist",
17
+ "CHANGELOG.md"
18
+ ],
12
19
  "scripts": {
13
20
  "build": "tsc --build tsconfig.build.json",
14
21
  "coverage": "npm run test -- --run --coverage",
15
22
  "lint": "eslint --fix . && npm run prettify",
16
- "prettify": "prettier --write . --ignore-path ./.gitignore",
23
+ "lint:check": "eslint . && npm run prettify:check",
24
+ "prettify": "prettier --write . --ignore-path ../../.gitignore",
25
+ "prettify:check": "prettier --check . --ignore-path ../../.gitignore",
17
26
  "release": "npm run build && npm publish --access public",
18
- "test": "NODE_OPTIONS=--experimental-specifier-resolution=node vitest",
27
+ "test": "NODE_OPTIONS='--import tsx' vitest",
19
28
  "type-check": "tsc --noEmit"
20
29
  },
21
30
  "devDependencies": {
22
31
  "@types/config": "^3.3.3",
23
32
  "@types/js-yaml": "^4.0.9",
24
- "@types/node": "^20.11.0",
33
+ "@types/json-bigint": "^1.0.1",
34
+ "@types/lodash-es": "^4.17.12",
35
+ "@types/node": "^22.18.0",
25
36
  "@types/uuid": "^9.0.8",
26
- "@vitest/coverage-istanbul": "^2.0.5",
37
+ "@vitest/coverage-istanbul": "^3.1.4",
27
38
  "lodash-es": "^4.17.21",
39
+ "tsx": "^4.20.5",
28
40
  "typescript": "^5.8.3",
29
41
  "uuid": "^9.0.1",
30
- "vitest": "^2.0.5",
31
- "@types/json-bigint": "^1.0.1",
32
- "@types/lodash-es": "^4.17.12"
33
- },
34
- "engines": {
35
- "node": ">=20.11.0"
42
+ "vitest": "^3.1.4"
36
43
  },
37
44
  "dependencies": {
38
45
  "chalk": "^5.3.0",
@@ -41,5 +48,8 @@
41
48
  "json-bigint": "^1.0.0",
42
49
  "ora": "^8.0.1",
43
50
  "yargs": "^17.7.2"
51
+ },
52
+ "engines": {
53
+ "node": ">=22.18.0"
44
54
  }
45
55
  }
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- dist
package/lib/cli.ts DELETED
@@ -1,113 +0,0 @@
1
- #!/usr/bin/env -S node --experimental-specifier-resolution=node
2
-
3
- import yargs from 'yargs';
4
- import { hideBin } from 'yargs/helpers';
5
- import chalk from 'chalk';
6
- import ora from 'ora';
7
- import { ConfigValidator } from './index';
8
- import * as fs from 'fs';
9
- import JsonBigIntFactory from 'json-bigint';
10
- import * as yaml from 'js-yaml';
11
-
12
- const JsonBigInt = JsonBigIntFactory({
13
- alwaysParseAsBig: false,
14
- useNativeBigInt: true,
15
- });
16
-
17
- yargs(hideBin(process.argv))
18
- .command(
19
- 'generate-default',
20
- 'generates an object using the default values of the passed schema',
21
- (yargs) =>
22
- yargs
23
- .option('schema', {
24
- alias: 's',
25
- demandOption: true,
26
- description: 'input schema file path which should be in json format',
27
- type: 'string',
28
- })
29
- .option('output', {
30
- alias: 'o',
31
- demandOption: true,
32
- description: 'generated default values output path',
33
- type: 'string',
34
- })
35
- .option('format', {
36
- alias: 'f',
37
- demandOption: true,
38
- description: 'generated default values output path',
39
- choices: ['json', 'yaml'],
40
- default: 'yaml',
41
- type: 'string',
42
- }),
43
- async (argv) => {
44
- const spinner = ora();
45
- spinner.start(`Generating config default values`);
46
-
47
- const rawSchemaData = fs.readFileSync(argv.schema, 'utf-8');
48
- const schema = JsonBigInt.parse(rawSchemaData);
49
-
50
- const confValidator = new ConfigValidator(schema);
51
- const defaultConf = confValidator.generateDefault();
52
-
53
- let output = '';
54
- switch (argv.format) {
55
- case 'json': {
56
- output = JsonBigInt.stringify(defaultConf);
57
- break;
58
- }
59
- case 'yaml': {
60
- output = yaml.dump(defaultConf);
61
- break;
62
- }
63
- }
64
-
65
- fs.writeFileSync(argv.output, output);
66
-
67
- spinner.succeed(
68
- chalk.green(`default config values were output at "${argv.output}"`)
69
- );
70
- }
71
- )
72
- .command(
73
- 'generate-ts-types',
74
- 'generates compatible TypeScript interface types for the passed schema',
75
- (yargs) =>
76
- yargs
77
- .option('schema', {
78
- alias: 's',
79
- demandOption: true,
80
- description: 'input schema file path which should be in json format',
81
- type: 'string',
82
- })
83
- .option('output', {
84
- alias: 'o',
85
- demandOption: true,
86
- description: 'generated TypeScript interfaces',
87
- type: 'string',
88
- })
89
- .option('root-type', {
90
- alias: 'r',
91
- demandOption: true,
92
- description: 'Name of top root interface',
93
- type: 'string',
94
- }),
95
- async (argv) => {
96
- const spinner = ora();
97
- spinner.start(`Generating TypeScript types`);
98
-
99
- const rawSchemaData = fs.readFileSync(argv.schema, 'utf-8');
100
- const schema = JsonBigInt.parse(rawSchemaData);
101
-
102
- const confValidator = new ConfigValidator(schema);
103
- const tsTypes = confValidator.generateTSTypes(argv.rootType);
104
-
105
- fs.writeFileSync(argv.output, tsTypes);
106
-
107
- spinner.succeed(
108
- chalk.green(`TypeScript types were output at "${argv.output}"`)
109
- );
110
- }
111
- )
112
- .demandCommand(1)
113
- .parse();