@decaf-ts/as-zod 0.0.7 → 0.0.9

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/as-zod.cjs CHANGED
@@ -124,7 +124,10 @@
124
124
  }
125
125
  return zod.z.object(result);
126
126
  };
127
- if (!zod.z["fromModel"]) {
127
+ // @ts-expect-error overriding type
128
+ const Zod = zod.z;
129
+ const descriptor = Object.getOwnPropertyDescriptor(Zod, "fromModel");
130
+ if (!descriptor || descriptor.configurable) {
128
131
  Object.defineProperty(zod.z, "fromModel", {
129
132
  value: (model) => {
130
133
  const m = new model();
@@ -132,7 +135,6 @@
132
135
  },
133
136
  });
134
137
  }
135
- const Zod = zod.z;
136
138
 
137
139
  /**
138
140
  * @description Current version of the reflection package
@@ -140,7 +142,7 @@
140
142
  * @const VERSION
141
143
  * @memberOf module:as-zod
142
144
  */
143
- const VERSION = "0.0.7";
145
+ const VERSION = "0.0.9";
144
146
 
145
147
  exports.VERSION = VERSION;
146
148
  exports.Zod = Zod;
@@ -148,4 +150,4 @@
148
150
  exports.zodifyValidation = zodifyValidation;
149
151
 
150
152
  }));
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtem9kLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL292ZXJyaWRlcy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNb2RlbCxcbiAgTW9kZWxLZXlzLFxuICBUeXBlTWV0YWRhdGEsXG4gIFByaW1pdGl2ZXMsXG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMsXG4gIFZhbGlkYXRvck9wdGlvbnMsXG4gIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMsXG4gIE1pblZhbGlkYXRvck9wdGlvbnMsXG4gIE1heFZhbGlkYXRvck9wdGlvbnMsXG4gIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMsXG4gIFN0ZXBWYWxpZGF0b3JPcHRpb25zLFxuICBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucyxcbiAgTGlzdE1ldGFkYXRhLFxuICBDb25zdHJ1Y3Rvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgeiwgWm9kQW55LCBab2RPYmplY3QsIFpvZFJhd1NoYXBlIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgUmVmbGVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmNvbnN0IFJlc2VydmVkS2V5cyA9IFtcbiAgVmFsaWRhdGlvbktleXMuUkVRVUlSRUQsXG4gIFZhbGlkYXRpb25LZXlzLlRZUEUsXG4gIE1vZGVsS2V5cy5UWVBFLFxuXSBhcyBjb25zdDtcblxuZnVuY3Rpb24gaXNSZXNlcnZlZEtleShlbDogc3RyaW5nKSB7XG4gIHJldHVybiBSZXNlcnZlZEtleXMuaW5jbHVkZXMoZWwgYXMgYW55KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHpvZGlmeSh0eXBlOiBzdHJpbmcgfCBzdHJpbmdbXSwgeno6IGFueSA9IFpvZEFueSkge1xuICB0eXBlID0gdHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIgPyBbdHlwZV0gOiB0eXBlO1xuXG4gIGZ1bmN0aW9uIGlubmVyWm9kaWZ5KHR5cGU6IHN0cmluZykge1xuICAgIHN3aXRjaCAodHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuU1RSSU5HOlxuICAgICAgICByZXR1cm4gei5zdHJpbmcoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5OVU1CRVI6XG4gICAgICAgIHJldHVybiB6Lm51bWJlcigpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJJR0lOVDpcbiAgICAgICAgcmV0dXJuIHouYmlnaW50KCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQk9PTEVBTjpcbiAgICAgICAgcmV0dXJuIHouYm9vbGVhbigpO1xuICAgICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5EQVRFOlxuICAgICAgICByZXR1cm4gei5kYXRlKCk7XG4gICAgICBjYXNlIEFycmF5Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouYXJyYXkoenopO1xuICAgICAgY2FzZSBTZXQubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICByZXR1cm4gei5zZXQoenopO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBtID0gTW9kZWwuZ2V0KHR5cGUpO1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuem9kaWZpYWJsZSB0eXBlOiAke3R5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB6eiA9IG5ldyBtKCkudG9ab2QoKTtcbiAgICAgICAgICByZXR1cm4geno7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byB6b2RpZnkgbW9kZWwgJHt0eXBlfTogJHtlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHpvZDogYW55O1xuICBmb3IgKGNvbnN0IHQgb2YgdHlwZSkge1xuICAgIHpvZCA9IHpvZCA/IHpvZC5vcihpbm5lclpvZGlmeSh0KSkgOiBpbm5lclpvZGlmeSh0KTtcbiAgfVxuXG4gIHJldHVybiB6b2Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnlWYWxpZGF0aW9uKFxuICB6b2Q6IGFueSxcbiAgdHlwZTogc3RyaW5nLFxuICB2YWx1ZXM6IFZhbGlkYXRvck9wdGlvbnNcbikge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTjpcbiAgICAgIHJldHVybiB6b2QubWluKCh2YWx1ZXMgYXMgTWluVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUlOXSk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIOlxuICAgICAgcmV0dXJuIHpvZC5taW4oXG4gICAgICAgICh2YWx1ZXMgYXMgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NQVg6XG4gICAgICByZXR1cm4gem9kLm1heCgodmFsdWVzIGFzIE1heFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1BWF0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWF4KFxuICAgICAgICAodmFsdWVzIGFzIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuU1RFUDpcbiAgICAgIHJldHVybiB6b2QubXVsdGlwbGVPZihcbiAgICAgICAgKHZhbHVlcyBhcyBTdGVwVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuU1RFUF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5QQVRURVJOOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5VUkw6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkVNQUlMOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5QQVNTV09SRDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgIHJldHVybiB6b2QuZGF0ZSgpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gem9kO1xuICB9XG59XG5cbk1vZGVsLnByb3RvdHlwZS50b1pvZCA9IGZ1bmN0aW9uIDxNIGV4dGVuZHMgTW9kZWw+KHRoaXM6IE0pOiBab2RPYmplY3Q8YW55PiB7XG4gIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBab2RSYXdTaGFwZSB9ID0ge307XG5cbiAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSAmJiAhcHJvcGVydGllcy5sZW5ndGgpIHJldHVybiB6Lm9iamVjdCh7fSk7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mICh0aGlzIGFzIGFueSlbcHJvcF0gPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICAgcHJvcC5zdGFydHNXaXRoKFwiX1wiKSB8fFxuICAgICAgcHJvcCA9PT0gXCJjb25zdHJ1Y3RvclwiXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxEZWNzID0gUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgdGhpcyxcbiAgICAgIHByb3AsXG4gICAgICBmYWxzZSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgY29uc3QgZGVjb3JhdG9yRGF0YSA9IGFsbERlY3MuZGVjb3JhdG9ycy5yZWR1Y2UoXG4gICAgICAoYWNjdW06IFJlY29yZDxzdHJpbmcsIGFueT4sIGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBwcm9wcyB9ID0gZWw7XG4gICAgICAgIGlmIChrZXkgPT09IE1vZGVsS2V5cy5UWVBFICYmICFhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSkge1xuICAgICAgICAgIGFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdID0ge1xuICAgICAgICAgICAgY3VzdG9tVHlwZXM6IFtwcm9wcy5uYW1lIGFzIHN0cmluZ10sXG4gICAgICAgICAgICBtZXNzYWdlOiBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRZUEUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJkZWZpbmVzIHRoZSBhY2NlcHRlZCB0eXBlcyBmb3IgdGhlIGF0dHJpYnV0ZVwiLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjdW1ba2V5XSA9IHByb3BzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBpZiAoIU9iamVjdC5rZXlzKGRlY29yYXRvckRhdGEpLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbGV0IHpvZDogYW55ID0gWm9kQW55O1xuXG4gICAgY29uc3QgdHlwZURhdGE6IFR5cGVNZXRhZGF0YSA9IGRlY29yYXRvckRhdGFbXG4gICAgICBWYWxpZGF0aW9uS2V5cy5UWVBFXG4gICAgXSBhcyBUeXBlTWV0YWRhdGE7XG5cbiAgICBpZiAoIXR5cGVEYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgdHlwZSBpbmZvcm1hdGlvbmApO1xuICAgIH1cblxuICAgIHpvZCA9IHpvZGlmeShcbiAgICAgIHR5cGVEYXRhLmN1c3RvbVR5cGVzLFxuICAgICAgZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXVxuICAgICAgICA/IHpvZGlmeSgoZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXSBhcyBMaXN0TWV0YWRhdGEpLmNsYXp6KVxuICAgICAgICA6IFpvZEFueVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhkZWNvcmF0b3JEYXRhKS5maWx0ZXIoXG4gICAgICAoW2tdKSA9PiAhaXNSZXNlcnZlZEtleShrKVxuICAgICkpIHtcbiAgICAgIHpvZCA9IHpvZGlmeVZhbGlkYXRpb24oem9kLCBrZXksIHByb3BzKTtcbiAgICB9XG5cbiAgICBpZiAoIWRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuUkVRVUlSRURdKSB7XG4gICAgICB6b2QgPSB6b2Qub3B0aW9uYWwoKTtcbiAgICB9XG5cbiAgICByZXN1bHRbcHJvcF0gPSB6b2Q7XG4gIH1cblxuICByZXR1cm4gei5vYmplY3QocmVzdWx0KTtcbn07XG5cbmlmICgheltcImZyb21Nb2RlbFwiIGFzIGtleW9mIHR5cGVvZiB6XSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeiwgXCJmcm9tTW9kZWxcIiwge1xuICAgIHZhbHVlOiA8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pID0+IHtcbiAgICAgIGNvbnN0IG0gPSBuZXcgbW9kZWwoKTtcbiAgICAgIHJldHVybiBtLnRvWm9kKCk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBab2Q6IHR5cGVvZiB6ICYge1xuICBmcm9tTW9kZWw6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4gWm9kT2JqZWN0O1xufSA9IHo7XG4iLCJleHBvcnQgKiBmcm9tIFwiLi9tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcnJpZGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgcmVmbGVjdGlvbiBwYWNrYWdlXG4gKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBwYWNrYWdlXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTphcy16b2RcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXSwibmFtZXMiOlsiVmFsaWRhdGlvbktleXMiLCJNb2RlbEtleXMiLCJab2RBbnkiLCJQcmltaXRpdmVzIiwieiIsIk1vZGVsIiwiem9kIiwiUmVmbGVjdGlvbiIsIkRFRkFVTFRfRVJST1JfTUVTU0FHRVMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQW9CQSxNQUFNLFlBQVksR0FBRztJQUNuQixJQUFBQSxrQ0FBYyxDQUFDLFFBQVE7SUFDdkIsSUFBQUEsa0NBQWMsQ0FBQyxJQUFJO0lBQ25CLElBQUFDLDZCQUFTLENBQUMsSUFBSTtLQUNOO0lBRVYsU0FBUyxhQUFhLENBQUMsRUFBVSxFQUFBO0lBQy9CLElBQUEsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQVMsQ0FBQztJQUN6QzthQUVnQixNQUFNLENBQUMsSUFBdUIsRUFBRSxLQUFV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
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtem9kLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL292ZXJyaWRlcy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNb2RlbCxcbiAgTW9kZWxLZXlzLFxuICBUeXBlTWV0YWRhdGEsXG4gIFByaW1pdGl2ZXMsXG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMsXG4gIFZhbGlkYXRvck9wdGlvbnMsXG4gIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMsXG4gIE1pblZhbGlkYXRvck9wdGlvbnMsXG4gIE1heFZhbGlkYXRvck9wdGlvbnMsXG4gIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMsXG4gIFN0ZXBWYWxpZGF0b3JPcHRpb25zLFxuICBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucyxcbiAgTGlzdE1ldGFkYXRhLFxuICBDb25zdHJ1Y3Rvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgeiwgWm9kQW55LCBab2RPYmplY3QsIFpvZFJhd1NoYXBlIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgUmVmbGVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmNvbnN0IFJlc2VydmVkS2V5cyA9IFtcbiAgVmFsaWRhdGlvbktleXMuUkVRVUlSRUQsXG4gIFZhbGlkYXRpb25LZXlzLlRZUEUsXG4gIE1vZGVsS2V5cy5UWVBFLFxuXSBhcyBjb25zdDtcblxuZnVuY3Rpb24gaXNSZXNlcnZlZEtleShlbDogc3RyaW5nKSB7XG4gIHJldHVybiBSZXNlcnZlZEtleXMuaW5jbHVkZXMoZWwgYXMgYW55KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHpvZGlmeSh0eXBlOiBzdHJpbmcgfCBzdHJpbmdbXSwgeno6IGFueSA9IFpvZEFueSkge1xuICB0eXBlID0gdHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIgPyBbdHlwZV0gOiB0eXBlO1xuXG4gIGZ1bmN0aW9uIGlubmVyWm9kaWZ5KHR5cGU6IHN0cmluZykge1xuICAgIHN3aXRjaCAodHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuU1RSSU5HOlxuICAgICAgICByZXR1cm4gei5zdHJpbmcoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5OVU1CRVI6XG4gICAgICAgIHJldHVybiB6Lm51bWJlcigpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJJR0lOVDpcbiAgICAgICAgcmV0dXJuIHouYmlnaW50KCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQk9PTEVBTjpcbiAgICAgICAgcmV0dXJuIHouYm9vbGVhbigpO1xuICAgICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5EQVRFOlxuICAgICAgICByZXR1cm4gei5kYXRlKCk7XG4gICAgICBjYXNlIEFycmF5Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouYXJyYXkoenopO1xuICAgICAgY2FzZSBTZXQubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICByZXR1cm4gei5zZXQoenopO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBtID0gTW9kZWwuZ2V0KHR5cGUpO1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuem9kaWZpYWJsZSB0eXBlOiAke3R5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB6eiA9IG5ldyBtKCkudG9ab2QoKTtcbiAgICAgICAgICByZXR1cm4geno7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byB6b2RpZnkgbW9kZWwgJHt0eXBlfTogJHtlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHpvZDogYW55O1xuICBmb3IgKGNvbnN0IHQgb2YgdHlwZSkge1xuICAgIHpvZCA9IHpvZCA/IHpvZC5vcihpbm5lclpvZGlmeSh0KSkgOiBpbm5lclpvZGlmeSh0KTtcbiAgfVxuXG4gIHJldHVybiB6b2Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnlWYWxpZGF0aW9uKFxuICB6b2Q6IGFueSxcbiAgdHlwZTogc3RyaW5nLFxuICB2YWx1ZXM6IFZhbGlkYXRvck9wdGlvbnNcbikge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTjpcbiAgICAgIHJldHVybiB6b2QubWluKCh2YWx1ZXMgYXMgTWluVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUlOXSk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIOlxuICAgICAgcmV0dXJuIHpvZC5taW4oXG4gICAgICAgICh2YWx1ZXMgYXMgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NQVg6XG4gICAgICByZXR1cm4gem9kLm1heCgodmFsdWVzIGFzIE1heFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1BWF0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWF4KFxuICAgICAgICAodmFsdWVzIGFzIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuU1RFUDpcbiAgICAgIHJldHVybiB6b2QubXVsdGlwbGVPZihcbiAgICAgICAgKHZhbHVlcyBhcyBTdGVwVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuU1RFUF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5QQVRURVJOOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5VUkw6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkVNQUlMOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5QQVNTV09SRDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgIHJldHVybiB6b2QuZGF0ZSgpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gem9kO1xuICB9XG59XG5cbk1vZGVsLnByb3RvdHlwZS50b1pvZCA9IGZ1bmN0aW9uIDxNIGV4dGVuZHMgTW9kZWw+KHRoaXM6IE0pOiBab2RPYmplY3Q8YW55PiB7XG4gIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcykgJiYgIXByb3BlcnRpZXMubGVuZ3RoKSByZXR1cm4gei5vYmplY3Qoe30pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiAodGhpcyBhcyBhbnkpW3Byb3BdID09PSBcImZ1bmN0aW9uXCIgfHxcbiAgICAgIHByb3Auc3RhcnRzV2l0aChcIl9cIikgfHxcbiAgICAgIHByb3AgPT09IFwiY29uc3RydWN0b3JcIlxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsRGVjcyA9IFJlZmxlY3Rpb24uZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIHRoaXMsXG4gICAgICBwcm9wLFxuICAgICAgZmFsc2UsXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGNvbnN0IGRlY29yYXRvckRhdGEgPSBhbGxEZWNzLmRlY29yYXRvcnMucmVkdWNlKFxuICAgICAgKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBlbCkgPT4ge1xuICAgICAgICBjb25zdCB7IGtleSwgcHJvcHMgfSA9IGVsO1xuICAgICAgICBpZiAoa2V5ID09PSBNb2RlbEtleXMuVFlQRSAmJiAhYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0pIHtcbiAgICAgICAgICBhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSA9IHtcbiAgICAgICAgICAgIGN1c3RvbVR5cGVzOiBbcHJvcHMubmFtZSBhcyBzdHJpbmddLFxuICAgICAgICAgICAgbWVzc2FnZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5UWVBFLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiZGVmaW5lcyB0aGUgYWNjZXB0ZWQgdHlwZXMgZm9yIHRoZSBhdHRyaWJ1dGVcIixcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY3VtW2tleV0gPSBwcm9wcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LFxuICAgICAge31cbiAgICApO1xuXG4gICAgaWYgKCFPYmplY3Qua2V5cyhkZWNvcmF0b3JEYXRhKS5sZW5ndGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxldCB6b2Q6IGFueSA9IFpvZEFueTtcblxuICAgIGNvbnN0IHR5cGVEYXRhOiBUeXBlTWV0YWRhdGEgPSBkZWNvcmF0b3JEYXRhW1xuICAgICAgVmFsaWRhdGlvbktleXMuVFlQRVxuICAgIF0gYXMgVHlwZU1ldGFkYXRhO1xuXG4gICAgaWYgKCF0eXBlRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHR5cGUgaW5mb3JtYXRpb25gKTtcbiAgICB9XG5cbiAgICB6b2QgPSB6b2RpZnkoXG4gICAgICB0eXBlRGF0YS5jdXN0b21UeXBlcyxcbiAgICAgIGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF1cbiAgICAgICAgPyB6b2RpZnkoKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6eilcbiAgICAgICAgOiBab2RBbnlcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBwcm9wc10gb2YgT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9yRGF0YSkuZmlsdGVyKFxuICAgICAgKFtrXSkgPT4gIWlzUmVzZXJ2ZWRLZXkoaylcbiAgICApKSB7XG4gICAgICB6b2QgPSB6b2RpZnlWYWxpZGF0aW9uKHpvZCwga2V5LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKCFkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLlJFUVVJUkVEXSkge1xuICAgICAgem9kID0gem9kLm9wdGlvbmFsKCk7XG4gICAgfVxuXG4gICAgcmVzdWx0W3Byb3BdID0gem9kO1xuICB9XG5cbiAgcmV0dXJuIHoub2JqZWN0KHJlc3VsdCk7XG59O1xuXG5leHBvcnQgdHlwZSBab2RGcm9tTW9kZWwgPSB0eXBlb2YgeiAmIHtcbiAgZnJvbU1vZGVsOiA8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pID0+IFpvZE9iamVjdDxhbnk+O1xufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBvdmVycmlkaW5nIHR5cGVcbmNvbnN0IFpvZDogWm9kRnJvbU1vZGVsID0gejtcblxuY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gIFpvZCxcbiAgXCJmcm9tTW9kZWxcIiBhcyBrZXlvZiB0eXBlb2YgWm9kXG4pO1xuXG5pZiAoIWRlc2NyaXB0b3IgfHwgZGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHosIFwiZnJvbU1vZGVsXCIsIHtcbiAgICB2YWx1ZTogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiB7XG4gICAgICBjb25zdCBtID0gbmV3IG1vZGVsKCk7XG4gICAgICByZXR1cm4gbS50b1pvZCgpO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgeyBab2QgfTtcbiIsImV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVycmlkZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3VycmVudCB2ZXJzaW9uIG9mIHRoZSByZWZsZWN0aW9uIHBhY2thZ2VcbiAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIgb2YgdGhlIHBhY2thZ2VcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmFzLXpvZFxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdLCJuYW1lcyI6WyJWYWxpZGF0aW9uS2V5cyIsIk1vZGVsS2V5cyIsIlpvZEFueSIsIlByaW1pdGl2ZXMiLCJ6IiwiTW9kZWwiLCJ6b2QiLCJSZWZsZWN0aW9uIiwiREVGQVVMVF9FUlJPUl9NRVNTQUdFUyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBb0JBLE1BQU0sWUFBWSxHQUFHO0lBQ25C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
@@ -122,7 +122,10 @@ Model.prototype.toZod = function () {
122
122
  }
123
123
  return z.object(result);
124
124
  };
125
- if (!z["fromModel"]) {
125
+ // @ts-expect-error overriding type
126
+ const Zod = z;
127
+ const descriptor = Object.getOwnPropertyDescriptor(Zod, "fromModel");
128
+ if (!descriptor || descriptor.configurable) {
126
129
  Object.defineProperty(z, "fromModel", {
127
130
  value: (model) => {
128
131
  const m = new model();
@@ -130,7 +133,6 @@ if (!z["fromModel"]) {
130
133
  },
131
134
  });
132
135
  }
133
- const Zod = z;
134
136
 
135
137
  /**
136
138
  * @description Current version of the reflection package
@@ -138,7 +140,7 @@ const Zod = z;
138
140
  * @const VERSION
139
141
  * @memberOf module:as-zod
140
142
  */
141
- const VERSION = "0.0.7";
143
+ const VERSION = "0.0.9";
142
144
 
143
145
  export { VERSION, Zod, zodify, zodifyValidation };
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtem9kLmVzbS5janMiLCJzb3VyY2VzIjpbIi4uL3NyYy9vdmVycmlkZXMudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgVHlwZU1ldGFkYXRhLFxuICBQcmltaXRpdmVzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5WYWxpZGF0b3JPcHRpb25zLFxuICBNYXhWYWxpZGF0b3JPcHRpb25zLFxuICBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBTdGVwVmFsaWRhdG9yT3B0aW9ucyxcbiAgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMsXG4gIExpc3RNZXRhZGF0YSxcbiAgQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHosIFpvZEFueSwgWm9kT2JqZWN0LCBab2RSYXdTaGFwZSB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5jb25zdCBSZXNlcnZlZEtleXMgPSBbXG4gIFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBWYWxpZGF0aW9uS2V5cy5UWVBFLFxuICBNb2RlbEtleXMuVFlQRSxcbl0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRLZXkoZWw6IHN0cmluZykge1xuICByZXR1cm4gUmVzZXJ2ZWRLZXlzLmluY2x1ZGVzKGVsIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnkodHlwZTogc3RyaW5nIHwgc3RyaW5nW10sIHp6OiBhbnkgPSBab2RBbnkpIHtcbiAgdHlwZSA9IHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiID8gW3R5cGVdIDogdHlwZTtcblxuICBmdW5jdGlvbiBpbm5lclpvZGlmeSh0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBQcmltaXRpdmVzLlNUUklORzpcbiAgICAgICAgcmV0dXJuIHouc3RyaW5nKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuTlVNQkVSOlxuICAgICAgICByZXR1cm4gei5udW1iZXIoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CSUdJTlQ6XG4gICAgICAgIHJldHVybiB6LmJpZ2ludCgpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJPT0xFQU46XG4gICAgICAgIHJldHVybiB6LmJvb2xlYW4oKTtcbiAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgICAgcmV0dXJuIHouZGF0ZSgpO1xuICAgICAgY2FzZSBBcnJheS5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LmFycmF5KHp6KTtcbiAgICAgIGNhc2UgU2V0Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouc2V0KHp6KTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbSA9IE1vZGVsLmdldCh0eXBlKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnpvZGlmaWFibGUgdHlwZTogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgenogPSBuZXcgbSgpLnRvWm9kKCk7XG4gICAgICAgICAgcmV0dXJuIHp6O1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gem9kaWZ5IG1vZGVsICR7dHlwZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCB6b2Q6IGFueTtcbiAgZm9yIChjb25zdCB0IG9mIHR5cGUpIHtcbiAgICB6b2QgPSB6b2QgPyB6b2Qub3IoaW5uZXJab2RpZnkodCkpIDogaW5uZXJab2RpZnkodCk7XG4gIH1cblxuICByZXR1cm4gem9kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5VmFsaWRhdGlvbihcbiAgem9kOiBhbnksXG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWVzOiBWYWxpZGF0b3JPcHRpb25zXG4pIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU46XG4gICAgICByZXR1cm4gem9kLm1pbigodmFsdWVzIGFzIE1pblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWluKFxuICAgICAgICAodmFsdWVzIGFzIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoKHZhbHVlcyBhcyBNYXhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhdKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1heChcbiAgICAgICAgKHZhbHVlcyBhcyBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlNURVA6XG4gICAgICByZXR1cm4gem9kLm11bHRpcGxlT2YoXG4gICAgICAgICh2YWx1ZXMgYXMgU3RlcFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlNURVBdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuVVJMOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5FTUFJTDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFTU1dPUkQ6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICByZXR1cm4gem9kLmRhdGUoKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHpvZDtcbiAgfVxufVxuXG5Nb2RlbC5wcm90b3R5cGUudG9ab2QgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNKTogWm9kT2JqZWN0PGFueT4ge1xuICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogWm9kUmF3U2hhcGUgfSA9IHt9O1xuXG4gIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcykgJiYgIXByb3BlcnRpZXMubGVuZ3RoKSByZXR1cm4gei5vYmplY3Qoe30pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiAodGhpcyBhcyBhbnkpW3Byb3BdID09PSBcImZ1bmN0aW9uXCIgfHxcbiAgICAgIHByb3Auc3RhcnRzV2l0aChcIl9cIikgfHxcbiAgICAgIHByb3AgPT09IFwiY29uc3RydWN0b3JcIlxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsRGVjcyA9IFJlZmxlY3Rpb24uZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIHRoaXMsXG4gICAgICBwcm9wLFxuICAgICAgZmFsc2UsXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGNvbnN0IGRlY29yYXRvckRhdGEgPSBhbGxEZWNzLmRlY29yYXRvcnMucmVkdWNlKFxuICAgICAgKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBlbCkgPT4ge1xuICAgICAgICBjb25zdCB7IGtleSwgcHJvcHMgfSA9IGVsO1xuICAgICAgICBpZiAoa2V5ID09PSBNb2RlbEtleXMuVFlQRSAmJiAhYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0pIHtcbiAgICAgICAgICBhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSA9IHtcbiAgICAgICAgICAgIGN1c3RvbVR5cGVzOiBbcHJvcHMubmFtZSBhcyBzdHJpbmddLFxuICAgICAgICAgICAgbWVzc2FnZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5UWVBFLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiZGVmaW5lcyB0aGUgYWNjZXB0ZWQgdHlwZXMgZm9yIHRoZSBhdHRyaWJ1dGVcIixcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY3VtW2tleV0gPSBwcm9wcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LFxuICAgICAge31cbiAgICApO1xuXG4gICAgaWYgKCFPYmplY3Qua2V5cyhkZWNvcmF0b3JEYXRhKS5sZW5ndGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxldCB6b2Q6IGFueSA9IFpvZEFueTtcblxuICAgIGNvbnN0IHR5cGVEYXRhOiBUeXBlTWV0YWRhdGEgPSBkZWNvcmF0b3JEYXRhW1xuICAgICAgVmFsaWRhdGlvbktleXMuVFlQRVxuICAgIF0gYXMgVHlwZU1ldGFkYXRhO1xuXG4gICAgaWYgKCF0eXBlRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHR5cGUgaW5mb3JtYXRpb25gKTtcbiAgICB9XG5cbiAgICB6b2QgPSB6b2RpZnkoXG4gICAgICB0eXBlRGF0YS5jdXN0b21UeXBlcyxcbiAgICAgIGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF1cbiAgICAgICAgPyB6b2RpZnkoKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6eilcbiAgICAgICAgOiBab2RBbnlcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBwcm9wc10gb2YgT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9yRGF0YSkuZmlsdGVyKFxuICAgICAgKFtrXSkgPT4gIWlzUmVzZXJ2ZWRLZXkoaylcbiAgICApKSB7XG4gICAgICB6b2QgPSB6b2RpZnlWYWxpZGF0aW9uKHpvZCwga2V5LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKCFkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLlJFUVVJUkVEXSkge1xuICAgICAgem9kID0gem9kLm9wdGlvbmFsKCk7XG4gICAgfVxuXG4gICAgcmVzdWx0W3Byb3BdID0gem9kO1xuICB9XG5cbiAgcmV0dXJuIHoub2JqZWN0KHJlc3VsdCk7XG59O1xuXG5pZiAoIXpbXCJmcm9tTW9kZWxcIiBhcyBrZXlvZiB0eXBlb2Ygel0pIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHosIFwiZnJvbU1vZGVsXCIsIHtcbiAgICB2YWx1ZTogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiB7XG4gICAgICBjb25zdCBtID0gbmV3IG1vZGVsKCk7XG4gICAgICByZXR1cm4gbS50b1pvZCgpO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgWm9kOiB0eXBlb2YgeiAmIHtcbiAgZnJvbU1vZGVsOiA8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pID0+IFpvZE9iamVjdDtcbn0gPSB6O1xuIiwiZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIHJlZmxlY3Rpb24gcGFja2FnZVxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlciBvZiB0aGUgcGFja2FnZVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6YXMtem9kXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFvQkEsTUFBTSxZQUFZLEdBQUc7QUFDbkIsSUFBQSxjQUFjLENBQUMsUUFBUTtBQUN2QixJQUFBLGNBQWMsQ0FBQyxJQUFJO0FBQ25CLElBQUEsU0FBUyxDQUFDLElBQUk7Q0FDTjtBQUVWLFNBQVMsYUFBYSxDQUFDLEVBQVUsRUFBQTtBQUMvQixJQUFBLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFTLENBQUM7QUFDekM7U0FFZ0IsTUFBTSxDQUFDLElBQXVCLEVBQUUsS0FBVSxNQUFNLEVBQUE7QUFDOUQsSUFBQSxJQUFJLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSTtJQUUvQyxTQUFTLFdBQVcsQ0FBQyxJQUFZLEVB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
146
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtem9kLmVzbS5janMiLCJzb3VyY2VzIjpbIi4uL3NyYy9vdmVycmlkZXMudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgVHlwZU1ldGFkYXRhLFxuICBQcmltaXRpdmVzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5WYWxpZGF0b3JPcHRpb25zLFxuICBNYXhWYWxpZGF0b3JPcHRpb25zLFxuICBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBTdGVwVmFsaWRhdG9yT3B0aW9ucyxcbiAgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMsXG4gIExpc3RNZXRhZGF0YSxcbiAgQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHosIFpvZEFueSwgWm9kT2JqZWN0LCBab2RSYXdTaGFwZSB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5jb25zdCBSZXNlcnZlZEtleXMgPSBbXG4gIFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBWYWxpZGF0aW9uS2V5cy5UWVBFLFxuICBNb2RlbEtleXMuVFlQRSxcbl0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRLZXkoZWw6IHN0cmluZykge1xuICByZXR1cm4gUmVzZXJ2ZWRLZXlzLmluY2x1ZGVzKGVsIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnkodHlwZTogc3RyaW5nIHwgc3RyaW5nW10sIHp6OiBhbnkgPSBab2RBbnkpIHtcbiAgdHlwZSA9IHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiID8gW3R5cGVdIDogdHlwZTtcblxuICBmdW5jdGlvbiBpbm5lclpvZGlmeSh0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBQcmltaXRpdmVzLlNUUklORzpcbiAgICAgICAgcmV0dXJuIHouc3RyaW5nKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuTlVNQkVSOlxuICAgICAgICByZXR1cm4gei5udW1iZXIoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CSUdJTlQ6XG4gICAgICAgIHJldHVybiB6LmJpZ2ludCgpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJPT0xFQU46XG4gICAgICAgIHJldHVybiB6LmJvb2xlYW4oKTtcbiAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgICAgcmV0dXJuIHouZGF0ZSgpO1xuICAgICAgY2FzZSBBcnJheS5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LmFycmF5KHp6KTtcbiAgICAgIGNhc2UgU2V0Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouc2V0KHp6KTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbSA9IE1vZGVsLmdldCh0eXBlKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnpvZGlmaWFibGUgdHlwZTogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgenogPSBuZXcgbSgpLnRvWm9kKCk7XG4gICAgICAgICAgcmV0dXJuIHp6O1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gem9kaWZ5IG1vZGVsICR7dHlwZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCB6b2Q6IGFueTtcbiAgZm9yIChjb25zdCB0IG9mIHR5cGUpIHtcbiAgICB6b2QgPSB6b2QgPyB6b2Qub3IoaW5uZXJab2RpZnkodCkpIDogaW5uZXJab2RpZnkodCk7XG4gIH1cblxuICByZXR1cm4gem9kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5VmFsaWRhdGlvbihcbiAgem9kOiBhbnksXG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWVzOiBWYWxpZGF0b3JPcHRpb25zXG4pIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU46XG4gICAgICByZXR1cm4gem9kLm1pbigodmFsdWVzIGFzIE1pblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWluKFxuICAgICAgICAodmFsdWVzIGFzIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoKHZhbHVlcyBhcyBNYXhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhdKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1heChcbiAgICAgICAgKHZhbHVlcyBhcyBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlNURVA6XG4gICAgICByZXR1cm4gem9kLm11bHRpcGxlT2YoXG4gICAgICAgICh2YWx1ZXMgYXMgU3RlcFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlNURVBdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuVVJMOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5FTUFJTDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFTU1dPUkQ6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICByZXR1cm4gem9kLmRhdGUoKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHpvZDtcbiAgfVxufVxuXG5Nb2RlbC5wcm90b3R5cGUudG9ab2QgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNKTogWm9kT2JqZWN0PGFueT4ge1xuICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcyk7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpICYmICFwcm9wZXJ0aWVzLmxlbmd0aCkgcmV0dXJuIHoub2JqZWN0KHt9KTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BlcnRpZXMpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgKHRoaXMgYXMgYW55KVtwcm9wXSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLnN0YXJ0c1dpdGgoXCJfXCIpIHx8XG4gICAgICBwcm9wID09PSBcImNvbnN0cnVjdG9yXCJcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbERlY3MgPSBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICB0aGlzLFxuICAgICAgcHJvcCxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNvcmF0b3JEYXRhID0gYWxsRGVjcy5kZWNvcmF0b3JzLnJlZHVjZShcbiAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgZWwpID0+IHtcbiAgICAgICAgY29uc3QgeyBrZXksIHByb3BzIH0gPSBlbDtcbiAgICAgICAgaWYgKGtleSA9PT0gTW9kZWxLZXlzLlRZUEUgJiYgIWFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdKSB7XG4gICAgICAgICAgYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0gPSB7XG4gICAgICAgICAgICBjdXN0b21UeXBlczogW3Byb3BzLm5hbWUgYXMgc3RyaW5nXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcImRlZmluZXMgdGhlIGFjY2VwdGVkIHR5cGVzIGZvciB0aGUgYXR0cmlidXRlXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2N1bVtrZXldID0gcHJvcHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoZGVjb3JhdG9yRGF0YSkubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsZXQgem9kOiBhbnkgPSBab2RBbnk7XG5cbiAgICBjb25zdCB0eXBlRGF0YTogVHlwZU1ldGFkYXRhID0gZGVjb3JhdG9yRGF0YVtcbiAgICAgIFZhbGlkYXRpb25LZXlzLlRZUEVcbiAgICBdIGFzIFR5cGVNZXRhZGF0YTtcblxuICAgIGlmICghdHlwZURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB0eXBlIGluZm9ybWF0aW9uYCk7XG4gICAgfVxuXG4gICAgem9kID0gem9kaWZ5KFxuICAgICAgdHlwZURhdGEuY3VzdG9tVHlwZXMsXG4gICAgICBkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdXG4gICAgICAgID8gem9kaWZ5KChkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenopXG4gICAgICAgIDogWm9kQW55XG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGRlY29yYXRvckRhdGEpLmZpbHRlcihcbiAgICAgIChba10pID0+ICFpc1Jlc2VydmVkS2V5KGspXG4gICAgKSkge1xuICAgICAgem9kID0gem9kaWZ5VmFsaWRhdGlvbih6b2QsIGtleSwgcHJvcHMpO1xuICAgIH1cblxuICAgIGlmICghZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRF0pIHtcbiAgICAgIHpvZCA9IHpvZC5vcHRpb25hbCgpO1xuICAgIH1cblxuICAgIHJlc3VsdFtwcm9wXSA9IHpvZDtcbiAgfVxuXG4gIHJldHVybiB6Lm9iamVjdChyZXN1bHQpO1xufTtcblxuZXhwb3J0IHR5cGUgWm9kRnJvbU1vZGVsID0gdHlwZW9mIHogJiB7XG4gIGZyb21Nb2RlbDogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiBab2RPYmplY3Q8YW55Pjtcbn07XG5cbi8vIEB0cy1leHBlY3QtZXJyb3Igb3ZlcnJpZGluZyB0eXBlXG5jb25zdCBab2Q6IFpvZEZyb21Nb2RlbCA9IHo7XG5cbmNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICBab2QsXG4gIFwiZnJvbU1vZGVsXCIgYXMga2V5b2YgdHlwZW9mIFpvZFxuKTtcblxuaWYgKCFkZXNjcmlwdG9yIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LCBcImZyb21Nb2RlbFwiLCB7XG4gICAgdmFsdWU6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4ge1xuICAgICAgY29uc3QgbSA9IG5ldyBtb2RlbCgpO1xuICAgICAgcmV0dXJuIG0udG9ab2QoKTtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IHsgWm9kIH07XG4iLCJleHBvcnQgKiBmcm9tIFwiLi9tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcnJpZGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgcmVmbGVjdGlvbiBwYWNrYWdlXG4gKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBwYWNrYWdlXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTphcy16b2RcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQW9CQSxNQUFNLFlBQVksR0FBRztBQUNuQixJQUFBLGNBQWMsQ0FBQyxRQUFRO0FBQ3ZCLElBQUEsY0FBYyxDQUFDLElBQUk7QUFDbkIsSUFBQSxTQUFTLENBQUMsSUFBSTtDQUNOO0FBRVYsU0FBUyxhQUFhLENBQUMsRUFBVSxF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
@@ -6,4 +6,4 @@ export * from "./overrides";
6
6
  * @const VERSION
7
7
  * @memberOf module:as-zod
8
8
  */
9
- export declare const VERSION = "0.0.7";
9
+ export declare const VERSION = "0.0.9";
package/lib/esm/index.js CHANGED
@@ -6,5 +6,5 @@ export * from "./overrides.js";
6
6
  * @const VERSION
7
7
  * @memberOf module:as-zod
8
8
  */
9
- export const VERSION = "0.0.7";
9
+ export const VERSION = "0.0.9";
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkJBQXdCO0FBQ3hCLCtCQUE0QjtBQUU1Qjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcnJpZGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgcmVmbGVjdGlvbiBwYWNrYWdlXG4gKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBwYWNrYWdlXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTphcy16b2RcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { ZodObject } from "zod";
2
2
  declare module "@decaf-ts/decorator-validation" {
3
3
  interface Model {
4
- toZod(): ZodObject;
4
+ toZod(): ZodObject<any>;
5
5
  }
6
6
  }
package/lib/esm/model.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpvZE9iamVjdCB9IGZyb20gXCJ6b2RcIjtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIiB7XG4gIGludGVyZmFjZSBNb2RlbCB7XG4gICAgdG9ab2QoKTogWm9kT2JqZWN0O1xuICB9XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpvZE9iamVjdCB9IGZyb20gXCJ6b2RcIjtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIiB7XG4gIGludGVyZmFjZSBNb2RlbCB7XG4gICAgdG9ab2QoKTogWm9kT2JqZWN0PGFueT47XG4gIH1cbn1cbiJdfQ==
@@ -2,6 +2,8 @@ import { Model, ValidatorOptions, Constructor } from "@decaf-ts/decorator-valida
2
2
  import { z, ZodObject } from "zod";
3
3
  export declare function zodify(type: string | string[], zz?: any): any;
4
4
  export declare function zodifyValidation(zod: any, type: string, values: ValidatorOptions): any;
5
- export declare const Zod: typeof z & {
6
- fromModel: <M extends Model>(model: Constructor<M>) => ZodObject;
5
+ export type ZodFromModel = typeof z & {
6
+ fromModel: <M extends Model>(model: Constructor<M>) => ZodObject<any>;
7
7
  };
8
+ declare const Zod: ZodFromModel;
9
+ export { Zod };
@@ -122,7 +122,10 @@ Model.prototype.toZod = function () {
122
122
  }
123
123
  return z.object(result);
124
124
  };
125
- if (!z["fromModel"]) {
125
+ // @ts-expect-error overriding type
126
+ const Zod = z;
127
+ const descriptor = Object.getOwnPropertyDescriptor(Zod, "fromModel");
128
+ if (!descriptor || descriptor.configurable) {
126
129
  Object.defineProperty(z, "fromModel", {
127
130
  value: (model) => {
128
131
  const m = new model();
@@ -130,5 +133,5 @@ if (!z["fromModel"]) {
130
133
  },
131
134
  });
132
135
  }
133
- export const Zod = z;
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFFVCxVQUFVLEVBQ1Ysc0JBQXNCLEdBVXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQTBCLE1BQU0sS0FBSyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFaEUsTUFBTSxZQUFZLEdBQUc7SUFDbkIsY0FBYyxDQUFDLFFBQVE7SUFDdkIsY0FBYyxDQUFDLElBQUk7SUFDbkIsU0FBUyxDQUFDLElBQUk7Q0FDTixDQUFDO0FBRVgsU0FBUyxhQUFhLENBQUMsRUFBVTtJQUMvQixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBUyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBdUIsRUFBRSxLQUFVLE1BQU07SUFDOUQsSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWhELFNBQVMsV0FBVyxDQUFDLElBQVk7UUFDL0IsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUMzQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLFVBQVUsQ0FBQyxPQUFPO2dCQUNyQixPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixLQUFLLGNBQWMsQ0FBQyxJQUFJO2dCQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMzQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckIsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDekIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsSUFBSSxDQUFDO29CQUNILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7Z0JBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEdBQVEsQ0FBQztJQUNiLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEdBQVEsRUFDUixJQUFZLEVBQ1osTUFBd0I7SUFFeEIsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssY0FBYyxDQUFDLEdBQUc7WUFDckIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFFLE1BQThCLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEUsS0FBSyxjQUFjLENBQUMsVUFBVTtZQUM1QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQ1gsTUFBb0MsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQ2pFLENBQUM7UUFDSixLQUFLLGNBQWMsQ0FBQyxHQUFHO1lBQ3JCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBRSxNQUE4QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLEtBQUssY0FBYyxDQUFDLFVBQVU7WUFDNUIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUNYLE1BQW9DLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUNqRSxDQUFDO1FBQ0osS0FBSyxjQUFjLENBQUMsSUFBSTtZQUN0QixPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQ2xCLE1BQStCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUN0RCxDQUFDO1FBQ0osS0FBSyxjQUFjLENBQUMsT0FBTztZQUN6QixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQ2IsTUFBa0MsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQzVELENBQUM7UUFDSixLQUFLLGNBQWMsQ0FBQyxHQUFHO1lBQ3JCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FDYixNQUFrQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDNUQsQ0FBQztRQUNKLEtBQUssY0FBYyxDQUFDLEtBQUs7WUFDdkIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUNiLE1BQWtDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUM1RCxDQUFDO1FBQ0osS0FBSyxjQUFjLENBQUMsUUFBUTtZQUMxQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQ2IsTUFBa0MsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQzVELENBQUM7UUFDSixLQUFLLGNBQWMsQ0FBQyxJQUFJO1lBQ3RCLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCO1lBQ0UsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHO0lBQ3RCLE1BQU0sTUFBTSxHQUFtQyxFQUFFLENBQUM7SUFFbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1FBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFDRSxPQUFRLElBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQ3BCLElBQUksS0FBSyxhQUFhLEVBQ3RCLENBQUM7WUFDRCxTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDOUMsY0FBYyxDQUFDLE9BQU8sRUFDdEIsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxDQUNMLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDN0MsQ0FBQyxLQUEwQixFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFELEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQzNCLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFjLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQyxJQUFJO29CQUNwQyxXQUFXLEVBQUUsOENBQThDO2lCQUM1RCxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDckIsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsU0FBUztRQUNYLENBQUM7UUFFRCxJQUFJLEdBQUcsR0FBUSxNQUFNLENBQUM7UUFFdEIsTUFBTSxRQUFRLEdBQWlCLGFBQWEsQ0FDMUMsY0FBYyxDQUFDLElBQUksQ0FDSixDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsR0FBRyxHQUFHLE1BQU0sQ0FDVixRQUFRLENBQUMsV0FBVyxFQUNwQixhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFrQixDQUFDLEtBQUssQ0FBQztZQUNwRSxDQUFDLENBQUMsTUFBTSxDQUNYLENBQUM7UUFFRixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQzdELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQzNCLEVBQUUsQ0FBQztZQUNGLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVDLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQTZCLENBQUMsRUFBRSxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRTtRQUNwQyxLQUFLLEVBQUUsQ0FBa0IsS0FBcUIsRUFBRSxFQUFFO1lBQ2hELE1BQU0sQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBRVosQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgVHlwZU1ldGFkYXRhLFxuICBQcmltaXRpdmVzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5WYWxpZGF0b3JPcHRpb25zLFxuICBNYXhWYWxpZGF0b3JPcHRpb25zLFxuICBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBTdGVwVmFsaWRhdG9yT3B0aW9ucyxcbiAgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMsXG4gIExpc3RNZXRhZGF0YSxcbiAgQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHosIFpvZEFueSwgWm9kT2JqZWN0LCBab2RSYXdTaGFwZSB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5jb25zdCBSZXNlcnZlZEtleXMgPSBbXG4gIFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBWYWxpZGF0aW9uS2V5cy5UWVBFLFxuICBNb2RlbEtleXMuVFlQRSxcbl0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRLZXkoZWw6IHN0cmluZykge1xuICByZXR1cm4gUmVzZXJ2ZWRLZXlzLmluY2x1ZGVzKGVsIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnkodHlwZTogc3RyaW5nIHwgc3RyaW5nW10sIHp6OiBhbnkgPSBab2RBbnkpIHtcbiAgdHlwZSA9IHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiID8gW3R5cGVdIDogdHlwZTtcblxuICBmdW5jdGlvbiBpbm5lclpvZGlmeSh0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBQcmltaXRpdmVzLlNUUklORzpcbiAgICAgICAgcmV0dXJuIHouc3RyaW5nKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuTlVNQkVSOlxuICAgICAgICByZXR1cm4gei5udW1iZXIoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CSUdJTlQ6XG4gICAgICAgIHJldHVybiB6LmJpZ2ludCgpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJPT0xFQU46XG4gICAgICAgIHJldHVybiB6LmJvb2xlYW4oKTtcbiAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgICAgcmV0dXJuIHouZGF0ZSgpO1xuICAgICAgY2FzZSBBcnJheS5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LmFycmF5KHp6KTtcbiAgICAgIGNhc2UgU2V0Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouc2V0KHp6KTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbSA9IE1vZGVsLmdldCh0eXBlKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnpvZGlmaWFibGUgdHlwZTogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgenogPSBuZXcgbSgpLnRvWm9kKCk7XG4gICAgICAgICAgcmV0dXJuIHp6O1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gem9kaWZ5IG1vZGVsICR7dHlwZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCB6b2Q6IGFueTtcbiAgZm9yIChjb25zdCB0IG9mIHR5cGUpIHtcbiAgICB6b2QgPSB6b2QgPyB6b2Qub3IoaW5uZXJab2RpZnkodCkpIDogaW5uZXJab2RpZnkodCk7XG4gIH1cblxuICByZXR1cm4gem9kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5VmFsaWRhdGlvbihcbiAgem9kOiBhbnksXG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWVzOiBWYWxpZGF0b3JPcHRpb25zXG4pIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU46XG4gICAgICByZXR1cm4gem9kLm1pbigodmFsdWVzIGFzIE1pblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWluKFxuICAgICAgICAodmFsdWVzIGFzIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoKHZhbHVlcyBhcyBNYXhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhdKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1heChcbiAgICAgICAgKHZhbHVlcyBhcyBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlNURVA6XG4gICAgICByZXR1cm4gem9kLm11bHRpcGxlT2YoXG4gICAgICAgICh2YWx1ZXMgYXMgU3RlcFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlNURVBdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuVVJMOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5FTUFJTDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFTU1dPUkQ6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICByZXR1cm4gem9kLmRhdGUoKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHpvZDtcbiAgfVxufVxuXG5Nb2RlbC5wcm90b3R5cGUudG9ab2QgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNKTogWm9kT2JqZWN0PGFueT4ge1xuICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogWm9kUmF3U2hhcGUgfSA9IHt9O1xuXG4gIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcykgJiYgIXByb3BlcnRpZXMubGVuZ3RoKSByZXR1cm4gei5vYmplY3Qoe30pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiAodGhpcyBhcyBhbnkpW3Byb3BdID09PSBcImZ1bmN0aW9uXCIgfHxcbiAgICAgIHByb3Auc3RhcnRzV2l0aChcIl9cIikgfHxcbiAgICAgIHByb3AgPT09IFwiY29uc3RydWN0b3JcIlxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsRGVjcyA9IFJlZmxlY3Rpb24uZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIHRoaXMsXG4gICAgICBwcm9wLFxuICAgICAgZmFsc2UsXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGNvbnN0IGRlY29yYXRvckRhdGEgPSBhbGxEZWNzLmRlY29yYXRvcnMucmVkdWNlKFxuICAgICAgKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBlbCkgPT4ge1xuICAgICAgICBjb25zdCB7IGtleSwgcHJvcHMgfSA9IGVsO1xuICAgICAgICBpZiAoa2V5ID09PSBNb2RlbEtleXMuVFlQRSAmJiAhYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0pIHtcbiAgICAgICAgICBhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSA9IHtcbiAgICAgICAgICAgIGN1c3RvbVR5cGVzOiBbcHJvcHMubmFtZSBhcyBzdHJpbmddLFxuICAgICAgICAgICAgbWVzc2FnZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5UWVBFLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiZGVmaW5lcyB0aGUgYWNjZXB0ZWQgdHlwZXMgZm9yIHRoZSBhdHRyaWJ1dGVcIixcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY3VtW2tleV0gPSBwcm9wcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LFxuICAgICAge31cbiAgICApO1xuXG4gICAgaWYgKCFPYmplY3Qua2V5cyhkZWNvcmF0b3JEYXRhKS5sZW5ndGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxldCB6b2Q6IGFueSA9IFpvZEFueTtcblxuICAgIGNvbnN0IHR5cGVEYXRhOiBUeXBlTWV0YWRhdGEgPSBkZWNvcmF0b3JEYXRhW1xuICAgICAgVmFsaWRhdGlvbktleXMuVFlQRVxuICAgIF0gYXMgVHlwZU1ldGFkYXRhO1xuXG4gICAgaWYgKCF0eXBlRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHR5cGUgaW5mb3JtYXRpb25gKTtcbiAgICB9XG5cbiAgICB6b2QgPSB6b2RpZnkoXG4gICAgICB0eXBlRGF0YS5jdXN0b21UeXBlcyxcbiAgICAgIGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF1cbiAgICAgICAgPyB6b2RpZnkoKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6eilcbiAgICAgICAgOiBab2RBbnlcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBwcm9wc10gb2YgT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9yRGF0YSkuZmlsdGVyKFxuICAgICAgKFtrXSkgPT4gIWlzUmVzZXJ2ZWRLZXkoaylcbiAgICApKSB7XG4gICAgICB6b2QgPSB6b2RpZnlWYWxpZGF0aW9uKHpvZCwga2V5LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKCFkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLlJFUVVJUkVEXSkge1xuICAgICAgem9kID0gem9kLm9wdGlvbmFsKCk7XG4gICAgfVxuXG4gICAgcmVzdWx0W3Byb3BdID0gem9kO1xuICB9XG5cbiAgcmV0dXJuIHoub2JqZWN0KHJlc3VsdCk7XG59O1xuXG5pZiAoIXpbXCJmcm9tTW9kZWxcIiBhcyBrZXlvZiB0eXBlb2Ygel0pIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHosIFwiZnJvbU1vZGVsXCIsIHtcbiAgICB2YWx1ZTogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiB7XG4gICAgICBjb25zdCBtID0gbmV3IG1vZGVsKCk7XG4gICAgICByZXR1cm4gbS50b1pvZCgpO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgWm9kOiB0eXBlb2YgeiAmIHtcbiAgZnJvbU1vZGVsOiA8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pID0+IFpvZE9iamVjdDtcbn0gPSB6O1xuIl19
136
+ export { Zod };
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFFVCxVQUFVLEVBQ1Ysc0JBQXNCLEdBVXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQTBCLE1BQU0sS0FBSyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFaEUsTUFBTSxZQUFZLEdBQUc7SUFDbkIsY0FBYyxDQUFDLFFBQVE7SUFDdkIsY0FBYyxDQUFDLElBQUk7SUFDbkIsU0FBUyxDQUFDLElBQUk7Q0FDTixDQUFDO0FBRVgsU0FBUyxhQUFhLENBQUMsRUFBVTtJQUMvQixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBUyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBdUIsRUFBRSxLQUFVLE1BQU07SUFDOUQsSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWhELFNBQVMsV0FBVyxDQUFDLElBQVk7UUFDL0IsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUMzQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixL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QyxDQUFDLENBQzNCLEVBQUUsQ0FBQztZQUNGLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVDLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFNRixtQ0FBbUM7QUFDbkMsTUFBTSxHQUFHLEdBQWlCLENBQUMsQ0FBQztBQUU1QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQ2hELEdBQUcsRUFDSCxXQUErQixDQUNoQyxDQUFDO0FBRUYsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxDQUFrQixLQUFxQixFQUFFLEVBQUU7WUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZGVsLFxuICBNb2RlbEtleXMsXG4gIFR5cGVNZXRhZGF0YSxcbiAgUHJpbWl0aXZlcyxcbiAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyxcbiAgVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWluVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWF4VmFsaWRhdG9yT3B0aW9ucyxcbiAgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyxcbiAgU3RlcFZhbGlkYXRvck9wdGlvbnMsXG4gIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zLFxuICBMaXN0TWV0YWRhdGEsXG4gIENvbnN0cnVjdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyB6LCBab2RBbnksIFpvZE9iamVjdCwgWm9kUmF3U2hhcGUgfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuY29uc3QgUmVzZXJ2ZWRLZXlzID0gW1xuICBWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCxcbiAgVmFsaWRhdGlvbktleXMuVFlQRSxcbiAgTW9kZWxLZXlzLlRZUEUsXG5dIGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBpc1Jlc2VydmVkS2V5KGVsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlc2VydmVkS2V5cy5pbmNsdWRlcyhlbCBhcyBhbnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5KHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdLCB6ejogYW55ID0gWm9kQW55KSB7XG4gIHR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IFt0eXBlXSA6IHR5cGU7XG5cbiAgZnVuY3Rpb24gaW5uZXJab2RpZnkodHlwZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5TVFJJTkc6XG4gICAgICAgIHJldHVybiB6LnN0cmluZygpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLk5VTUJFUjpcbiAgICAgICAgcmV0dXJuIHoubnVtYmVyKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQklHSU5UOlxuICAgICAgICByZXR1cm4gei5iaWdpbnQoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CT09MRUFOOlxuICAgICAgICByZXR1cm4gei5ib29sZWFuKCk7XG4gICAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICAgIHJldHVybiB6LmRhdGUoKTtcbiAgICAgIGNhc2UgQXJyYXkubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICByZXR1cm4gei5hcnJheSh6eik7XG4gICAgICBjYXNlIFNldC5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LnNldCh6eik7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IG0gPSBNb2RlbC5nZXQodHlwZSk7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW56b2RpZmlhYmxlIHR5cGU6ICR7dHlwZX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHp6ID0gbmV3IG0oKS50b1pvZCgpO1xuICAgICAgICAgIHJldHVybiB6ejtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHpvZGlmeSBtb2RlbCAke3R5cGV9OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgem9kOiBhbnk7XG4gIGZvciAoY29uc3QgdCBvZiB0eXBlKSB7XG4gICAgem9kID0gem9kID8gem9kLm9yKGlubmVyWm9kaWZ5KHQpKSA6IGlubmVyWm9kaWZ5KHQpO1xuICB9XG5cbiAgcmV0dXJuIHpvZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHpvZGlmeVZhbGlkYXRpb24oXG4gIHpvZDogYW55LFxuICB0eXBlOiBzdHJpbmcsXG4gIHZhbHVlczogVmFsaWRhdG9yT3B0aW9uc1xuKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOOlxuICAgICAgcmV0dXJuIHpvZC5taW4oKHZhbHVlcyBhcyBNaW5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NSU5dKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1pbihcbiAgICAgICAgKHZhbHVlcyBhcyBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWDpcbiAgICAgIHJldHVybiB6b2QubWF4KCh2YWx1ZXMgYXMgTWF4VmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUFYXSk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoXG4gICAgICAgICh2YWx1ZXMgYXMgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5TVEVQOlxuICAgICAgcmV0dXJuIHpvZC5tdWx0aXBsZU9mKFxuICAgICAgICAodmFsdWVzIGFzIFN0ZXBWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5TVEVQXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlBBVFRFUk46XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlVSTDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuRU1BSUw6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlBBU1NXT1JEOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5EQVRFOlxuICAgICAgcmV0dXJuIHpvZC5kYXRlKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB6b2Q7XG4gIH1cbn1cblxuTW9kZWwucHJvdG90eXBlLnRvWm9kID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4odGhpczogTSk6IFpvZE9iamVjdDxhbnk+IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSAmJiAhcHJvcGVydGllcy5sZW5ndGgpIHJldHVybiB6Lm9iamVjdCh7fSk7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mICh0aGlzIGFzIGFueSlbcHJvcF0gPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICAgcHJvcC5zdGFydHNXaXRoKFwiX1wiKSB8fFxuICAgICAgcHJvcCA9PT0gXCJjb25zdHJ1Y3RvclwiXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxEZWNzID0gUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgdGhpcyxcbiAgICAgIHByb3AsXG4gICAgICBmYWxzZSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgY29uc3QgZGVjb3JhdG9yRGF0YSA9IGFsbERlY3MuZGVjb3JhdG9ycy5yZWR1Y2UoXG4gICAgICAoYWNjdW06IFJlY29yZDxzdHJpbmcsIGFueT4sIGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBwcm9wcyB9ID0gZWw7XG4gICAgICAgIGlmIChrZXkgPT09IE1vZGVsS2V5cy5UWVBFICYmICFhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSkge1xuICAgICAgICAgIGFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdID0ge1xuICAgICAgICAgICAgY3VzdG9tVHlwZXM6IFtwcm9wcy5uYW1lIGFzIHN0cmluZ10sXG4gICAgICAgICAgICBtZXNzYWdlOiBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRZUEUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJkZWZpbmVzIHRoZSBhY2NlcHRlZCB0eXBlcyBmb3IgdGhlIGF0dHJpYnV0ZVwiLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjdW1ba2V5XSA9IHByb3BzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBpZiAoIU9iamVjdC5rZXlzKGRlY29yYXRvckRhdGEpLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbGV0IHpvZDogYW55ID0gWm9kQW55O1xuXG4gICAgY29uc3QgdHlwZURhdGE6IFR5cGVNZXRhZGF0YSA9IGRlY29yYXRvckRhdGFbXG4gICAgICBWYWxpZGF0aW9uS2V5cy5UWVBFXG4gICAgXSBhcyBUeXBlTWV0YWRhdGE7XG5cbiAgICBpZiAoIXR5cGVEYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgdHlwZSBpbmZvcm1hdGlvbmApO1xuICAgIH1cblxuICAgIHpvZCA9IHpvZGlmeShcbiAgICAgIHR5cGVEYXRhLmN1c3RvbVR5cGVzLFxuICAgICAgZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXVxuICAgICAgICA/IHpvZGlmeSgoZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXSBhcyBMaXN0TWV0YWRhdGEpLmNsYXp6KVxuICAgICAgICA6IFpvZEFueVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhkZWNvcmF0b3JEYXRhKS5maWx0ZXIoXG4gICAgICAoW2tdKSA9PiAhaXNSZXNlcnZlZEtleShrKVxuICAgICkpIHtcbiAgICAgIHpvZCA9IHpvZGlmeVZhbGlkYXRpb24oem9kLCBrZXksIHByb3BzKTtcbiAgICB9XG5cbiAgICBpZiAoIWRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuUkVRVUlSRURdKSB7XG4gICAgICB6b2QgPSB6b2Qub3B0aW9uYWwoKTtcbiAgICB9XG5cbiAgICByZXN1bHRbcHJvcF0gPSB6b2Q7XG4gIH1cblxuICByZXR1cm4gei5vYmplY3QocmVzdWx0KTtcbn07XG5cbmV4cG9ydCB0eXBlIFpvZEZyb21Nb2RlbCA9IHR5cGVvZiB6ICYge1xuICBmcm9tTW9kZWw6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4gWm9kT2JqZWN0PGFueT47XG59O1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIG92ZXJyaWRpbmcgdHlwZVxuY29uc3QgWm9kOiBab2RGcm9tTW9kZWwgPSB6O1xuXG5jb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgWm9kLFxuICBcImZyb21Nb2RlbFwiIGFzIGtleW9mIHR5cGVvZiBab2Rcbik7XG5cbmlmICghZGVzY3JpcHRvciB8fCBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeiwgXCJmcm9tTW9kZWxcIiwge1xuICAgIHZhbHVlOiA8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pID0+IHtcbiAgICAgIGNvbnN0IG0gPSBuZXcgbW9kZWwoKTtcbiAgICAgIHJldHVybiBtLnRvWm9kKCk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCB7IFpvZCB9O1xuIl19
package/lib/index.cjs CHANGED
@@ -23,5 +23,5 @@ __exportStar(require("./overrides.cjs"), exports);
23
23
  * @const VERSION
24
24
  * @memberOf module:as-zod
25
25
  */
26
- exports.VERSION = "0.0.7";
26
+ exports.VERSION = "0.0.9";
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBd0I7QUFDeEIsa0RBQTRCO0FBRTVCOzs7OztHQUtHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIHJlZmxlY3Rpb24gcGFja2FnZVxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlciBvZiB0aGUgcGFja2FnZVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6YXMtem9kXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl19
package/lib/index.d.ts CHANGED
@@ -6,4 +6,4 @@ export * from "./overrides";
6
6
  * @const VERSION
7
7
  * @memberOf module:as-zod
8
8
  */
9
- export declare const VERSION = "0.0.7";
9
+ export declare const VERSION = "0.0.9";
package/lib/model.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpvZE9iamVjdCB9IGZyb20gXCJ6b2RcIjtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIiB7XG4gIGludGVyZmFjZSBNb2RlbCB7XG4gICAgdG9ab2QoKTogWm9kT2JqZWN0O1xuICB9XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFpvZE9iamVjdCB9IGZyb20gXCJ6b2RcIjtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIiB7XG4gIGludGVyZmFjZSBNb2RlbCB7XG4gICAgdG9ab2QoKTogWm9kT2JqZWN0PGFueT47XG4gIH1cbn1cbiJdfQ==
package/lib/model.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ZodObject } from "zod";
2
2
  declare module "@decaf-ts/decorator-validation" {
3
3
  interface Model {
4
- toZod(): ZodObject;
4
+ toZod(): ZodObject<any>;
5
5
  }
6
6
  }
package/lib/overrides.cjs CHANGED
@@ -127,7 +127,11 @@ decorator_validation_1.Model.prototype.toZod = function () {
127
127
  }
128
128
  return zod_1.z.object(result);
129
129
  };
130
- if (!zod_1.z["fromModel"]) {
130
+ // @ts-expect-error overriding type
131
+ const Zod = zod_1.z;
132
+ exports.Zod = Zod;
133
+ const descriptor = Object.getOwnPropertyDescriptor(Zod, "fromModel");
134
+ if (!descriptor || descriptor.configurable) {
131
135
  Object.defineProperty(zod_1.z, "fromModel", {
132
136
  value: (model) => {
133
137
  const m = new model();
@@ -135,5 +139,4 @@ if (!zod_1.z["fromModel"]) {
135
139
  },
136
140
  });
137
141
  }
138
- exports.Zod = zod_1.z;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4QkEsd0JBd0NDO0FBRUQsNENBMkNDO0FBbkhELHlFQWV3QztBQUN4Qyw2QkFBd0Q7QUFDeEQscURBQWtEO0FBQ2xELHlFQUFnRTtBQUVoRSxNQUFNLFlBQVksR0FBRztJQUNuQixxQ0FBYyxDQUFDLFFBQVE7SUFDdkIscUNBQWMsQ0FBQyxJQUFJO0lBQ25CLGdDQUFTLENBQUMsSUFBSTtDQUNOLENBQUM7QUFFWCxTQUFTLGFBQWEsQ0FBQyxFQUFVO0lBQy9CLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFTLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBZ0IsTUFBTSxDQUFDLElBQXVCLEVBQUUsS0FBVSxZQUFNO0lBQzlELElBQUksR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVoRCxTQUFTLFdBQVcsQ0FBQyxJQUFZO1FBQy9CLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDM0IsS0FBSyxpQ0FBVSxDQUFDLE1BQU07Z0JBQ3BCLE9BQU8sT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLEtBQUssaUNBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLGlDQUFVLENBQUMsTUFBTTtnQkFDcEIsT0FBTyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsS0FBSyxpQ0FBVSxDQUFDLE9BQU87Z0JBQ3JCLE9BQU8sT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLEtBQUsscUNBQWMsQ0FBQyxJQUFJO2dCQUN0QixPQUFPLE9BQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLEtB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QUFDLGFBQWEsQ0FBQyxxQ0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDNUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLElBQUksQ0FBQyxPQUFDLENBQUMsV0FBNkIsQ0FBQyxFQUFFLENBQUM7SUFDdEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFDLEVBQUUsV0FBVyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxDQUFrQixLQUFxQixFQUFFLEVBQUU7WUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVZLFFBQUEsR0FBRyxHQUVaLE9BQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZGVsLFxuICBNb2RlbEtleXMsXG4gIFR5cGVNZXRhZGF0YSxcbiAgUHJpbWl0aXZlcyxcbiAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyxcbiAgVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWluVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWF4VmFsaWRhdG9yT3B0aW9ucyxcbiAgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyxcbiAgU3RlcFZhbGlkYXRvck9wdGlvbnMsXG4gIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zLFxuICBMaXN0TWV0YWRhdGEsXG4gIENvbnN0cnVjdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyB6LCBab2RBbnksIFpvZE9iamVjdCwgWm9kUmF3U2hhcGUgfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuY29uc3QgUmVzZXJ2ZWRLZXlzID0gW1xuICBWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCxcbiAgVmFsaWRhdGlvbktleXMuVFlQRSxcbiAgTW9kZWxLZXlzLlRZUEUsXG5dIGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBpc1Jlc2VydmVkS2V5KGVsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlc2VydmVkS2V5cy5pbmNsdWRlcyhlbCBhcyBhbnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5KHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdLCB6ejogYW55ID0gWm9kQW55KSB7XG4gIHR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IFt0eXBlXSA6IHR5cGU7XG5cbiAgZnVuY3Rpb24gaW5uZXJab2RpZnkodHlwZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5TVFJJTkc6XG4gICAgICAgIHJldHVybiB6LnN0cmluZygpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLk5VTUJFUjpcbiAgICAgICAgcmV0dXJuIHoubnVtYmVyKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQklHSU5UOlxuICAgICAgICByZXR1cm4gei5iaWdpbnQoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CT09MRUFOOlxuICAgICAgICByZXR1cm4gei5ib29sZWFuKCk7XG4gICAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICAgIHJldHVybiB6LmRhdGUoKTtcbiAgICAgIGNhc2UgQXJyYXkubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICByZXR1cm4gei5hcnJheSh6eik7XG4gICAgICBjYXNlIFNldC5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LnNldCh6eik7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IG0gPSBNb2RlbC5nZXQodHlwZSk7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW56b2RpZmlhYmxlIHR5cGU6ICR7dHlwZX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHp6ID0gbmV3IG0oKS50b1pvZCgpO1xuICAgICAgICAgIHJldHVybiB6ejtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHpvZGlmeSBtb2RlbCAke3R5cGV9OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgem9kOiBhbnk7XG4gIGZvciAoY29uc3QgdCBvZiB0eXBlKSB7XG4gICAgem9kID0gem9kID8gem9kLm9yKGlubmVyWm9kaWZ5KHQpKSA6IGlubmVyWm9kaWZ5KHQpO1xuICB9XG5cbiAgcmV0dXJuIHpvZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHpvZGlmeVZhbGlkYXRpb24oXG4gIHpvZDogYW55LFxuICB0eXBlOiBzdHJpbmcsXG4gIHZhbHVlczogVmFsaWRhdG9yT3B0aW9uc1xuKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOOlxuICAgICAgcmV0dXJuIHpvZC5taW4oKHZhbHVlcyBhcyBNaW5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NSU5dKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1pbihcbiAgICAgICAgKHZhbHVlcyBhcyBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWDpcbiAgICAgIHJldHVybiB6b2QubWF4KCh2YWx1ZXMgYXMgTWF4VmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUFYXSk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoXG4gICAgICAgICh2YWx1ZXMgYXMgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5TVEVQOlxuICAgICAgcmV0dXJuIHpvZC5tdWx0aXBsZU9mKFxuICAgICAgICAodmFsdWVzIGFzIFN0ZXBWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5TVEVQXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlBBVFRFUk46XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlVSTDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuRU1BSUw6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlBBU1NXT1JEOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5EQVRFOlxuICAgICAgcmV0dXJuIHpvZC5kYXRlKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB6b2Q7XG4gIH1cbn1cblxuTW9kZWwucHJvdG90eXBlLnRvWm9kID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4odGhpczogTSk6IFpvZE9iamVjdDxhbnk+IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IFpvZFJhd1NoYXBlIH0gPSB7fTtcblxuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcyk7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpICYmICFwcm9wZXJ0aWVzLmxlbmd0aCkgcmV0dXJuIHoub2JqZWN0KHt9KTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BlcnRpZXMpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgKHRoaXMgYXMgYW55KVtwcm9wXSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLnN0YXJ0c1dpdGgoXCJfXCIpIHx8XG4gICAgICBwcm9wID09PSBcImNvbnN0cnVjdG9yXCJcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbERlY3MgPSBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICB0aGlzLFxuICAgICAgcHJvcCxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNvcmF0b3JEYXRhID0gYWxsRGVjcy5kZWNvcmF0b3JzLnJlZHVjZShcbiAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgZWwpID0+IHtcbiAgICAgICAgY29uc3QgeyBrZXksIHByb3BzIH0gPSBlbDtcbiAgICAgICAgaWYgKGtleSA9PT0gTW9kZWxLZXlzLlRZUEUgJiYgIWFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdKSB7XG4gICAgICAgICAgYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0gPSB7XG4gICAgICAgICAgICBjdXN0b21UeXBlczogW3Byb3BzLm5hbWUgYXMgc3RyaW5nXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcImRlZmluZXMgdGhlIGFjY2VwdGVkIHR5cGVzIGZvciB0aGUgYXR0cmlidXRlXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2N1bVtrZXldID0gcHJvcHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoZGVjb3JhdG9yRGF0YSkubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsZXQgem9kOiBhbnkgPSBab2RBbnk7XG5cbiAgICBjb25zdCB0eXBlRGF0YTogVHlwZU1ldGFkYXRhID0gZGVjb3JhdG9yRGF0YVtcbiAgICAgIFZhbGlkYXRpb25LZXlzLlRZUEVcbiAgICBdIGFzIFR5cGVNZXRhZGF0YTtcblxuICAgIGlmICghdHlwZURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB0eXBlIGluZm9ybWF0aW9uYCk7XG4gICAgfVxuXG4gICAgem9kID0gem9kaWZ5KFxuICAgICAgdHlwZURhdGEuY3VzdG9tVHlwZXMsXG4gICAgICBkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdXG4gICAgICAgID8gem9kaWZ5KChkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenopXG4gICAgICAgIDogWm9kQW55XG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGRlY29yYXRvckRhdGEpLmZpbHRlcihcbiAgICAgIChba10pID0+ICFpc1Jlc2VydmVkS2V5KGspXG4gICAgKSkge1xuICAgICAgem9kID0gem9kaWZ5VmFsaWRhdGlvbih6b2QsIGtleSwgcHJvcHMpO1xuICAgIH1cblxuICAgIGlmICghZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRF0pIHtcbiAgICAgIHpvZCA9IHpvZC5vcHRpb25hbCgpO1xuICAgIH1cblxuICAgIHJlc3VsdFtwcm9wXSA9IHpvZDtcbiAgfVxuXG4gIHJldHVybiB6Lm9iamVjdChyZXN1bHQpO1xufTtcblxuaWYgKCF6W1wiZnJvbU1vZGVsXCIgYXMga2V5b2YgdHlwZW9mIHpdKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LCBcImZyb21Nb2RlbFwiLCB7XG4gICAgdmFsdWU6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4ge1xuICAgICAgY29uc3QgbSA9IG5ldyBtb2RlbCgpO1xuICAgICAgcmV0dXJuIG0udG9ab2QoKTtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IFpvZDogdHlwZW9mIHogJiB7XG4gIGZyb21Nb2RlbDogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiBab2RPYmplY3Q7XG59ID0gejtcbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4QkEsd0JBd0NDO0FBRUQsNENBMkNDO0FBbkhELHlFQWV3QztBQUN4Qyw2QkFBd0Q7QUFDeEQscURBQWtEO0FBQ2xELHlFQUFnRTtBQUVoRSxNQUFNLFlBQVksR0FBRztJQUNuQixxQ0FBYyxDQUFDLFFBQVE7SUFDdkIscUNBQWMsQ0FBQyxJQUFJO0lBQ25CLGdDQUFTLENBQUMsSUFBSTtDQUNOLENBQUM7QUFFWCxTQUFTLGFBQWEsQ0FBQyxFQUFVO0lBQy9CLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFTLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBZ0IsTUFBTSxDQUFDLElBQXVCLEVBQUUsS0FBVSxZQUFNO0lBQzlELElBQUksR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVoRCxTQUFTLFdBQVcsQ0FBQyxJQUFZO1FBQy9CLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDM0IsS0FBSyxpQ0FBVSxDQUFDLE1BQU07Z0JBQ3BCLE9BQU8sT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLEtBQUssaUNBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLGlDQUFVLENBQUMsTUFBTTtnQkFDcEIsT0FBTyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsS0FBSyxpQ0FBVSxDQUFDLE9BQU87Z0JBQ3JCLE9BQU8sT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLEtBQUsscUNBQWMsQ0FBQyxJQUFJO2dCQUN0QixPQUFPLE9BQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLEtB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QUFDLGFBQWEsQ0FBQyxxQ0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDNUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQU1GLG1DQUFtQztBQUNuQyxNQUFNLEdBQUcsR0FBaUIsT0FBQyxDQUFDO0FBZ0JuQixrQkFBRztBQWRaLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDaEQsR0FBRyxFQUNILFdBQStCLENBQ2hDLENBQUM7QUFFRixJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQUMsRUFBRSxXQUFXLEVBQUU7UUFDcEMsS0FBSyxFQUFFLENBQWtCLEtBQXFCLEVBQUUsRUFBRTtZQUNoRCxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgVHlwZU1ldGFkYXRhLFxuICBQcmltaXRpdmVzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5WYWxpZGF0b3JPcHRpb25zLFxuICBNYXhWYWxpZGF0b3JPcHRpb25zLFxuICBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBTdGVwVmFsaWRhdG9yT3B0aW9ucyxcbiAgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMsXG4gIExpc3RNZXRhZGF0YSxcbiAgQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHosIFpvZEFueSwgWm9kT2JqZWN0LCBab2RSYXdTaGFwZSB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5jb25zdCBSZXNlcnZlZEtleXMgPSBbXG4gIFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBWYWxpZGF0aW9uS2V5cy5UWVBFLFxuICBNb2RlbEtleXMuVFlQRSxcbl0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRLZXkoZWw6IHN0cmluZykge1xuICByZXR1cm4gUmVzZXJ2ZWRLZXlzLmluY2x1ZGVzKGVsIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnkodHlwZTogc3RyaW5nIHwgc3RyaW5nW10sIHp6OiBhbnkgPSBab2RBbnkpIHtcbiAgdHlwZSA9IHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiID8gW3R5cGVdIDogdHlwZTtcblxuICBmdW5jdGlvbiBpbm5lclpvZGlmeSh0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBQcmltaXRpdmVzLlNUUklORzpcbiAgICAgICAgcmV0dXJuIHouc3RyaW5nKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuTlVNQkVSOlxuICAgICAgICByZXR1cm4gei5udW1iZXIoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CSUdJTlQ6XG4gICAgICAgIHJldHVybiB6LmJpZ2ludCgpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJPT0xFQU46XG4gICAgICAgIHJldHVybiB6LmJvb2xlYW4oKTtcbiAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgICAgcmV0dXJuIHouZGF0ZSgpO1xuICAgICAgY2FzZSBBcnJheS5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LmFycmF5KHp6KTtcbiAgICAgIGNhc2UgU2V0Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouc2V0KHp6KTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbSA9IE1vZGVsLmdldCh0eXBlKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnpvZGlmaWFibGUgdHlwZTogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgenogPSBuZXcgbSgpLnRvWm9kKCk7XG4gICAgICAgICAgcmV0dXJuIHp6O1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gem9kaWZ5IG1vZGVsICR7dHlwZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCB6b2Q6IGFueTtcbiAgZm9yIChjb25zdCB0IG9mIHR5cGUpIHtcbiAgICB6b2QgPSB6b2QgPyB6b2Qub3IoaW5uZXJab2RpZnkodCkpIDogaW5uZXJab2RpZnkodCk7XG4gIH1cblxuICByZXR1cm4gem9kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5VmFsaWRhdGlvbihcbiAgem9kOiBhbnksXG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWVzOiBWYWxpZGF0b3JPcHRpb25zXG4pIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU46XG4gICAgICByZXR1cm4gem9kLm1pbigodmFsdWVzIGFzIE1pblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWluKFxuICAgICAgICAodmFsdWVzIGFzIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoKHZhbHVlcyBhcyBNYXhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhdKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1heChcbiAgICAgICAgKHZhbHVlcyBhcyBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlNURVA6XG4gICAgICByZXR1cm4gem9kLm11bHRpcGxlT2YoXG4gICAgICAgICh2YWx1ZXMgYXMgU3RlcFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlNURVBdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuVVJMOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5FTUFJTDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFTU1dPUkQ6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICByZXR1cm4gem9kLmRhdGUoKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHpvZDtcbiAgfVxufVxuXG5Nb2RlbC5wcm90b3R5cGUudG9ab2QgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNKTogWm9kT2JqZWN0PGFueT4ge1xuICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcyk7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpICYmICFwcm9wZXJ0aWVzLmxlbmd0aCkgcmV0dXJuIHoub2JqZWN0KHt9KTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BlcnRpZXMpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgKHRoaXMgYXMgYW55KVtwcm9wXSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLnN0YXJ0c1dpdGgoXCJfXCIpIHx8XG4gICAgICBwcm9wID09PSBcImNvbnN0cnVjdG9yXCJcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbERlY3MgPSBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICB0aGlzLFxuICAgICAgcHJvcCxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNvcmF0b3JEYXRhID0gYWxsRGVjcy5kZWNvcmF0b3JzLnJlZHVjZShcbiAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgZWwpID0+IHtcbiAgICAgICAgY29uc3QgeyBrZXksIHByb3BzIH0gPSBlbDtcbiAgICAgICAgaWYgKGtleSA9PT0gTW9kZWxLZXlzLlRZUEUgJiYgIWFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdKSB7XG4gICAgICAgICAgYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0gPSB7XG4gICAgICAgICAgICBjdXN0b21UeXBlczogW3Byb3BzLm5hbWUgYXMgc3RyaW5nXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcImRlZmluZXMgdGhlIGFjY2VwdGVkIHR5cGVzIGZvciB0aGUgYXR0cmlidXRlXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2N1bVtrZXldID0gcHJvcHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoZGVjb3JhdG9yRGF0YSkubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsZXQgem9kOiBhbnkgPSBab2RBbnk7XG5cbiAgICBjb25zdCB0eXBlRGF0YTogVHlwZU1ldGFkYXRhID0gZGVjb3JhdG9yRGF0YVtcbiAgICAgIFZhbGlkYXRpb25LZXlzLlRZUEVcbiAgICBdIGFzIFR5cGVNZXRhZGF0YTtcblxuICAgIGlmICghdHlwZURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB0eXBlIGluZm9ybWF0aW9uYCk7XG4gICAgfVxuXG4gICAgem9kID0gem9kaWZ5KFxuICAgICAgdHlwZURhdGEuY3VzdG9tVHlwZXMsXG4gICAgICBkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdXG4gICAgICAgID8gem9kaWZ5KChkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenopXG4gICAgICAgIDogWm9kQW55XG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGRlY29yYXRvckRhdGEpLmZpbHRlcihcbiAgICAgIChba10pID0+ICFpc1Jlc2VydmVkS2V5KGspXG4gICAgKSkge1xuICAgICAgem9kID0gem9kaWZ5VmFsaWRhdGlvbih6b2QsIGtleSwgcHJvcHMpO1xuICAgIH1cblxuICAgIGlmICghZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRF0pIHtcbiAgICAgIHpvZCA9IHpvZC5vcHRpb25hbCgpO1xuICAgIH1cblxuICAgIHJlc3VsdFtwcm9wXSA9IHpvZDtcbiAgfVxuXG4gIHJldHVybiB6Lm9iamVjdChyZXN1bHQpO1xufTtcblxuZXhwb3J0IHR5cGUgWm9kRnJvbU1vZGVsID0gdHlwZW9mIHogJiB7XG4gIGZyb21Nb2RlbDogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiBab2RPYmplY3Q8YW55Pjtcbn07XG5cbi8vIEB0cy1leHBlY3QtZXJyb3Igb3ZlcnJpZGluZyB0eXBlXG5jb25zdCBab2Q6IFpvZEZyb21Nb2RlbCA9IHo7XG5cbmNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICBab2QsXG4gIFwiZnJvbU1vZGVsXCIgYXMga2V5b2YgdHlwZW9mIFpvZFxuKTtcblxuaWYgKCFkZXNjcmlwdG9yIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LCBcImZyb21Nb2RlbFwiLCB7XG4gICAgdmFsdWU6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4ge1xuICAgICAgY29uc3QgbSA9IG5ldyBtb2RlbCgpO1xuICAgICAgcmV0dXJuIG0udG9ab2QoKTtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IHsgWm9kIH07XG4iXX0=
@@ -2,6 +2,8 @@ import { Model, ValidatorOptions, Constructor } from "@decaf-ts/decorator-valida
2
2
  import { z, ZodObject } from "zod";
3
3
  export declare function zodify(type: string | string[], zz?: any): any;
4
4
  export declare function zodifyValidation(zod: any, type: string, values: ValidatorOptions): any;
5
- export declare const Zod: typeof z & {
6
- fromModel: <M extends Model>(model: Constructor<M>) => ZodObject;
5
+ export type ZodFromModel = typeof z & {
6
+ fromModel: <M extends Model>(model: Constructor<M>) => ZodObject<any>;
7
7
  };
8
+ declare const Zod: ZodFromModel;
9
+ export { Zod };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/as-zod",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "Zod compatibility library",
5
5
  "type": "module",
6
6
  "exports": {