@decaf-ts/as-zod 1.0.2 → 1.1.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/README.md CHANGED
@@ -1,10 +1,9 @@
1
- [![Banner](./workdocs/assets/Banner.png)](https://decaf-ts.github.io/ts-workspace/)
1
+ ![Banner](./workdocs/assets/decaf-logo.svg)
2
2
 
3
3
  ## Decaf-ts as Zod module
4
4
 
5
5
  Small addon to enable two-way convertion between Models and Zod
6
6
 
7
-
8
7
  ![Licence](https://img.shields.io/github/license/decaf-ts/ts-workspace.svg?style=plastic)
9
8
  ![GitHub language count](https://img.shields.io/github/languages/count/decaf-ts/as-zod?style=plastic)
10
9
  ![GitHub top language](https://img.shields.io/github/languages/top/decaf-ts/ts-workspace?style=plastic)
@@ -28,6 +27,9 @@ Small addon to enable two-way convertion between Models and Zod
28
27
 
29
28
  Documentation available [here](https://decaf-ts.github.io/as-zod/)
30
29
 
30
+ Minimal size: 1.3 KB kb gzipped
31
+
32
+
31
33
  ### Description
32
34
 
33
35
  Easy two-way conversion from Models to Zod
@@ -42,6 +44,24 @@ versions `^0.0.1` are for zod 3.x. `^1.0.0` for zod 4.x
42
44
 
43
45
 
44
46
 
47
+ ## Coding Principles
48
+
49
+ - group similar functionality in folders (analog to namespaces but without any namespace declaration)
50
+ - one class per file;
51
+ - one interface per file (unless interface is just used as a type);
52
+ - group types as other interfaces in a types.ts file per folder;
53
+ - group constants or enums in a constants.ts file per folder;
54
+ - group decorators in a decorators.ts file per folder;
55
+ - always import from the specific file, never from a folder or index file (exceptions for dependencies on other packages);
56
+ - prefer the usage of established design patters where applicable:
57
+ - Singleton (can be an anti-pattern. use with care);
58
+ - factory;
59
+ - observer;
60
+ - strategy;
61
+ - builder;
62
+ - etc;
63
+
64
+
45
65
  ### Related
46
66
 
47
67
  [![Decorator Validation Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=decaf-ts&repo=decorator-validation)](https://github.com/decaf-ts/decorator-validation)
package/dist/as-zod.cjs CHANGED
@@ -1,181 +1,2 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@decaf-ts/decoration'), require('@decaf-ts/decorator-validation'), require('zod'), require('@decaf-ts/reflection')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@decaf-ts/decoration', '@decaf-ts/decorator-validation', 'zod', '@decaf-ts/reflection'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["as-zod"] = {}, global.decoration, global.decoratorValidation, global.zod, global.reflection));
5
- })(this, (function (exports, decoration, decoratorValidation, zod, reflection) { 'use strict';
6
-
7
- const ReservedKeys = [
8
- decoratorValidation.ValidationKeys.REQUIRED,
9
- decoratorValidation.ValidationKeys.TYPE,
10
- decoratorValidation.ValidationKeys.DATE,
11
- decoratorValidation.ModelKeys.TYPE,
12
- ];
13
- function isReservedKey(el) {
14
- return ReservedKeys.includes(el);
15
- }
16
- function zodify(type, zz = zod.ZodAny) {
17
- type = typeof type === "string" ? [type] : type;
18
- function innerZodify(type) {
19
- switch (type.toLowerCase()) {
20
- case decoratorValidation.Primitives.STRING:
21
- return zod.z.string();
22
- case decoratorValidation.Primitives.NUMBER:
23
- return zod.z.number();
24
- case decoratorValidation.Primitives.BIGINT:
25
- return zod.z.bigint();
26
- case decoratorValidation.Primitives.BOOLEAN:
27
- return zod.z.boolean();
28
- case decoratorValidation.ValidationKeys.DATE:
29
- return zod.z.date();
30
- case Array.name.toLowerCase():
31
- return zod.z.array(zz);
32
- case Set.name.toLowerCase(): {
33
- const setSchema = zod.z.set(zz);
34
- if (typeof setSchema.valueSchema === "undefined") {
35
- Object.defineProperty(setSchema, "valueSchema", {
36
- get: () => setSchema._def?.valueType,
37
- enumerable: false,
38
- configurable: true,
39
- });
40
- }
41
- return setSchema;
42
- }
43
- default: {
44
- const m = decoratorValidation.Model.get(type);
45
- if (!m) {
46
- throw new Error(`Unzodifiable type: ${type}`);
47
- }
48
- try {
49
- const zz = zod.z.from(m);
50
- return zz;
51
- }
52
- catch (e) {
53
- throw new Error(`Failed to zodify model ${type}: ${e}`);
54
- }
55
- }
56
- }
57
- }
58
- let zod$1;
59
- for (const t of type) {
60
- zod$1 = zod$1 ? zod$1.or(innerZodify(t)) : innerZodify(t);
61
- }
62
- return zod$1;
63
- }
64
- function zodifyValidation(zod, type, values) {
65
- switch (type) {
66
- case decoratorValidation.ValidationKeys.MIN:
67
- return zod.min(values[decoratorValidation.ValidationKeys.MIN]);
68
- case decoratorValidation.ValidationKeys.MIN_LENGTH:
69
- return zod.min(values[decoratorValidation.ValidationKeys.MIN_LENGTH]);
70
- case decoratorValidation.ValidationKeys.MAX:
71
- return zod.max(values[decoratorValidation.ValidationKeys.MAX]);
72
- case decoratorValidation.ValidationKeys.MAX_LENGTH:
73
- return zod.max(values[decoratorValidation.ValidationKeys.MAX_LENGTH]);
74
- case decoratorValidation.ValidationKeys.STEP:
75
- return zod.multipleOf(values[decoratorValidation.ValidationKeys.STEP]);
76
- case decoratorValidation.ValidationKeys.PATTERN:
77
- case decoratorValidation.ValidationKeys.URL:
78
- case decoratorValidation.ValidationKeys.EMAIL:
79
- case decoratorValidation.ValidationKeys.PASSWORD:
80
- return zod.regex(new RegExp(values[decoratorValidation.ValidationKeys.PATTERN], "g"));
81
- case decoratorValidation.ValidationKeys.DATE:
82
- // DATE decorator is handled via @type(Date) and parsing; do not re-wrap here
83
- throw new TypeError("DATE validator cannot be applied as a refinement");
84
- default:
85
- return zod;
86
- }
87
- }
88
- function modelToZod(model) {
89
- const result = {};
90
- const properties = decoratorValidation.Model.getAttributes(model);
91
- if (Array.isArray(properties) && !properties.length)
92
- return zod.z.object({});
93
- for (const prop of properties) {
94
- if (typeof model[prop] === "function" ||
95
- prop.startsWith("_") ||
96
- prop === "constructor") {
97
- continue;
98
- }
99
- const allDecs = reflection.Reflection.getPropertyDecorators(decoratorValidation.ValidationKeys.REFLECT, model, prop, false, true);
100
- const decoratorData = allDecs.decorators.reduce((accum, el) => {
101
- const { key, props } = el;
102
- if (key === decoratorValidation.ModelKeys.TYPE && !accum[decoratorValidation.ValidationKeys.TYPE]) {
103
- accum[decoratorValidation.ValidationKeys.TYPE] = {
104
- customTypes: [props.name],
105
- message: decoratorValidation.DEFAULT_ERROR_MESSAGES.TYPE,
106
- description: "defines the accepted types for the attribute",
107
- };
108
- }
109
- else {
110
- accum[key] = props;
111
- }
112
- return accum;
113
- }, {});
114
- if (!Object.keys(decoratorData).length) {
115
- continue;
116
- }
117
- let zod$1 = zod.ZodAny;
118
- const typeData = decoratorData[decoratorValidation.ValidationKeys.TYPE];
119
- if (!typeData) {
120
- throw new Error(`Missing type information`);
121
- }
122
- zod$1 = zodify((Array.isArray(typeData.customTypes)
123
- ? typeData.customTypes
124
- : [typeData.customTypes]).map((c) => {
125
- if (typeof c === "function")
126
- return c();
127
- return c;
128
- }), decoratorData[decoratorValidation.ValidationKeys.LIST]
129
- ? zodify((Array.isArray(decoratorData[decoratorValidation.ValidationKeys.LIST].clazz)
130
- ? decoratorData[decoratorValidation.ValidationKeys.LIST].clazz
131
- : [decoratorData[decoratorValidation.ValidationKeys.LIST].clazz]).map((c) => {
132
- if (typeof c === "function") {
133
- return c().name;
134
- }
135
- return c;
136
- }))
137
- : zod.ZodAny);
138
- for (const [key, props] of Object.entries(decoratorData).filter(([k]) => !isReservedKey(k))) {
139
- zod$1 = zodifyValidation(zod$1, key, props);
140
- }
141
- if (!decoratorData[decoratorValidation.ValidationKeys.REQUIRED]) {
142
- zod$1 = zod$1.optional();
143
- }
144
- const description = decoration.Metadata.description(model.constructor, prop);
145
- if (description) {
146
- zod$1 = zod$1.describe(description);
147
- }
148
- result[prop] = zod$1;
149
- }
150
- const description = decoration.Metadata.description(model.constructor);
151
- const res = zod.z.object(result);
152
- return description ? res.describe(description) : res;
153
- }
154
- const descriptor = Object.getOwnPropertyDescriptor(zod.z, "from");
155
- if (!descriptor || descriptor.configurable) {
156
- Object.defineProperty(zod.z, "from", {
157
- value: (model) => {
158
- const m = new model();
159
- if (!decoration.Metadata.constr(m.constructor))
160
- decoratorValidation.Model.fromModel(m, {});
161
- return modelToZod(m);
162
- },
163
- });
164
- }
165
-
166
- /**
167
- * @description Current version of the reflection package
168
- * @summary Stores the semantic version number of the package
169
- * @const VERSION
170
- * @memberOf module:as-zod
171
- */
172
- const VERSION = "1.0.1";
173
- decoration.Metadata.registerLibrary("@decaf-ts/as-zod", VERSION);
174
-
175
- exports.VERSION = VERSION;
176
- exports.modelToZod = modelToZod;
177
- exports.zodify = zodify;
178
- exports.zodifyValidation = zodifyValidation;
179
-
180
- }));
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtem9kLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL292ZXJyaWRlcy50cyIsIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNb2RlbCxcbiAgTW9kZWxLZXlzLFxuICBUeXBlTWV0YWRhdGEsXG4gIFByaW1pdGl2ZXMsXG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMsXG4gIFZhbGlkYXRvck9wdGlvbnMsXG4gIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMsXG4gIE1pblZhbGlkYXRvck9wdGlvbnMsXG4gIE1heFZhbGlkYXRvck9wdGlvbnMsXG4gIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMsXG4gIFN0ZXBWYWxpZGF0b3JPcHRpb25zLFxuICBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucyxcbiAgTGlzdE1ldGFkYXRhLFxuICBDb25zdHJ1Y3Rvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IHosIFpvZEFueSB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5jb25zdCBSZXNlcnZlZEtleXMgPSBbXG4gIFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBWYWxpZGF0aW9uS2V5cy5UWVBFLFxuICBWYWxpZGF0aW9uS2V5cy5EQVRFLFxuICBNb2RlbEtleXMuVFlQRSxcbl0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRLZXkoZWw6IHN0cmluZykge1xuICByZXR1cm4gUmVzZXJ2ZWRLZXlzLmluY2x1ZGVzKGVsIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnkodHlwZTogc3RyaW5nIHwgc3RyaW5nW10sIHp6OiBhbnkgPSBab2RBbnkpIHtcbiAgdHlwZSA9IHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiID8gW3R5cGVdIDogdHlwZTtcblxuICBmdW5jdGlvbiBpbm5lclpvZGlmeSh0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBQcmltaXRpdmVzLlNUUklORzpcbiAgICAgICAgcmV0dXJuIHouc3RyaW5nKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuTlVNQkVSOlxuICAgICAgICByZXR1cm4gei5udW1iZXIoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CSUdJTlQ6XG4gICAgICAgIHJldHVybiB6LmJpZ2ludCgpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJPT0xFQU46XG4gICAgICAgIHJldHVybiB6LmJvb2xlYW4oKTtcbiAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgICAgcmV0dXJuIHouZGF0ZSgpO1xuICAgICAgY2FzZSBBcnJheS5uYW1lLnRvTG93ZXJDYXNlKCk6XG4gICAgICAgIHJldHVybiB6LmFycmF5KHp6KTtcbiAgICAgIGNhc2UgU2V0Lm5hbWUudG9Mb3dlckNhc2UoKToge1xuICAgICAgICBjb25zdCBzZXRTY2hlbWEgPSB6LnNldCh6eik7XG4gICAgICAgIGlmICh0eXBlb2YgKHNldFNjaGVtYSBhcyBhbnkpLnZhbHVlU2NoZW1hID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNldFNjaGVtYSwgXCJ2YWx1ZVNjaGVtYVwiLCB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IChzZXRTY2hlbWEgYXMgYW55KS5fZGVmPy52YWx1ZVR5cGUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2V0U2NoZW1hO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBtID0gTW9kZWwuZ2V0KHR5cGUpO1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuem9kaWZpYWJsZSB0eXBlOiAke3R5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB6eiA9IHouZnJvbShtKTtcbiAgICAgICAgICByZXR1cm4geno7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byB6b2RpZnkgbW9kZWwgJHt0eXBlfTogJHtlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHpvZDogYW55O1xuICBmb3IgKGNvbnN0IHQgb2YgdHlwZSkge1xuICAgIHpvZCA9IHpvZCA/IHpvZC5vcihpbm5lclpvZGlmeSh0KSkgOiBpbm5lclpvZGlmeSh0KTtcbiAgfVxuXG4gIHJldHVybiB6b2Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6b2RpZnlWYWxpZGF0aW9uKFxuICB6b2Q6IGFueSxcbiAgdHlwZTogc3RyaW5nLFxuICB2YWx1ZXM6IFZhbGlkYXRvck9wdGlvbnNcbikge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTjpcbiAgICAgIHJldHVybiB6b2QubWluKCh2YWx1ZXMgYXMgTWluVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUlOXSk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIOlxuICAgICAgcmV0dXJuIHpvZC5taW4oXG4gICAgICAgICh2YWx1ZXMgYXMgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NQVg6XG4gICAgICByZXR1cm4gem9kLm1heCgodmFsdWVzIGFzIE1heFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1BWF0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWF4KFxuICAgICAgICAodmFsdWVzIGFzIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuU1RFUDpcbiAgICAgIHJldHVybiB6b2QubXVsdGlwbGVPZihcbiAgICAgICAgKHZhbHVlcyBhcyBTdGVwVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuU1RFUF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5QQVRURVJOOlxuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuVVJMOlxuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuRU1BSUw6XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5QQVNTV09SRDpcbiAgICAgIHJldHVybiB6b2QucmVnZXgoXG4gICAgICAgIG5ldyBSZWdFeHAoXG4gICAgICAgICAgKHZhbHVlcyBhcyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuUEFUVEVSTl0gYXMgc3RyaW5nLFxuICAgICAgICAgIFwiZ1wiXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5EQVRFOlxuICAgICAgLy8gREFURSBkZWNvcmF0b3IgaXMgaGFuZGxlZCB2aWEgQHR5cGUoRGF0ZSkgYW5kIHBhcnNpbmc7IGRvIG5vdCByZS13cmFwIGhlcmVcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEQVRFIHZhbGlkYXRvciBjYW5ub3QgYmUgYXBwbGllZCBhcyBhIHJlZmluZW1lbnRcIik7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB6b2Q7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsVG9ab2Q8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogTSkge1xuICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBjb25zdCBwcm9wZXJ0aWVzID0gTW9kZWwuZ2V0QXR0cmlidXRlcyhtb2RlbCk7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpICYmICFwcm9wZXJ0aWVzLmxlbmd0aCkgcmV0dXJuIHoub2JqZWN0KHt9KTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BlcnRpZXMpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgKG1vZGVsIGFzIGFueSlbcHJvcF0gPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICAgcHJvcC5zdGFydHNXaXRoKFwiX1wiKSB8fFxuICAgICAgcHJvcCA9PT0gXCJjb25zdHJ1Y3RvclwiXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxEZWNzID0gUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgbW9kZWwsXG4gICAgICBwcm9wLFxuICAgICAgZmFsc2UsXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGNvbnN0IGRlY29yYXRvckRhdGEgPSBhbGxEZWNzLmRlY29yYXRvcnMucmVkdWNlKFxuICAgICAgKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBlbCkgPT4ge1xuICAgICAgICBjb25zdCB7IGtleSwgcHJvcHMgfSA9IGVsO1xuICAgICAgICBpZiAoa2V5ID09PSBNb2RlbEtleXMuVFlQRSAmJiAhYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0pIHtcbiAgICAgICAgICBhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSA9IHtcbiAgICAgICAgICAgIGN1c3RvbVR5cGVzOiBbcHJvcHMubmFtZSBhcyBzdHJpbmddLFxuICAgICAgICAgICAgbWVzc2FnZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5UWVBFLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiZGVmaW5lcyB0aGUgYWNjZXB0ZWQgdHlwZXMgZm9yIHRoZSBhdHRyaWJ1dGVcIixcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjY3VtW2tleV0gPSBwcm9wcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LFxuICAgICAge31cbiAgICApO1xuXG4gICAgaWYgKCFPYmplY3Qua2V5cyhkZWNvcmF0b3JEYXRhKS5sZW5ndGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxldCB6b2Q6IGFueSA9IFpvZEFueTtcblxuICAgIGNvbnN0IHR5cGVEYXRhOiBUeXBlTWV0YWRhdGEgPSBkZWNvcmF0b3JEYXRhW1xuICAgICAgVmFsaWRhdGlvbktleXMuVFlQRVxuICAgIF0gYXMgVHlwZU1ldGFkYXRhO1xuXG4gICAgaWYgKCF0eXBlRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHR5cGUgaW5mb3JtYXRpb25gKTtcbiAgICB9XG5cbiAgICB6b2QgPSB6b2RpZnkoXG4gICAgICAoQXJyYXkuaXNBcnJheSh0eXBlRGF0YS5jdXN0b21UeXBlcylcbiAgICAgICAgPyB0eXBlRGF0YS5jdXN0b21UeXBlc1xuICAgICAgICA6IFt0eXBlRGF0YS5jdXN0b21UeXBlc11cbiAgICAgICkubWFwKChjKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgYyA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gYygpO1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH0pLFxuICAgICAgZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXVxuICAgICAgICA/IHpvZGlmeShcbiAgICAgICAgICAgIChBcnJheS5pc0FycmF5KFxuICAgICAgICAgICAgICAoZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXSBhcyBMaXN0TWV0YWRhdGEpLmNsYXp6XG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgID8gKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6elxuICAgICAgICAgICAgICA6IFsoZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXSBhcyBMaXN0TWV0YWRhdGEpLmNsYXp6XVxuICAgICAgICAgICAgKS5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYygpLm5hbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGMgYXMgc3RyaW5nO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIDogWm9kQW55XG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGRlY29yYXRvckRhdGEpLmZpbHRlcihcbiAgICAgIChba10pID0+ICFpc1Jlc2VydmVkS2V5KGspXG4gICAgKSkge1xuICAgICAgem9kID0gem9kaWZ5VmFsaWRhdGlvbih6b2QsIGtleSwgcHJvcHMpO1xuICAgIH1cblxuICAgIGlmICghZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRF0pIHtcbiAgICAgIHpvZCA9IHpvZC5vcHRpb25hbCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gTWV0YWRhdGEuZGVzY3JpcHRpb24oXG4gICAgICBtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnksXG4gICAgICBwcm9wIGFzIGFueVxuICAgICk7XG5cbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIHpvZCA9IHpvZC5kZXNjcmliZShkZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcmVzdWx0W3Byb3BdID0gem9kO1xuICB9XG5cbiAgY29uc3QgZGVzY3JpcHRpb24gPSBNZXRhZGF0YS5kZXNjcmlwdGlvbihtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnkpO1xuICBjb25zdCByZXMgPSB6Lm9iamVjdChyZXN1bHQpO1xuICByZXR1cm4gZGVzY3JpcHRpb24gPyByZXMuZGVzY3JpYmUoZGVzY3JpcHRpb24pIDogcmVzO1xufVxuXG5jb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih6LCBcImZyb21cIiBhcyBrZXlvZiB0eXBlb2Ygeik7XG5cbmlmICghZGVzY3JpcHRvciB8fCBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeiwgXCJmcm9tXCIsIHtcbiAgICB2YWx1ZTogPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KSA9PiB7XG4gICAgICBjb25zdCBtID0gbmV3IG1vZGVsKCk7XG4gICAgICBpZiAoIU1ldGFkYXRhLmNvbnN0cihtLmNvbnN0cnVjdG9yIGFzIGFueSkpIE1vZGVsLmZyb21Nb2RlbChtLCB7fSk7XG4gICAgICByZXR1cm4gbW9kZWxUb1pvZChtKSBhcyBhbnk7XG4gICAgfSxcbiAgfSk7XG59XG4iLCJpbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi96b2RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIHJlZmxlY3Rpb24gcGFja2FnZVxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlciBvZiB0aGUgcGFja2FnZVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6YXMtem9kXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuXG5NZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoXCJAZGVjYWYtdHMvYXMtem9kXCIsIFZFUlNJT04pO1xuIl0sIm5hbWVzIjpbIlZhbGlkYXRpb25LZXlzIiwiTW9kZWxLZXlzIiwiWm9kQW55IiwiUHJpbWl0aXZlcyIsInoiLCJNb2RlbCIsInpvZCIsIlJlZmxlY3Rpb24iLCJERUZBVUxUX0VSUk9SX01FU1NBR0VTIiwiTWV0YWRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7OztJQXFCQSxNQUFNLFlBQVksR0FBRztJQUNuQixJQUFBQSxrQ0FBYyxDQUFDLFFBQVE7SUFDdkIsSUFBQUEsa0NBQWMsQ0FBQyxJQUFJO0lBQ25CLElBQUFBLGtDQUFjLENBQUMsSUFBSTtJQUNuQixJQUFBQyw2QkFBUyxDQUFDLElBQUk7S0FDTjtJQUVWLFNBQVMsYUFBYSxDQUFDLEVBQVUsRUFBQTtJQUMvQixJQUFBLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFTLENBQUM7SUFDekM7YUFFZ0IsTUFBTSxDQUFDLElBQXVCLEVBQUUsS0FBVUMsVUFBTSxFQUFBO0lBQzlELElBQUEsSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUk7UUFFL0MsU0FBUyxXQUFXLENBQUMsSUFBWSxFQUFBO0lBQy9CLFFBQUEsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUN4QixLQUFLQyw4QkFBVSxDQUFDLE1BQU07SUFDcEIsZ0JBQUEsT0FBT0MsS0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsS0FBS0QsOEJBQVUsQ0FBQyxNQUFNO0lBQ3BCLGdCQUFBLE9BQU9DLEtBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLEtBQUtELDhCQUFVLENBQUMsTUFBTTtJQUNwQixnQkFBQSxPQUFPQyxLQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNuQixLQUFLRCw4QkFBVSxDQUFDLE9BQU87SUFDckIsZ0JBQUEsT0FBT0MsS0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsS0FBS0osa0NBQWMsQ0FBQyxJQUFJO0lBQ3RCLGdCQUFBLE9BQU9JLEtBQUMsQ0FBQyxJQUFJLEVBQUU7SUFDakIsWUFBQSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQzNCLGdCQUFBLE9BQU9BLEtBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQzNCLE1BQU0sU0FBUyxHQUFHQSxLQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUMzQixnQkFBQSxJQUFJLE9BQVEsU0FBaUIsQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO0lBQ3pELG9CQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRTs0QkFDOUMsR0FBRyxFQUFFLE1BQU8sU0FBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUztJQUM3Qyx3QkFBQSxVQUFVLEVBQUUsS0FBSztJQUNqQix3QkFBQSxZQUFZLEVBQUUsSUFBSTtJQUNuQixxQkFBQSxDQUFDO29CQUNKO0lBQ0EsZ0JBQUEsT0FBTyxTQUFTO2dCQUNsQjtnQkFDQSxTQUFTO29CQUNQLE1BQU0sQ0FBQyxHQUFHQyx5QkFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxDQUFDLEVBQUU7SUFDTixvQkFBQSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixJQUFJLENBQUEsQ0FBRSxDQUFDO29CQUMvQztJQUNBLGdCQUFBLElBQUk7d0JBQ0YsTUFBTSxFQUFFLEdBQUdELEtBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLG9CQUFBLE9BQU8sRUFBRTtvQkFDWDtvQkFBRSxPQUFPLENBQVUsRUFBRTt3QkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFBLHVCQUFBLEVBQTBCLElBQUksQ0FBQSxFQUFBLEVBQUssQ0FBQyxDQUFBLENBQUUsQ0FBQztvQkFDekQ7Z0JBQ0Y7O1FBRUo7SUFFQSxJQUFBLElBQUlFLEtBQVE7SUFDWixJQUFBLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BCQSxLQUFHLEdBQUdBLEtBQUcsR0FBR0EsS0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3JEO0lBRUEsSUFBQSxPQUFPQSxLQUFHO0lBQ1o7YUFFZ0IsZ0JBQWdCLENBQzlCLEdBQVEsRUFDUixJQUFZLEVBQ1osTUFBd0IsRUFBQTtRQUV4QixRQUFRLElBQUk7WUFDVixLQUFLTixrQ0FBYyxDQUFDLEdBQUc7Z0JBQ3JCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBRSxNQUE4QixDQUFDQSxrQ0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLEtBQUtBLGtDQUFjLENBQUMsVUFBVTtnQkFDNUIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUNYLE1BQW9DLENBQUNBLGtDQUFjLENBQUMsVUFBVSxDQUFDLENBQ2pFO1lBQ0gsS0FBS0Esa0NBQWMsQ0FBQyxHQUFHO2dCQUNyQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUUsTUFBOEIsQ0FBQ0Esa0NBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRSxLQUFLQSxrQ0FBYyxDQUFDLFVBQVU7Z0JBQzVCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FDWCxNQUFvQyxDQUFDQSxrQ0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUNqRTtZQUNILEtBQUtBLGtDQUFjLENBQUMsSUFBSTtnQkFDdEIsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUNsQixNQUErQixDQUFDQSxrQ0FBYyxDQUFDLElBQUksQ0FBQyxDQUN0RDtZQUNILEtBQUtBLGtDQUFjLENBQUMsT0FBTztZQUMzQixLQUFLQSxrQ0FBYyxDQUFDLEdBQUc7WUFDdkIsS0FBS0Esa0NBQWMsQ0FBQyxLQUFLO1lBQ3pCLEtBQUtBLGtDQUFjLENBQUMsUUFBUTtJQUMxQixZQUFBLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FDZCxJQUFJLE1BQU0sQ0FDUCxNQUFrQyxDQUFDQSxrQ0FBYyxDQUFDLE9BQU8sQ0FBVyxFQUNyRSxHQUFHLENBQ0osQ0FDRjtZQUNILEtBQUtBLGtDQUFjLENBQUMsSUFBSTs7SUFFdEIsWUFBQSxNQUFNLElBQUksU0FBUyxDQUFDLGtEQUFrRCxDQUFDO0lBQ3pFLFFBQUE7SUFDRSxZQUFBLE9BQU8sR0FBRzs7SUFFaEI7SUFFTSxTQUFVLFVBQVUsQ0FBa0IsS0FBUSxFQUFBO1FBQ2xELE1BQU0sTUFBTSxHQUEyQixFQUFFO1FBRXpDLE1BQU0sVUFBVSxHQUFHSyx5QkFBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07SUFBRSxRQUFBLE9BQU9ELEtBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3hFLElBQUEsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7SUFDN0IsUUFBQSxJQUNFLE9BQVEsS0FBYSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVU7SUFDMUMsWUFBQSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDcEIsSUFBSSxLQUFLLGFBQWEsRUFDdEI7Z0JBQ0E7WUFDRjtJQUVBLFFBQUEsTUFBTSxPQUFPLEdBQUdHLHFCQUFVLENBQUMscUJBQXFCLENBQzlDUCxrQ0FBYyxDQUFDLE9BQU8sRUFDdEIsS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxDQUNMO0lBRUQsUUFBQSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDN0MsQ0FBQyxLQUEwQixFQUFFLEVBQUUsS0FBSTtJQUNqQyxZQUFBLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUN6QixZQUFBLElBQUksR0FBRyxLQUFLQyw2QkFBUyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQ0Qsa0NBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN6RCxnQkFBQSxLQUFLLENBQUNBLGtDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUc7SUFDM0Isb0JBQUEsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQWMsQ0FBQzt3QkFDbkMsT0FBTyxFQUFFUSwwQ0FBc0IsQ0FBQyxJQUFJO0lBQ3BDLG9CQUFBLFdBQVcsRUFBRSw4Q0FBOEM7cUJBQzVEO2dCQUNIO3FCQUFPO0lBQ0wsZ0JBQUEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7Z0JBQ3BCO0lBQ0EsWUFBQSxPQUFPLEtBQUs7WUFDZCxDQUFDLEVBQ0QsRUFBRSxDQUNIO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUN0QztZQUNGO1lBRUEsSUFBSUYsS0FBRyxHQUFRSixVQUFNO1lBRXJCLE1BQU0sUUFBUSxHQUFpQixhQUFhLENBQzFDRixrQ0FBYyxDQUFDLElBQUksQ0FDSjtZQUVqQixJQUFJLENBQUMsUUFBUSxFQUFFO0lBQ2IsWUFBQSxNQUFNLElBQUksS0FBSyxDQUFDLENBQUEsd0JBQUEsQ0FBMEIsQ0FBQztZQUM3QztZQUVBTSxLQUFHLEdBQUcsTUFBTSxDQUNWLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztrQkFDL0IsUUFBUSxDQUFDO0lBQ1gsY0FBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFJO2dCQUNWLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVTtvQkFBRSxPQUFPLENBQUMsRUFBRTtJQUN2QyxZQUFBLE9BQU8sQ0FBQztJQUNWLFFBQUEsQ0FBQyxDQUFDLEVBQ0YsYUFBYSxDQUFDTixrQ0FBYyxDQUFDLElBQUk7SUFDL0IsY0FBRSxNQUFNLENBQ0osQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNYLGFBQWEsQ0FBQ0Esa0NBQWMsQ0FBQyxJQUFJLENBQWtCLENBQUMsS0FBSztzQkFFdkQsYUFBYSxDQUFDQSxrQ0FBYyxDQUFDLElBQUksQ0FBa0IsQ0FBQztJQUN2RCxrQkFBRSxDQUFFLGFBQWEsQ0FBQ0Esa0NBQWMsQ0FBQyxJQUFJLENBQWtCLENBQUMsS0FBSyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSTtJQUNWLGdCQUFBLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxFQUFFO0lBQzNCLG9CQUFBLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSTtvQkFDakI7SUFDQSxnQkFBQSxPQUFPLENBQVc7SUFDcEIsWUFBQSxDQUFDLENBQUM7a0JBRUpFLFVBQU0sQ0FDWDtJQUVELFFBQUEsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQzNCLEVBQUU7Z0JBQ0RJLEtBQUcsR0FBRyxnQkFBZ0IsQ0FBQ0EsS0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFDekM7WUFFQSxJQUFJLENBQUMsYUFBYSxDQUFDTixrQ0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0lBQzNDLFlBQUFNLEtBQUcsR0FBR0EsS0FBRyxDQUFDLFFBQVEsRUFBRTtZQUN0QjtJQUVBLFFBQUEsTUFBTSxXQUFXLEdBQUdHLG1CQUFRLENBQUMsV0FBVyxDQUN0QyxLQUFLLENBQUMsV0FBa0IsRUFDeEIsSUFBVyxDQUNaO1lBRUQsSUFBSSxXQUFXLEVBQUU7SUFDZixZQUFBSCxLQUFHLEdBQUdBLEtBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQ2pDO0lBRUEsUUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUdBLEtBQUc7UUFDcEI7UUFFQSxNQUFNLFdBQVcsR0FBR0csbUJBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQWtCLENBQUM7UUFDbEUsTUFBTSxHQUFHLEdBQUdMLEtBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVCLElBQUEsT0FBTyxXQUFXLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHO0lBQ3REO0lBRUEsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDQSxLQUFDLEVBQUUsTUFBd0IsQ0FBQztJQUUvRSxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUU7SUFDMUMsSUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDQSxLQUFDLEVBQUUsTUFBTSxFQUFFO0lBQy9CLFFBQUEsS0FBSyxFQUFFLENBQWtCLEtBQXFCLEtBQUk7SUFDaEQsWUFBQSxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRTtnQkFDckIsSUFBSSxDQUFDSyxtQkFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBa0IsQ0FBQztJQUFFLGdCQUFBSix5QkFBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2xFLFlBQUEsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFRO1lBQzdCLENBQUM7SUFDRixLQUFBLENBQUM7SUFDSjs7SUN6T0E7Ozs7O0lBS0c7QUFDSSxVQUFNLE9BQU8sR0FBRztBQUV2QkksdUJBQVEsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDOzs7Ozs7Ozs7OzsifQ==
1
+ var e,t;e=this,t=(e,t,o,a,r)=>{"use strict";const i=[o.ValidationKeys.REQUIRED,o.ValidationKeys.TYPE,o.ValidationKeys.DATE,o.ModelKeys.TYPE];function n(e,t=a.ZodAny){function r(e){switch(e.toLowerCase()){case o.Primitives.STRING:return a.z.string();case o.Primitives.NUMBER:return a.z.number();case o.Primitives.BIGINT:return a.z.bigint();case o.Primitives.BOOLEAN:return a.z.boolean();case o.ValidationKeys.DATE:return a.z.date();case Array.name.toLowerCase():return a.z.array(t);case Set.name.toLowerCase():{const e=a.z.set(t);return void 0===e.valueSchema&&Object.defineProperty(e,"valueSchema",{get:()=>e._def?.valueType,enumerable:!1,configurable:!0}),e}default:{const t=o.Model.get(e);if(!t)throw Error("Unzodifiable type: "+e);try{return a.z.from(t)}catch(t){throw Error(`Failed to zodify model ${e}: ${t}`)}}}}let i;e="string"==typeof e?[e]:e;for(const t of e)i=i?i.or(r(t)):r(t);return i}function s(e,t,a){switch(t){case o.ValidationKeys.MIN:return e.min(a[o.ValidationKeys.MIN]);case o.ValidationKeys.MIN_LENGTH:return e.min(a[o.ValidationKeys.MIN_LENGTH]);case o.ValidationKeys.MAX:return e.max(a[o.ValidationKeys.MAX]);case o.ValidationKeys.MAX_LENGTH:return e.max(a[o.ValidationKeys.MAX_LENGTH]);case o.ValidationKeys.STEP:return e.multipleOf(a[o.ValidationKeys.STEP]);case o.ValidationKeys.PATTERN:case o.ValidationKeys.URL:case o.ValidationKeys.EMAIL:case o.ValidationKeys.PASSWORD:return e.regex(RegExp(a[o.ValidationKeys.PATTERN],"g"));case o.ValidationKeys.DATE:throw new TypeError("DATE validator cannot be applied as a refinement");default:return e}}function c(e){const c={},d=o.Model.getAttributes(e);if(Array.isArray(d)&&!d.length)return a.z.object({});for(const l of d){if("function"==typeof e[l]||l.startsWith("_")||"constructor"===l)continue;const d=r.Reflection.getPropertyDecorators(o.ValidationKeys.REFLECT,e,l,!1,!0).decorators.reduce((e,t)=>{const{key:a,props:r}=t;return a!==o.ModelKeys.TYPE||e[o.ValidationKeys.TYPE]?e[a]=r:e[o.ValidationKeys.TYPE]={customTypes:[r.name],message:o.DEFAULT_ERROR_MESSAGES.TYPE,description:"defines the accepted types for the attribute"},e},{});if(!Object.keys(d).length)continue;let y=a.ZodAny;const f=d[o.ValidationKeys.TYPE];if(!f)throw Error("Missing type information");y=n((Array.isArray(f.customTypes)?f.customTypes:[f.customTypes]).map(e=>"function"==typeof e?e():e),d[o.ValidationKeys.LIST]?n((Array.isArray(d[o.ValidationKeys.LIST].clazz)?d[o.ValidationKeys.LIST].clazz:[d[o.ValidationKeys.LIST].clazz]).map(e=>"function"==typeof e?e().name:e)):a.ZodAny);for(const[e,t]of Object.entries(d).filter(([e])=>{return t=e,!i.includes(t);var t}))y=s(y,e,t);d[o.ValidationKeys.REQUIRED]||(y=y.optional());const u=t.Metadata.description(e.constructor,l);u&&(y=y.describe(u)),c[l]=y}const l=t.Metadata.description(e.constructor),y=a.z.object(c);return l?y.describe(l):y}const d=Object.getOwnPropertyDescriptor(a.z,"from");d&&!d.configurable||Object.defineProperty(a.z,"from",{value:e=>{const a=new e;return t.Metadata.constr(a.constructor)||o.Model.fromModel(a,{}),c(a)}});const l="##VERSION##";t.Metadata.registerLibrary("@decaf-ts/as-zod",l),e.VERSION=l,e.modelToZod=c,e.zodify=n,e.zodifyValidation=s},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/decorator-validation"),require("zod"),require("@decaf-ts/reflection")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/decorator-validation","zod","@decaf-ts/reflection"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["as-zod"]={},e.decafTsDecoration,e.decafTsDecoratorValidation,e.zod,e.decafTsReflection);
2
+ //# sourceMappingURL=as-zod.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-zod.cjs","sources":["../src/overrides.ts","../src/index.ts"],"sourcesContent":[null,null],"names":["ReservedKeys","ValidationKeys","REQUIRED","TYPE","DATE","ModelKeys","zodify","type","zz","ZodAny","innerZodify","toLowerCase","Primitives","STRING","z","string","NUMBER","number","BIGINT","bigint","BOOLEAN","boolean","date","Array","name","array","Set","setSchema","set","valueSchema","Object","defineProperty","get","_def","valueType","enumerable","configurable","m","Model","Error","from","e","zod","t","or","zodifyValidation","values","MIN","min","MIN_LENGTH","MAX","max","MAX_LENGTH","STEP","multipleOf","PATTERN","URL","EMAIL","PASSWORD","regex","RegExp","TypeError","modelToZod","model","result","properties","getAttributes","isArray","length","object","prop","startsWith","decoratorData","Reflection","getPropertyDecorators","REFLECT","decorators","reduce","accum","el","key","props","customTypes","message","DEFAULT_ERROR_MESSAGES","description","keys","typeData","map","c","LIST","clazz","entries","filter","k","includes","optional","Metadata","constructor","describe","res","descriptor","getOwnPropertyDescriptor","value","constr","fromModel","VERSION","registerLibrary"],"mappings":"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"}
package/dist/as-zod.js ADDED
@@ -0,0 +1,2 @@
1
+ import{Metadata as e}from"@decaf-ts/decoration";import{ValidationKeys as r,ModelKeys as t,Model as o,DEFAULT_ERROR_MESSAGES as n,Primitives as c}from"@decaf-ts/decorator-validation";import{z as s,ZodAny as a}from"zod";import{Reflection as i}from"@decaf-ts/reflection";const u=[r.REQUIRED,r.TYPE,r.DATE,t.TYPE];function f(e,t=a){function n(e){switch(e.toLowerCase()){case c.STRING:return s.string();case c.NUMBER:return s.number();case c.BIGINT:return s.bigint();case c.BOOLEAN:return s.boolean();case r.DATE:return s.date();case Array.name.toLowerCase():return s.array(t);case Set.name.toLowerCase():{const e=s.set(t);return void 0===e.valueSchema&&Object.defineProperty(e,"valueSchema",{get:()=>e._def?.valueType,enumerable:!1,configurable:!0}),e}default:{const r=o.get(e);if(!r)throw Error("Unzodifiable type: "+e);try{return s.from(r)}catch(r){throw Error(`Failed to zodify model ${e}: ${r}`)}}}}let i;e="string"==typeof e?[e]:e;for(const r of e)i=i?i.or(n(r)):n(r);return i}function p(e,t,o){switch(t){case r.MIN:return e.min(o[r.MIN]);case r.MIN_LENGTH:return e.min(o[r.MIN_LENGTH]);case r.MAX:return e.max(o[r.MAX]);case r.MAX_LENGTH:return e.max(o[r.MAX_LENGTH]);case r.STEP:return e.multipleOf(o[r.STEP]);case r.PATTERN:case r.URL:case r.EMAIL:case r.PASSWORD:return e.regex(RegExp(o[r.PATTERN],"g"));case r.DATE:throw new TypeError("DATE validator cannot be applied as a refinement");default:return e}}function m(c){const m={},E=o.getAttributes(c);if(Array.isArray(E)&&!E.length)return s.object({});for(const o of E){if("function"==typeof c[o]||o.startsWith("_")||"constructor"===o)continue;const s=i.getPropertyDecorators(r.REFLECT,c,o,!1,!0).decorators.reduce((e,o)=>{const{key:c,props:s}=o;return c!==t.TYPE||e[r.TYPE]?e[c]=s:e[r.TYPE]={customTypes:[s.name],message:n.TYPE,description:"defines the accepted types for the attribute"},e},{});if(!Object.keys(s).length)continue;let E=a;const T=s[r.TYPE];if(!T)throw Error("Missing type information");E=f((Array.isArray(T.customTypes)?T.customTypes:[T.customTypes]).map(e=>"function"==typeof e?e():e),s[r.LIST]?f((Array.isArray(s[r.LIST].clazz)?s[r.LIST].clazz:[s[r.LIST].clazz]).map(e=>"function"==typeof e?e().name:e)):a);for(const[e,r]of Object.entries(s).filter(([e])=>{return r=e,!u.includes(r);var r}))E=p(E,e,r);s[r.REQUIRED]||(E=E.optional());const d=e.description(c.constructor,o);d&&(E=E.describe(d)),m[o]=E}const T=e.description(c.constructor),d=s.object(m);return T?d.describe(T):d}const E=Object.getOwnPropertyDescriptor(s,"from");E&&!E.configurable||Object.defineProperty(s,"from",{value:r=>{const t=new r;return e.constr(t.constructor)||o.fromModel(t,{}),m(t)}});const T="##VERSION##";e.registerLibrary("@decaf-ts/as-zod",T);export{T as VERSION,m as modelToZod,f as zodify,p as zodifyValidation};
2
+ //# sourceMappingURL=as-zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-zod.js","sources":["../src/overrides.ts","../src/index.ts"],"sourcesContent":[null,null],"names":["ReservedKeys","ValidationKeys","REQUIRED","TYPE","DATE","ModelKeys","zodify","type","zz","ZodAny","innerZodify","toLowerCase","Primitives","STRING","z","string","NUMBER","number","BIGINT","bigint","BOOLEAN","boolean","date","Array","name","array","Set","setSchema","set","valueSchema","Object","defineProperty","get","_def","valueType","enumerable","configurable","m","Model","Error","from","e","zod","t","or","zodifyValidation","values","MIN","min","MIN_LENGTH","MAX","max","MAX_LENGTH","STEP","multipleOf","PATTERN","URL","EMAIL","PASSWORD","regex","RegExp","TypeError","modelToZod","model","result","properties","getAttributes","isArray","length","object","prop","startsWith","decoratorData","Reflection","getPropertyDecorators","REFLECT","decorators","reduce","accum","el","key","props","customTypes","message","DEFAULT_ERROR_MESSAGES","description","keys","typeData","map","c","LIST","clazz","entries","filter","k","includes","optional","Metadata","constructor","describe","res","descriptor","getOwnPropertyDescriptor","value","constr","fromModel","VERSION","registerLibrary"],"mappings":"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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 = "1.0.1";
9
+ export declare const VERSION = "##VERSION##";
package/lib/esm/index.js CHANGED
@@ -7,6 +7,6 @@ export * from "./overrides.js";
7
7
  * @const VERSION
8
8
  * @memberOf module:as-zod
9
9
  */
10
- export const VERSION = "1.0.1";
10
+ export const VERSION = "##VERSION##";
11
11
  Metadata.registerLibrary("@decaf-ts/as-zod", VERSION);
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhELHlCQUFzQjtBQUN0QiwrQkFBNEI7QUFFNUI7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO0FBRXJDLFFBQVEsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi96b2RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIHJlZmxlY3Rpb24gcGFja2FnZVxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIG51bWJlciBvZiB0aGUgcGFja2FnZVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6YXMtem9kXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuXG5NZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoXCJAZGVjYWYtdHMvYXMtem9kXCIsIFZFUlNJT04pO1xuIl19
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,yBAAsB;AACtB,+BAA4B;AAE5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC"}
@@ -161,4 +161,4 @@ if (!descriptor || descriptor.configurable) {
161
161
  },
162
162
  });
163
163
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFFVCxVQUFVLEVBQ1Ysc0JBQXNCLEdBVXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFaEUsTUFBTSxZQUFZLEdBQUc7SUFDbkIsY0FBYyxDQUFDLFFBQVE7SUFDdkIsY0FBYyxDQUFDLElBQUk7SUFDbkIsY0FBYyxDQUFDLElBQUk7SUFDbkIsU0FBUyxDQUFDLElBQUk7Q0FDTixDQUFDO0FBRVgsU0FBUyxhQUFhLENBQUMsRUFBVTtJQUMvQixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBUyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBdUIsRUFBRSxLQUFVLE1BQU07SUFDOUQsSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWhELFNBQVMsV0FBVyxDQUFDLElBQVk7UUFDL0IsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUMzQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixL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O0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZGVsLFxuICBNb2RlbEtleXMsXG4gIFR5cGVNZXRhZGF0YSxcbiAgUHJpbWl0aXZlcyxcbiAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyxcbiAgVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWluVmFsaWRhdG9yT3B0aW9ucyxcbiAgTWF4VmFsaWRhdG9yT3B0aW9ucyxcbiAgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyxcbiAgU3RlcFZhbGlkYXRvck9wdGlvbnMsXG4gIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zLFxuICBMaXN0TWV0YWRhdGEsXG4gIENvbnN0cnVjdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgeiwgWm9kQW55IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgUmVmbGVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmNvbnN0IFJlc2VydmVkS2V5cyA9IFtcbiAgVmFsaWRhdGlvbktleXMuUkVRVUlSRUQsXG4gIFZhbGlkYXRpb25LZXlzLlRZUEUsXG4gIFZhbGlkYXRpb25LZXlzLkRBVEUsXG4gIE1vZGVsS2V5cy5UWVBFLFxuXSBhcyBjb25zdDtcblxuZnVuY3Rpb24gaXNSZXNlcnZlZEtleShlbDogc3RyaW5nKSB7XG4gIHJldHVybiBSZXNlcnZlZEtleXMuaW5jbHVkZXMoZWwgYXMgYW55KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHpvZGlmeSh0eXBlOiBzdHJpbmcgfCBzdHJpbmdbXSwgeno6IGFueSA9IFpvZEFueSkge1xuICB0eXBlID0gdHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIgPyBbdHlwZV0gOiB0eXBlO1xuXG4gIGZ1bmN0aW9uIGlubmVyWm9kaWZ5KHR5cGU6IHN0cmluZykge1xuICAgIHN3aXRjaCAodHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuU1RSSU5HOlxuICAgICAgICByZXR1cm4gei5zdHJpbmcoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5OVU1CRVI6XG4gICAgICAgIHJldHVybiB6Lm51bWJlcigpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLkJJR0lOVDpcbiAgICAgICAgcmV0dXJuIHouYmlnaW50KCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQk9PTEVBTjpcbiAgICAgICAgcmV0dXJuIHouYm9vbGVhbigpO1xuICAgICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5EQVRFOlxuICAgICAgICByZXR1cm4gei5kYXRlKCk7XG4gICAgICBjYXNlIEFycmF5Lm5hbWUudG9Mb3dlckNhc2UoKTpcbiAgICAgICAgcmV0dXJuIHouYXJyYXkoenopO1xuICAgICAgY2FzZSBTZXQubmFtZS50b0xvd2VyQ2FzZSgpOiB7XG4gICAgICAgIGNvbnN0IHNldFNjaGVtYSA9IHouc2V0KHp6KTtcbiAgICAgICAgaWYgKHR5cGVvZiAoc2V0U2NoZW1hIGFzIGFueSkudmFsdWVTY2hlbWEgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2V0U2NoZW1hLCBcInZhbHVlU2NoZW1hXCIsIHtcbiAgICAgICAgICAgIGdldDogKCkgPT4gKHNldFNjaGVtYSBhcyBhbnkpLl9kZWY/LnZhbHVlVHlwZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXRTY2hlbWE7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IG0gPSBNb2RlbC5nZXQodHlwZSk7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW56b2RpZmlhYmxlIHR5cGU6ICR7dHlwZX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHp6ID0gei5mcm9tKG0pO1xuICAgICAgICAgIHJldHVybiB6ejtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHpvZGlmeSBtb2RlbCAke3R5cGV9OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgem9kOiBhbnk7XG4gIGZvciAoY29uc3QgdCBvZiB0eXBlKSB7XG4gICAgem9kID0gem9kID8gem9kLm9yKGlubmVyWm9kaWZ5KHQpKSA6IGlubmVyWm9kaWZ5KHQpO1xuICB9XG5cbiAgcmV0dXJuIHpvZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHpvZGlmeVZhbGlkYXRpb24oXG4gIHpvZDogYW55LFxuICB0eXBlOiBzdHJpbmcsXG4gIHZhbHVlczogVmFsaWRhdG9yT3B0aW9uc1xuKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOOlxuICAgICAgcmV0dXJuIHpvZC5taW4oKHZhbHVlcyBhcyBNaW5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NSU5dKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1pbihcbiAgICAgICAgKHZhbHVlcyBhcyBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWDpcbiAgICAgIHJldHVybiB6b2QubWF4KCh2YWx1ZXMgYXMgTWF4VmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUFYXSk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoXG4gICAgICAgICh2YWx1ZXMgYXMgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucylbVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSF1cbiAgICAgICk7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5TVEVQOlxuICAgICAgcmV0dXJuIHpvZC5tdWx0aXBsZU9mKFxuICAgICAgICAodmFsdWVzIGFzIFN0ZXBWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5TVEVQXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlBBVFRFUk46XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5VUkw6XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5FTUFJTDpcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlBBU1NXT1JEOlxuICAgICAgcmV0dXJuIHpvZC5yZWdleChcbiAgICAgICAgbmV3IFJlZ0V4cChcbiAgICAgICAgICAodmFsdWVzIGFzIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXSBhcyBzdHJpbmcsXG4gICAgICAgICAgXCJnXCJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICAvLyBEQVRFIGRlY29yYXRvciBpcyBoYW5kbGVkIHZpYSBAdHlwZShEYXRlKSBhbmQgcGFyc2luZzsgZG8gbm90IHJlLXdyYXAgaGVyZVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRBVEUgdmFsaWRhdG9yIGNhbm5vdCBiZSBhcHBsaWVkIGFzIGEgcmVmaW5lbWVudFwiKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHpvZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxUb1pvZDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBNKSB7XG4gIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGNvbnN0IHByb3BlcnRpZXMgPSBNb2RlbC5nZXRBdHRyaWJ1dGVzKG1vZGVsKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcykgJiYgIXByb3BlcnRpZXMubGVuZ3RoKSByZXR1cm4gei5vYmplY3Qoe30pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiAobW9kZWwgYXMgYW55KVtwcm9wXSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLnN0YXJ0c1dpdGgoXCJfXCIpIHx8XG4gICAgICBwcm9wID09PSBcImNvbnN0cnVjdG9yXCJcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbERlY3MgPSBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICBtb2RlbCxcbiAgICAgIHByb3AsXG4gICAgICBmYWxzZSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgY29uc3QgZGVjb3JhdG9yRGF0YSA9IGFsbERlY3MuZGVjb3JhdG9ycy5yZWR1Y2UoXG4gICAgICAoYWNjdW06IFJlY29yZDxzdHJpbmcsIGFueT4sIGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBwcm9wcyB9ID0gZWw7XG4gICAgICAgIGlmIChrZXkgPT09IE1vZGVsS2V5cy5UWVBFICYmICFhY2N1bVtWYWxpZGF0aW9uS2V5cy5UWVBFXSkge1xuICAgICAgICAgIGFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdID0ge1xuICAgICAgICAgICAgY3VzdG9tVHlwZXM6IFtwcm9wcy5uYW1lIGFzIHN0cmluZ10sXG4gICAgICAgICAgICBtZXNzYWdlOiBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRZUEUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJkZWZpbmVzIHRoZSBhY2NlcHRlZCB0eXBlcyBmb3IgdGhlIGF0dHJpYnV0ZVwiLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjdW1ba2V5XSA9IHByb3BzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBpZiAoIU9iamVjdC5rZXlzKGRlY29yYXRvckRhdGEpLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbGV0IHpvZDogYW55ID0gWm9kQW55O1xuXG4gICAgY29uc3QgdHlwZURhdGE6IFR5cGVNZXRhZGF0YSA9IGRlY29yYXRvckRhdGFbXG4gICAgICBWYWxpZGF0aW9uS2V5cy5UWVBFXG4gICAgXSBhcyBUeXBlTWV0YWRhdGE7XG5cbiAgICBpZiAoIXR5cGVEYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgdHlwZSBpbmZvcm1hdGlvbmApO1xuICAgIH1cblxuICAgIHpvZCA9IHpvZGlmeShcbiAgICAgIChBcnJheS5pc0FycmF5KHR5cGVEYXRhLmN1c3RvbVR5cGVzKVxuICAgICAgICA/IHR5cGVEYXRhLmN1c3RvbVR5cGVzXG4gICAgICAgIDogW3R5cGVEYXRhLmN1c3RvbVR5cGVzXVxuICAgICAgKS5tYXAoKGMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBjKCk7XG4gICAgICAgIHJldHVybiBjO1xuICAgICAgfSksXG4gICAgICBkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdXG4gICAgICAgID8gem9kaWZ5KFxuICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkoXG4gICAgICAgICAgICAgIChkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenpcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPyAoZGVjb3JhdG9yRGF0YVtWYWxpZGF0aW9uS2V5cy5MSVNUXSBhcyBMaXN0TWV0YWRhdGEpLmNsYXp6XG4gICAgICAgICAgICAgIDogWyhkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenpdXG4gICAgICAgICAgICApLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjKCkubmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYyBhcyBzdHJpbmc7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgOiBab2RBbnlcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBwcm9wc10gb2YgT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9yRGF0YSkuZmlsdGVyKFxuICAgICAgKFtrXSkgPT4gIWlzUmVzZXJ2ZWRLZXkoaylcbiAgICApKSB7XG4gICAgICB6b2QgPSB6b2RpZnlWYWxpZGF0aW9uKHpvZCwga2V5LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKCFkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLlJFUVVJUkVEXSkge1xuICAgICAgem9kID0gem9kLm9wdGlvbmFsKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBNZXRhZGF0YS5kZXNjcmlwdGlvbihcbiAgICAgIG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSxcbiAgICAgIHByb3AgYXMgYW55XG4gICAgKTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgem9kID0gem9kLmRlc2NyaWJlKGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXN1bHRbcHJvcF0gPSB6b2Q7XG4gIH1cblxuICBjb25zdCBkZXNjcmlwdGlvbiA9IE1ldGFkYXRhLmRlc2NyaXB0aW9uKG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSk7XG4gIGNvbnN0IHJlcyA9IHoub2JqZWN0KHJlc3VsdCk7XG4gIHJldHVybiBkZXNjcmlwdGlvbiA/IHJlcy5kZXNjcmliZShkZXNjcmlwdGlvbikgOiByZXM7XG59XG5cbmNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHosIFwiZnJvbVwiIGFzIGtleW9mIHR5cGVvZiB6KTtcblxuaWYgKCFkZXNjcmlwdG9yIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LCBcImZyb21cIiwge1xuICAgIHZhbHVlOiA8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pID0+IHtcbiAgICAgIGNvbnN0IG0gPSBuZXcgbW9kZWwoKTtcbiAgICAgIGlmICghTWV0YWRhdGEuY29uc3RyKG0uY29uc3RydWN0b3IgYXMgYW55KSkgTW9kZWwuZnJvbU1vZGVsKG0sIHt9KTtcbiAgICAgIHJldHVybiBtb2RlbFRvWm9kKG0pIGFzIGFueTtcbiAgICB9LFxuICB9KTtcbn1cbiJdfQ==
164
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,SAAS,EAET,UAAU,EACV,sBAAsB,GAUvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,YAAY,GAAG;IACnB,cAAc,CAAC,QAAQ;IACvB,cAAc,CAAC,IAAI;IACnB,cAAc,CAAC,IAAI;IACnB,SAAS,CAAC,IAAI;CACN,CAAC;AAEX,SAAS,aAAa,CAAC,EAAU;IAC/B,OAAO,YAAY,CAAC,QAAQ,CAAC,EAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAuB,EAAE,KAAU,MAAM;IAC9D,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhD,SAAS,WAAW,CAAC,IAAY;QAC/B,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,cAAc,CAAC,IAAI;gBACtB,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3B,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrB,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,OAAQ,SAAiB,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;oBAC1D,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE;wBAC9C,GAAG,EAAE,GAAG,EAAE,CAAE,SAAiB,CAAC,IAAI,EAAE,SAAS;wBAC7C,UAAU,EAAE,KAAK;wBACjB,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,GAAQ,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,IAAY,EACZ,MAAwB;IAExB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,GAAG;YACrB,OAAO,GAAG,CAAC,GAAG,CAAE,MAA8B,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,KAAK,cAAc,CAAC,UAAU;YAC5B,OAAO,GAAG,CAAC,GAAG,CACX,MAAoC,CAAC,cAAc,CAAC,UAAU,CAAC,CACjE,CAAC;QACJ,KAAK,cAAc,CAAC,GAAG;YACrB,OAAO,GAAG,CAAC,GAAG,CAAE,MAA8B,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,KAAK,cAAc,CAAC,UAAU;YAC5B,OAAO,GAAG,CAAC,GAAG,CACX,MAAoC,CAAC,cAAc,CAAC,UAAU,CAAC,CACjE,CAAC;QACJ,KAAK,cAAc,CAAC,IAAI;YACtB,OAAO,GAAG,CAAC,UAAU,CAClB,MAA+B,CAAC,cAAc,CAAC,IAAI,CAAC,CACtD,CAAC;QACJ,KAAK,cAAc,CAAC,OAAO,CAAC;QAC5B,KAAK,cAAc,CAAC,GAAG,CAAC;QACxB,KAAK,cAAc,CAAC,KAAK,CAAC;QAC1B,KAAK,cAAc,CAAC,QAAQ;YAC1B,OAAO,GAAG,CAAC,KAAK,CACd,IAAI,MAAM,CACP,MAAkC,CAAC,cAAc,CAAC,OAAO,CAAW,EACrE,GAAG,CACJ,CACF,CAAC;QACJ,KAAK,cAAc,CAAC,IAAI;YACtB,6EAA6E;YAC7E,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC1E;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAkB,KAAQ;IAClD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IACE,OAAQ,KAAa,CAAC,IAAI,CAAC,KAAK,UAAU;YAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACpB,IAAI,KAAK,aAAa,EACtB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAC9C,cAAc,CAAC,OAAO,EACtB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,CACL,CAAC;QAEF,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAC7C,CAAC,KAA0B,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAC1B,IAAI,GAAG,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG;oBAC3B,WAAW,EAAE,CAAC,KAAK,CAAC,IAAc,CAAC;oBACnC,OAAO,EAAE,sBAAsB,CAAC,IAAI;oBACpC,WAAW,EAAE,8CAA8C;iBAC5D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,EACD,EAAE,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QAED,IAAI,GAAG,GAAQ,MAAM,CAAC;QAEtB,MAAM,QAAQ,GAAiB,aAAa,CAC1C,cAAc,CAAC,IAAI,CACJ,CAAC;QAElB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,GAAG,GAAG,MAAM,CACV,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,CAAC,CAAC,QAAQ,CAAC,WAAW;YACtB,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CACzB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,KAAK,UAAU;gBAAE,OAAO,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,EACF,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,MAAM,CACJ,CAAC,KAAK,CAAC,OAAO,CACX,aAAa,CAAC,cAAc,CAAC,IAAI,CAAkB,CAAC,KAAK,CAC3D;gBACC,CAAC,CAAE,aAAa,CAAC,cAAc,CAAC,IAAI,CAAkB,CAAC,KAAK;gBAC5D,CAAC,CAAC,CAAE,aAAa,CAAC,cAAc,CAAC,IAAI,CAAkB,CAAC,KAAK,CAAC,CAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;oBAC5B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAW,CAAC;YACrB,CAAC,CAAC,CACH;YACH,CAAC,CAAC,MAAM,CACX,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAC3B,EAAE,CAAC;YACF,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CACtC,KAAK,CAAC,WAAkB,EACxB,IAAW,CACZ,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,WAAkB,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAwB,CAAC,CAAC;AAEhF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;IAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE;QAC/B,KAAK,EAAE,CAAkB,KAAqB,EAAE,EAAE;YAChD,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,WAAkB,CAAC;gBAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnE,OAAO,UAAU,CAAC,CAAC,CAAQ,CAAC;QAC9B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/lib/esm/zod.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFpvZEFycmF5LFxuICBab2RCaWdJbnQsXG4gIFpvZEJvb2xlYW4sXG4gIFpvZERhdGUsXG4gIFpvZE51bGxhYmxlLFxuICBab2ROdW1iZXIsXG4gIFpvZE9iamVjdCxcbiAgWm9kT3B0aW9uYWwsXG4gIFpvZFNldCxcbiAgWm9kU3RyaW5nLFxuICBab2RUeXBlQW55LFxufSBmcm9tIFwiem9kXCI7XG5cbi8vIEJhc2UgbWFwcGluZyAobm9uLW9wdGlvbmFsLCBub24tbnVsbGFibGUpIGZyb20gcHJvcGVydHkgdHlwZXMgdG8gWm9kIHNjaGVtYSB0eXBlc1xuLy8gS2VlcCByZWN1cnNpb24gc2hhbGxvdyBieSB1c2luZyBab2RUeXBlQW55IGZvciBuZXN0ZWQgY29sbGVjdGlvbnMvbW9kZWxzXG50eXBlIEJhc2Vab2RTY2hlbWFGb3I8VD4gPVxuICAvLyBwcmltaXRpdmVzXG4gIFQgZXh0ZW5kcyBzdHJpbmdcbiAgICA/IFpvZFN0cmluZ1xuICAgIDogVCBleHRlbmRzIG51bWJlclxuICAgICAgPyBab2ROdW1iZXJcbiAgICAgIDogVCBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyBab2RCb29sZWFuXG4gICAgICAgIDogVCBleHRlbmRzIGJpZ2ludFxuICAgICAgICAgID8gWm9kQmlnSW50XG4gICAgICAgICAgOiBUIGV4dGVuZHMgRGF0ZVxuICAgICAgICAgICAgPyBab2REYXRlXG4gICAgICAgICAgICA6IC8vIGNvbGxlY3Rpb25zICh1c2UgYW55IHRvIGF2b2lkIGRlZXAgcmVjdXJzaW9uKVxuICAgICAgICAgICAgICBUIGV4dGVuZHMgYW55W11cbiAgICAgICAgICAgICAgPyBab2RBcnJheTxab2RUeXBlQW55PlxuICAgICAgICAgICAgICA6IFQgZXh0ZW5kcyBTZXQ8YW55PlxuICAgICAgICAgICAgICAgID8gWm9kU2V0PFpvZFR5cGVBbnk+XG4gICAgICAgICAgICAgICAgOiAvLyBuZXN0ZWQgbW9kZWxzIChvYmplY3Qgc2hhcGUgYXMgYW55KVxuICAgICAgICAgICAgICAgICAgVCBleHRlbmRzIE1vZGVsXG4gICAgICAgICAgICAgICAgICA/IFpvZE9iamVjdDxhbnk+XG4gICAgICAgICAgICAgICAgICA6IC8vIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIFpvZFR5cGVBbnk7XG5cbi8vIEhhbmRsZSBudWxsIGFuZCB1bmRlZmluZWQgdG8gcmVmbGVjdCBvcHRpb25hbC9udWxsYWJsZSBzY2hlbWFzXG5leHBvcnQgdHlwZSBab2RTY2hlbWFGb3I8VD4gPSB1bmRlZmluZWQgZXh0ZW5kcyBUXG4gID8gWm9kT3B0aW9uYWw8QmFzZVpvZFNjaGVtYUZvcjxFeGNsdWRlPFQsIHVuZGVmaW5lZD4+PlxuICA6IG51bGwgZXh0ZW5kcyBUXG4gICAgPyBab2ROdWxsYWJsZTxCYXNlWm9kU2NoZW1hRm9yPE5vbk51bGxhYmxlPFQ+Pj5cbiAgICA6IEJhc2Vab2RTY2hlbWFGb3I8VD47XG5cbi8vIERlcml2ZSBhIFpvZCBvYmplY3Qgc2hhcGUgZnJvbSBhIE1vZGVsIGluc3RhbmNlIHR5cGVcbmV4cG9ydCB0eXBlIFpvZFNoYXBlRm9yPE0+ID0ge1xuICAvLyBkcm9wIGZ1bmN0aW9uIG1lbWJlcnMgZnJvbSB0aGUgc2hhcGVcbiAgW0sgaW4ga2V5b2YgTSBhcyBNW0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnlcbiAgICA/IG5ldmVyXG4gICAgOiBLXTogWm9kU2NoZW1hRm9yPE1bS10+O1xufTtcblxuLy8gUHVibGljIGhlbHBlciBmb3IgdGhlIGluZmVycmVkIFpvZCBvYmplY3QgdHlwZSBmb3IgYSBNb2RlbCBjb25zdHJ1Y3RvclxuZXhwb3J0IHR5cGUgWm9kRnJvbTxNIGV4dGVuZHMgTW9kZWw+ID0gWm9kT2JqZWN0PFpvZFNoYXBlRm9yPE0+PjtcblxuLy8gVXRpbGl0eSBoZWxwZXJzIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSBlbGVtZW50IHR5cGVzIGZvciBjb2xsZWN0aW9ucyBpbiBUU1xuZXhwb3J0IHR5cGUgTGlzdE9mPFQ+ID0gVFtdO1xuZXhwb3J0IHR5cGUgU2V0T2Y8VD4gPSBTZXQ8VD47XG5cbmRlY2xhcmUgbW9kdWxlIFwiem9kXCIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBuYW1lc3BhY2UgeiB7XG4gICAgZnVuY3Rpb24gZnJvbTxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPik6IFpvZEZyb208TT47XG4gIH1cbn1cbiJdfQ==
2
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/zod.ts"],"names":[],"mappings":""}
package/lib/index.cjs CHANGED
@@ -24,6 +24,6 @@ __exportStar(require("./overrides.cjs"), exports);
24
24
  * @const VERSION
25
25
  * @memberOf module:as-zod
26
26
  */
27
- exports.VERSION = "1.0.1";
27
+ exports.VERSION = "##VERSION##";
28
28
  decoration_1.Metadata.registerLibrary("@decaf-ts/as-zod", exports.VERSION);
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBZ0Q7QUFFaEQsNENBQXNCO0FBQ3RCLGtEQUE0QjtBQUU1Qjs7Ozs7R0FLRztBQUNVLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUVyQyxxQkFBUSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3pvZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3ZlcnJpZGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgcmVmbGVjdGlvbiBwYWNrYWdlXG4gKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBwYWNrYWdlXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTphcy16b2RcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG5cbk1ldGFkYXRhLnJlZ2lzdGVyTGlicmFyeShcIkBkZWNhZi10cy9hcy16b2RcIiwgVkVSU0lPTik7XG4iXX0=
29
+ //# sourceMappingURL=index.js.map
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 = "1.0.1";
9
+ export declare const VERSION = "##VERSION##";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAgD;AAEhD,4CAAsB;AACtB,kDAA4B;AAE5B;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AAErC,qBAAQ,CAAC,eAAe,CAAC,kBAAkB,EAAE,eAAO,CAAC,CAAC"}
package/lib/overrides.cjs CHANGED
@@ -166,4 +166,4 @@ if (!descriptor || descriptor.configurable) {
166
166
  },
167
167
  });
168
168
  }
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL292ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdDQSx3QkFpREM7QUFFRCw0Q0FzQ0M7QUFFRCxnQ0F1R0M7QUFsT0QseUVBZXdDO0FBQ3hDLHFEQUFnRDtBQUNoRCw2QkFBZ0M7QUFDaEMscURBQWtEO0FBQ2xELHlFQUFnRTtBQUVoRSxNQUFNLFlBQVksR0FBRztJQUNuQixxQ0FBYyxDQUFDLFFBQVE7SUFDdkIscUNBQWMsQ0FBQyxJQUFJO0lBQ25CLHFDQUFjLENBQUMsSUFBSTtJQUNuQixnQ0FBUyxDQUFDLElBQUk7Q0FDTixDQUFDO0FBRVgsU0FBUyxhQUFhLENBQUMsRUFBVTtJQUMvQixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBUyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxJQUF1QixFQUFFLEtBQVUsWUFBTTtJQUM5RCxJQUFJLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFaEQsU0FBUyxXQUFXLENBQUMsSUFBWTtRQUMvQixRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQzNCLEtBQUssaUNBQVUsQ0FBQyxNQUFNO2dCQUNwQixPQUFPLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLGlDQUFVLENBQUMsTUFBTTtnQkFDcEIsT0FBTyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsS0FBSyxpQ0FBVSxDQUFDLE1BQU07Z0JBQ3BCLE9BQU8sT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLEtBQUssaUNBQVUsQ0FBQyxPQUFPO2dCQUNyQixPQUFPLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixLQUFLLHFDQUFjLENBQUMsSUFBSTtnQkFD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QUM7UUFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxxQkFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBa0IsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sR0FBRyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE9BQUMsRUFBRSxNQUF3QixDQUFDLENBQUM7QUFFaEYsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFDLEVBQUUsTUFBTSxFQUFFO1FBQy9CLEtBQUssRUFBRSxDQUFrQixLQUFxQixFQUFFLEVBQUU7WUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMscUJBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQWtCLENBQUM7Z0JBQUUsNEJBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBUSxDQUFDO1FBQzlCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgVHlwZU1ldGFkYXRhLFxuICBQcmltaXRpdmVzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5WYWxpZGF0b3JPcHRpb25zLFxuICBNYXhWYWxpZGF0b3JPcHRpb25zLFxuICBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBTdGVwVmFsaWRhdG9yT3B0aW9ucyxcbiAgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMsXG4gIExpc3RNZXRhZGF0YSxcbiAgQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB6LCBab2RBbnkgfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuY29uc3QgUmVzZXJ2ZWRLZXlzID0gW1xuICBWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCxcbiAgVmFsaWRhdGlvbktleXMuVFlQRSxcbiAgVmFsaWRhdGlvbktleXMuREFURSxcbiAgTW9kZWxLZXlzLlRZUEUsXG5dIGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBpc1Jlc2VydmVkS2V5KGVsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlc2VydmVkS2V5cy5pbmNsdWRlcyhlbCBhcyBhbnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5KHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdLCB6ejogYW55ID0gWm9kQW55KSB7XG4gIHR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IFt0eXBlXSA6IHR5cGU7XG5cbiAgZnVuY3Rpb24gaW5uZXJab2RpZnkodHlwZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5TVFJJTkc6XG4gICAgICAgIHJldHVybiB6LnN0cmluZygpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLk5VTUJFUjpcbiAgICAgICAgcmV0dXJuIHoubnVtYmVyKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQklHSU5UOlxuICAgICAgICByZXR1cm4gei5iaWdpbnQoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CT09MRUFOOlxuICAgICAgICByZXR1cm4gei5ib29sZWFuKCk7XG4gICAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICAgIHJldHVybiB6LmRhdGUoKTtcbiAgICAgIGNhc2UgQXJyYXkubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICByZXR1cm4gei5hcnJheSh6eik7XG4gICAgICBjYXNlIFNldC5uYW1lLnRvTG93ZXJDYXNlKCk6IHtcbiAgICAgICAgY29uc3Qgc2V0U2NoZW1hID0gei5zZXQoenopO1xuICAgICAgICBpZiAodHlwZW9mIChzZXRTY2hlbWEgYXMgYW55KS52YWx1ZVNjaGVtYSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXRTY2hlbWEsIFwidmFsdWVTY2hlbWFcIiwge1xuICAgICAgICAgICAgZ2V0OiAoKSA9PiAoc2V0U2NoZW1hIGFzIGFueSkuX2RlZj8udmFsdWVUeXBlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNldFNjaGVtYTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbSA9IE1vZGVsLmdldCh0eXBlKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnpvZGlmaWFibGUgdHlwZTogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgenogPSB6LmZyb20obSk7XG4gICAgICAgICAgcmV0dXJuIHp6O1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gem9kaWZ5IG1vZGVsICR7dHlwZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCB6b2Q6IGFueTtcbiAgZm9yIChjb25zdCB0IG9mIHR5cGUpIHtcbiAgICB6b2QgPSB6b2QgPyB6b2Qub3IoaW5uZXJab2RpZnkodCkpIDogaW5uZXJab2RpZnkodCk7XG4gIH1cblxuICByZXR1cm4gem9kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5VmFsaWRhdGlvbihcbiAgem9kOiBhbnksXG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWVzOiBWYWxpZGF0b3JPcHRpb25zXG4pIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU46XG4gICAgICByZXR1cm4gem9kLm1pbigodmFsdWVzIGFzIE1pblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWluKFxuICAgICAgICAodmFsdWVzIGFzIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoKHZhbHVlcyBhcyBNYXhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhdKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1heChcbiAgICAgICAgKHZhbHVlcyBhcyBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlNURVA6XG4gICAgICByZXR1cm4gem9kLm11bHRpcGxlT2YoXG4gICAgICAgICh2YWx1ZXMgYXMgU3RlcFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlNURVBdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlVSTDpcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkVNQUlMOlxuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFTU1dPUkQ6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICBuZXcgUmVnRXhwKFxuICAgICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dIGFzIHN0cmluZyxcbiAgICAgICAgICBcImdcIlxuICAgICAgICApXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgIC8vIERBVEUgZGVjb3JhdG9yIGlzIGhhbmRsZWQgdmlhIEB0eXBlKERhdGUpIGFuZCBwYXJzaW5nOyBkbyBub3QgcmUtd3JhcCBoZXJlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiREFURSB2YWxpZGF0b3IgY2Fubm90IGJlIGFwcGxpZWQgYXMgYSByZWZpbmVtZW50XCIpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gem9kO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFRvWm9kPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0pIHtcbiAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3QgcHJvcGVydGllcyA9IE1vZGVsLmdldEF0dHJpYnV0ZXMobW9kZWwpO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSAmJiAhcHJvcGVydGllcy5sZW5ndGgpIHJldHVybiB6Lm9iamVjdCh7fSk7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIChtb2RlbCBhcyBhbnkpW3Byb3BdID09PSBcImZ1bmN0aW9uXCIgfHxcbiAgICAgIHByb3Auc3RhcnRzV2l0aChcIl9cIikgfHxcbiAgICAgIHByb3AgPT09IFwiY29uc3RydWN0b3JcIlxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsRGVjcyA9IFJlZmxlY3Rpb24uZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIG1vZGVsLFxuICAgICAgcHJvcCxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNvcmF0b3JEYXRhID0gYWxsRGVjcy5kZWNvcmF0b3JzLnJlZHVjZShcbiAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgZWwpID0+IHtcbiAgICAgICAgY29uc3QgeyBrZXksIHByb3BzIH0gPSBlbDtcbiAgICAgICAgaWYgKGtleSA9PT0gTW9kZWxLZXlzLlRZUEUgJiYgIWFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdKSB7XG4gICAgICAgICAgYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0gPSB7XG4gICAgICAgICAgICBjdXN0b21UeXBlczogW3Byb3BzLm5hbWUgYXMgc3RyaW5nXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcImRlZmluZXMgdGhlIGFjY2VwdGVkIHR5cGVzIGZvciB0aGUgYXR0cmlidXRlXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2N1bVtrZXldID0gcHJvcHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoZGVjb3JhdG9yRGF0YSkubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsZXQgem9kOiBhbnkgPSBab2RBbnk7XG5cbiAgICBjb25zdCB0eXBlRGF0YTogVHlwZU1ldGFkYXRhID0gZGVjb3JhdG9yRGF0YVtcbiAgICAgIFZhbGlkYXRpb25LZXlzLlRZUEVcbiAgICBdIGFzIFR5cGVNZXRhZGF0YTtcblxuICAgIGlmICghdHlwZURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB0eXBlIGluZm9ybWF0aW9uYCk7XG4gICAgfVxuXG4gICAgem9kID0gem9kaWZ5KFxuICAgICAgKEFycmF5LmlzQXJyYXkodHlwZURhdGEuY3VzdG9tVHlwZXMpXG4gICAgICAgID8gdHlwZURhdGEuY3VzdG9tVHlwZXNcbiAgICAgICAgOiBbdHlwZURhdGEuY3VzdG9tVHlwZXNdXG4gICAgICApLm1hcCgoYykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGMgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGMoKTtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KSxcbiAgICAgIGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF1cbiAgICAgICAgPyB6b2RpZnkoXG4gICAgICAgICAgICAoQXJyYXkuaXNBcnJheShcbiAgICAgICAgICAgICAgKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6elxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA/IChkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenpcbiAgICAgICAgICAgICAgOiBbKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6el1cbiAgICAgICAgICAgICkubWFwKChjKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGMoKS5uYW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjIGFzIHN0cmluZztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICA6IFpvZEFueVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhkZWNvcmF0b3JEYXRhKS5maWx0ZXIoXG4gICAgICAoW2tdKSA9PiAhaXNSZXNlcnZlZEtleShrKVxuICAgICkpIHtcbiAgICAgIHpvZCA9IHpvZGlmeVZhbGlkYXRpb24oem9kLCBrZXksIHByb3BzKTtcbiAgICB9XG5cbiAgICBpZiAoIWRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuUkVRVUlSRURdKSB7XG4gICAgICB6b2QgPSB6b2Qub3B0aW9uYWwoKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IE1ldGFkYXRhLmRlc2NyaXB0aW9uKFxuICAgICAgbW9kZWwuY29uc3RydWN0b3IgYXMgYW55LFxuICAgICAgcHJvcCBhcyBhbnlcbiAgICApO1xuXG4gICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICB6b2QgPSB6b2QuZGVzY3JpYmUoZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHJlc3VsdFtwcm9wXSA9IHpvZDtcbiAgfVxuXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gTWV0YWRhdGEuZGVzY3JpcHRpb24obW9kZWwuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgY29uc3QgcmVzID0gei5vYmplY3QocmVzdWx0KTtcbiAgcmV0dXJuIGRlc2NyaXB0aW9uID8gcmVzLmRlc2NyaWJlKGRlc2NyaXB0aW9uKSA6IHJlcztcbn1cblxuY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeiwgXCJmcm9tXCIgYXMga2V5b2YgdHlwZW9mIHopO1xuXG5pZiAoIWRlc2NyaXB0b3IgfHwgZGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHosIFwiZnJvbVwiLCB7XG4gICAgdmFsdWU6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4ge1xuICAgICAgY29uc3QgbSA9IG5ldyBtb2RlbCgpO1xuICAgICAgaWYgKCFNZXRhZGF0YS5jb25zdHIobS5jb25zdHJ1Y3RvciBhcyBhbnkpKSBNb2RlbC5mcm9tTW9kZWwobSwge30pO1xuICAgICAgcmV0dXJuIG1vZGVsVG9ab2QobSkgYXMgYW55O1xuICAgIH0sXG4gIH0pO1xufVxuIl19
169
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../src/overrides.ts"],"names":[],"mappings":"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"}
package/lib/zod.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3pvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFpvZEFycmF5LFxuICBab2RCaWdJbnQsXG4gIFpvZEJvb2xlYW4sXG4gIFpvZERhdGUsXG4gIFpvZE51bGxhYmxlLFxuICBab2ROdW1iZXIsXG4gIFpvZE9iamVjdCxcbiAgWm9kT3B0aW9uYWwsXG4gIFpvZFNldCxcbiAgWm9kU3RyaW5nLFxuICBab2RUeXBlQW55LFxufSBmcm9tIFwiem9kXCI7XG5cbi8vIEJhc2UgbWFwcGluZyAobm9uLW9wdGlvbmFsLCBub24tbnVsbGFibGUpIGZyb20gcHJvcGVydHkgdHlwZXMgdG8gWm9kIHNjaGVtYSB0eXBlc1xuLy8gS2VlcCByZWN1cnNpb24gc2hhbGxvdyBieSB1c2luZyBab2RUeXBlQW55IGZvciBuZXN0ZWQgY29sbGVjdGlvbnMvbW9kZWxzXG50eXBlIEJhc2Vab2RTY2hlbWFGb3I8VD4gPVxuICAvLyBwcmltaXRpdmVzXG4gIFQgZXh0ZW5kcyBzdHJpbmdcbiAgICA/IFpvZFN0cmluZ1xuICAgIDogVCBleHRlbmRzIG51bWJlclxuICAgICAgPyBab2ROdW1iZXJcbiAgICAgIDogVCBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyBab2RCb29sZWFuXG4gICAgICAgIDogVCBleHRlbmRzIGJpZ2ludFxuICAgICAgICAgID8gWm9kQmlnSW50XG4gICAgICAgICAgOiBUIGV4dGVuZHMgRGF0ZVxuICAgICAgICAgICAgPyBab2REYXRlXG4gICAgICAgICAgICA6IC8vIGNvbGxlY3Rpb25zICh1c2UgYW55IHRvIGF2b2lkIGRlZXAgcmVjdXJzaW9uKVxuICAgICAgICAgICAgICBUIGV4dGVuZHMgYW55W11cbiAgICAgICAgICAgICAgPyBab2RBcnJheTxab2RUeXBlQW55PlxuICAgICAgICAgICAgICA6IFQgZXh0ZW5kcyBTZXQ8YW55PlxuICAgICAgICAgICAgICAgID8gWm9kU2V0PFpvZFR5cGVBbnk+XG4gICAgICAgICAgICAgICAgOiAvLyBuZXN0ZWQgbW9kZWxzIChvYmplY3Qgc2hhcGUgYXMgYW55KVxuICAgICAgICAgICAgICAgICAgVCBleHRlbmRzIE1vZGVsXG4gICAgICAgICAgICAgICAgICA/IFpvZE9iamVjdDxhbnk+XG4gICAgICAgICAgICAgICAgICA6IC8vIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIFpvZFR5cGVBbnk7XG5cbi8vIEhhbmRsZSBudWxsIGFuZCB1bmRlZmluZWQgdG8gcmVmbGVjdCBvcHRpb25hbC9udWxsYWJsZSBzY2hlbWFzXG5leHBvcnQgdHlwZSBab2RTY2hlbWFGb3I8VD4gPSB1bmRlZmluZWQgZXh0ZW5kcyBUXG4gID8gWm9kT3B0aW9uYWw8QmFzZVpvZFNjaGVtYUZvcjxFeGNsdWRlPFQsIHVuZGVmaW5lZD4+PlxuICA6IG51bGwgZXh0ZW5kcyBUXG4gICAgPyBab2ROdWxsYWJsZTxCYXNlWm9kU2NoZW1hRm9yPE5vbk51bGxhYmxlPFQ+Pj5cbiAgICA6IEJhc2Vab2RTY2hlbWFGb3I8VD47XG5cbi8vIERlcml2ZSBhIFpvZCBvYmplY3Qgc2hhcGUgZnJvbSBhIE1vZGVsIGluc3RhbmNlIHR5cGVcbmV4cG9ydCB0eXBlIFpvZFNoYXBlRm9yPE0+ID0ge1xuICAvLyBkcm9wIGZ1bmN0aW9uIG1lbWJlcnMgZnJvbSB0aGUgc2hhcGVcbiAgW0sgaW4ga2V5b2YgTSBhcyBNW0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnlcbiAgICA/IG5ldmVyXG4gICAgOiBLXTogWm9kU2NoZW1hRm9yPE1bS10+O1xufTtcblxuLy8gUHVibGljIGhlbHBlciBmb3IgdGhlIGluZmVycmVkIFpvZCBvYmplY3QgdHlwZSBmb3IgYSBNb2RlbCBjb25zdHJ1Y3RvclxuZXhwb3J0IHR5cGUgWm9kRnJvbTxNIGV4dGVuZHMgTW9kZWw+ID0gWm9kT2JqZWN0PFpvZFNoYXBlRm9yPE0+PjtcblxuLy8gVXRpbGl0eSBoZWxwZXJzIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSBlbGVtZW50IHR5cGVzIGZvciBjb2xsZWN0aW9ucyBpbiBUU1xuZXhwb3J0IHR5cGUgTGlzdE9mPFQ+ID0gVFtdO1xuZXhwb3J0IHR5cGUgU2V0T2Y8VD4gPSBTZXQ8VD47XG5cbmRlY2xhcmUgbW9kdWxlIFwiem9kXCIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBuYW1lc3BhY2UgeiB7XG4gICAgZnVuY3Rpb24gZnJvbTxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPik6IFpvZEZyb208TT47XG4gIH1cbn1cbiJdfQ==
3
+ //# sourceMappingURL=zod.js.map
package/lib/zod.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/as-zod",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "Zod compatibility library",
5
5
  "type": "module",
6
6
  "exports": {
@@ -60,25 +60,16 @@
60
60
  "dist"
61
61
  ],
62
62
  "keywords": [
63
- "plantuml",
64
- "mermaid",
65
- "uml",
66
- "drawio",
67
- "mddocs",
68
- "md",
69
- "jsdoc",
70
- "doc",
71
- "docs",
72
- "documentation",
73
- "test",
74
- "reports",
75
- "confluence",
76
- "ci/cd",
77
- "ci",
78
- "cd",
79
- "template",
63
+ "zod",
64
+ "validation",
65
+ "schema",
66
+ "parsing",
80
67
  "typescript",
81
- "ts"
68
+ "zod-adapter",
69
+ "decaf",
70
+ "runtime-validation",
71
+ "type-safety",
72
+ "data-validation"
82
73
  ],
83
74
  "author": "Tiago Venceslau and Contributors",
84
75
  "bugs": {
@@ -89,10 +80,6 @@
89
80
  "@decaf-ts/logging": "latest",
90
81
  "@decaf-ts/utils": "latest",
91
82
  "@eslint/js": "^9.25.1",
92
- "@rollup/plugin-commonjs": "^28.0.3",
93
- "@rollup/plugin-json": "^6.1.0",
94
- "@rollup/plugin-node-resolve": "^16.0.1",
95
- "@rollup/plugin-typescript": "^12.1.2",
96
83
  "@stylistic/eslint-plugin": "^4.2.0",
97
84
  "@types/jest": "^29.5.14",
98
85
  "clean-publish": "^5.1.0",
@@ -112,7 +99,6 @@
112
99
  "npm-check-updates": "^18.0.0",
113
100
  "prettier": "3.5.3",
114
101
  "rimraf": "^6.0.1",
115
- "rollup": "^4.40.0",
116
102
  "ts-jest": "^29.3.2",
117
103
  "ts-loader": "^9.5.2",
118
104
  "ts-node": "^10.9.2",
@@ -1,175 +0,0 @@
1
- import { Metadata } from '@decaf-ts/decoration';
2
- import { ValidationKeys, ModelKeys, Model, DEFAULT_ERROR_MESSAGES, Primitives } from '@decaf-ts/decorator-validation';
3
- import { z, ZodAny } from 'zod';
4
- import { Reflection } from '@decaf-ts/reflection';
5
-
6
- const ReservedKeys = [
7
- ValidationKeys.REQUIRED,
8
- ValidationKeys.TYPE,
9
- ValidationKeys.DATE,
10
- ModelKeys.TYPE,
11
- ];
12
- function isReservedKey(el) {
13
- return ReservedKeys.includes(el);
14
- }
15
- function zodify(type, zz = ZodAny) {
16
- type = typeof type === "string" ? [type] : type;
17
- function innerZodify(type) {
18
- switch (type.toLowerCase()) {
19
- case Primitives.STRING:
20
- return z.string();
21
- case Primitives.NUMBER:
22
- return z.number();
23
- case Primitives.BIGINT:
24
- return z.bigint();
25
- case Primitives.BOOLEAN:
26
- return z.boolean();
27
- case ValidationKeys.DATE:
28
- return z.date();
29
- case Array.name.toLowerCase():
30
- return z.array(zz);
31
- case Set.name.toLowerCase(): {
32
- const setSchema = z.set(zz);
33
- if (typeof setSchema.valueSchema === "undefined") {
34
- Object.defineProperty(setSchema, "valueSchema", {
35
- get: () => setSchema._def?.valueType,
36
- enumerable: false,
37
- configurable: true,
38
- });
39
- }
40
- return setSchema;
41
- }
42
- default: {
43
- const m = Model.get(type);
44
- if (!m) {
45
- throw new Error(`Unzodifiable type: ${type}`);
46
- }
47
- try {
48
- const zz = z.from(m);
49
- return zz;
50
- }
51
- catch (e) {
52
- throw new Error(`Failed to zodify model ${type}: ${e}`);
53
- }
54
- }
55
- }
56
- }
57
- let zod;
58
- for (const t of type) {
59
- zod = zod ? zod.or(innerZodify(t)) : innerZodify(t);
60
- }
61
- return zod;
62
- }
63
- function zodifyValidation(zod, type, values) {
64
- switch (type) {
65
- case ValidationKeys.MIN:
66
- return zod.min(values[ValidationKeys.MIN]);
67
- case ValidationKeys.MIN_LENGTH:
68
- return zod.min(values[ValidationKeys.MIN_LENGTH]);
69
- case ValidationKeys.MAX:
70
- return zod.max(values[ValidationKeys.MAX]);
71
- case ValidationKeys.MAX_LENGTH:
72
- return zod.max(values[ValidationKeys.MAX_LENGTH]);
73
- case ValidationKeys.STEP:
74
- return zod.multipleOf(values[ValidationKeys.STEP]);
75
- case ValidationKeys.PATTERN:
76
- case ValidationKeys.URL:
77
- case ValidationKeys.EMAIL:
78
- case ValidationKeys.PASSWORD:
79
- return zod.regex(new RegExp(values[ValidationKeys.PATTERN], "g"));
80
- case ValidationKeys.DATE:
81
- // DATE decorator is handled via @type(Date) and parsing; do not re-wrap here
82
- throw new TypeError("DATE validator cannot be applied as a refinement");
83
- default:
84
- return zod;
85
- }
86
- }
87
- function modelToZod(model) {
88
- const result = {};
89
- const properties = Model.getAttributes(model);
90
- if (Array.isArray(properties) && !properties.length)
91
- return z.object({});
92
- for (const prop of properties) {
93
- if (typeof model[prop] === "function" ||
94
- prop.startsWith("_") ||
95
- prop === "constructor") {
96
- continue;
97
- }
98
- const allDecs = Reflection.getPropertyDecorators(ValidationKeys.REFLECT, model, prop, false, true);
99
- const decoratorData = allDecs.decorators.reduce((accum, el) => {
100
- const { key, props } = el;
101
- if (key === ModelKeys.TYPE && !accum[ValidationKeys.TYPE]) {
102
- accum[ValidationKeys.TYPE] = {
103
- customTypes: [props.name],
104
- message: DEFAULT_ERROR_MESSAGES.TYPE,
105
- description: "defines the accepted types for the attribute",
106
- };
107
- }
108
- else {
109
- accum[key] = props;
110
- }
111
- return accum;
112
- }, {});
113
- if (!Object.keys(decoratorData).length) {
114
- continue;
115
- }
116
- let zod = ZodAny;
117
- const typeData = decoratorData[ValidationKeys.TYPE];
118
- if (!typeData) {
119
- throw new Error(`Missing type information`);
120
- }
121
- zod = zodify((Array.isArray(typeData.customTypes)
122
- ? typeData.customTypes
123
- : [typeData.customTypes]).map((c) => {
124
- if (typeof c === "function")
125
- return c();
126
- return c;
127
- }), decoratorData[ValidationKeys.LIST]
128
- ? zodify((Array.isArray(decoratorData[ValidationKeys.LIST].clazz)
129
- ? decoratorData[ValidationKeys.LIST].clazz
130
- : [decoratorData[ValidationKeys.LIST].clazz]).map((c) => {
131
- if (typeof c === "function") {
132
- return c().name;
133
- }
134
- return c;
135
- }))
136
- : ZodAny);
137
- for (const [key, props] of Object.entries(decoratorData).filter(([k]) => !isReservedKey(k))) {
138
- zod = zodifyValidation(zod, key, props);
139
- }
140
- if (!decoratorData[ValidationKeys.REQUIRED]) {
141
- zod = zod.optional();
142
- }
143
- const description = Metadata.description(model.constructor, prop);
144
- if (description) {
145
- zod = zod.describe(description);
146
- }
147
- result[prop] = zod;
148
- }
149
- const description = Metadata.description(model.constructor);
150
- const res = z.object(result);
151
- return description ? res.describe(description) : res;
152
- }
153
- const descriptor = Object.getOwnPropertyDescriptor(z, "from");
154
- if (!descriptor || descriptor.configurable) {
155
- Object.defineProperty(z, "from", {
156
- value: (model) => {
157
- const m = new model();
158
- if (!Metadata.constr(m.constructor))
159
- Model.fromModel(m, {});
160
- return modelToZod(m);
161
- },
162
- });
163
- }
164
-
165
- /**
166
- * @description Current version of the reflection package
167
- * @summary Stores the semantic version number of the package
168
- * @const VERSION
169
- * @memberOf module:as-zod
170
- */
171
- const VERSION = "1.0.1";
172
- Metadata.registerLibrary("@decaf-ts/as-zod", VERSION);
173
-
174
- export { VERSION, modelToZod, zodify, zodifyValidation };
175
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtem9kLmVzbS5janMiLCJzb3VyY2VzIjpbIi4uL3NyYy9vdmVycmlkZXMudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgVHlwZU1ldGFkYXRhLFxuICBQcmltaXRpdmVzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBNaW5WYWxpZGF0b3JPcHRpb25zLFxuICBNYXhWYWxpZGF0b3JPcHRpb25zLFxuICBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zLFxuICBTdGVwVmFsaWRhdG9yT3B0aW9ucyxcbiAgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMsXG4gIExpc3RNZXRhZGF0YSxcbiAgQ29uc3RydWN0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB6LCBab2RBbnkgfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuY29uc3QgUmVzZXJ2ZWRLZXlzID0gW1xuICBWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCxcbiAgVmFsaWRhdGlvbktleXMuVFlQRSxcbiAgVmFsaWRhdGlvbktleXMuREFURSxcbiAgTW9kZWxLZXlzLlRZUEUsXG5dIGFzIGNvbnN0O1xuXG5mdW5jdGlvbiBpc1Jlc2VydmVkS2V5KGVsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlc2VydmVkS2V5cy5pbmNsdWRlcyhlbCBhcyBhbnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5KHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdLCB6ejogYW55ID0gWm9kQW55KSB7XG4gIHR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IFt0eXBlXSA6IHR5cGU7XG5cbiAgZnVuY3Rpb24gaW5uZXJab2RpZnkodHlwZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5TVFJJTkc6XG4gICAgICAgIHJldHVybiB6LnN0cmluZygpO1xuICAgICAgY2FzZSBQcmltaXRpdmVzLk5VTUJFUjpcbiAgICAgICAgcmV0dXJuIHoubnVtYmVyKCk7XG4gICAgICBjYXNlIFByaW1pdGl2ZXMuQklHSU5UOlxuICAgICAgICByZXR1cm4gei5iaWdpbnQoKTtcbiAgICAgIGNhc2UgUHJpbWl0aXZlcy5CT09MRUFOOlxuICAgICAgICByZXR1cm4gei5ib29sZWFuKCk7XG4gICAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkRBVEU6XG4gICAgICAgIHJldHVybiB6LmRhdGUoKTtcbiAgICAgIGNhc2UgQXJyYXkubmFtZS50b0xvd2VyQ2FzZSgpOlxuICAgICAgICByZXR1cm4gei5hcnJheSh6eik7XG4gICAgICBjYXNlIFNldC5uYW1lLnRvTG93ZXJDYXNlKCk6IHtcbiAgICAgICAgY29uc3Qgc2V0U2NoZW1hID0gei5zZXQoenopO1xuICAgICAgICBpZiAodHlwZW9mIChzZXRTY2hlbWEgYXMgYW55KS52YWx1ZVNjaGVtYSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXRTY2hlbWEsIFwidmFsdWVTY2hlbWFcIiwge1xuICAgICAgICAgICAgZ2V0OiAoKSA9PiAoc2V0U2NoZW1hIGFzIGFueSkuX2RlZj8udmFsdWVUeXBlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNldFNjaGVtYTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbSA9IE1vZGVsLmdldCh0eXBlKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnpvZGlmaWFibGUgdHlwZTogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgenogPSB6LmZyb20obSk7XG4gICAgICAgICAgcmV0dXJuIHp6O1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gem9kaWZ5IG1vZGVsICR7dHlwZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCB6b2Q6IGFueTtcbiAgZm9yIChjb25zdCB0IG9mIHR5cGUpIHtcbiAgICB6b2QgPSB6b2QgPyB6b2Qub3IoaW5uZXJab2RpZnkodCkpIDogaW5uZXJab2RpZnkodCk7XG4gIH1cblxuICByZXR1cm4gem9kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gem9kaWZ5VmFsaWRhdGlvbihcbiAgem9kOiBhbnksXG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWVzOiBWYWxpZGF0b3JPcHRpb25zXG4pIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWYWxpZGF0aW9uS2V5cy5NSU46XG4gICAgICByZXR1cm4gem9kLm1pbigodmFsdWVzIGFzIE1pblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl0pO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSDpcbiAgICAgIHJldHVybiB6b2QubWluKFxuICAgICAgICAodmFsdWVzIGFzIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEhdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuICAgICAgcmV0dXJuIHpvZC5tYXgoKHZhbHVlcyBhcyBNYXhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhdKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEg6XG4gICAgICByZXR1cm4gem9kLm1heChcbiAgICAgICAgKHZhbHVlcyBhcyBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zKVtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXVxuICAgICAgKTtcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlNURVA6XG4gICAgICByZXR1cm4gem9kLm11bHRpcGxlT2YoXG4gICAgICAgICh2YWx1ZXMgYXMgU3RlcFZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlNURVBdXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLlVSTDpcbiAgICBjYXNlIFZhbGlkYXRpb25LZXlzLkVNQUlMOlxuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFTU1dPUkQ6XG4gICAgICByZXR1cm4gem9kLnJlZ2V4KFxuICAgICAgICBuZXcgUmVnRXhwKFxuICAgICAgICAgICh2YWx1ZXMgYXMgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMpW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dIGFzIHN0cmluZyxcbiAgICAgICAgICBcImdcIlxuICAgICAgICApXG4gICAgICApO1xuICAgIGNhc2UgVmFsaWRhdGlvbktleXMuREFURTpcbiAgICAgIC8vIERBVEUgZGVjb3JhdG9yIGlzIGhhbmRsZWQgdmlhIEB0eXBlKERhdGUpIGFuZCBwYXJzaW5nOyBkbyBub3QgcmUtd3JhcCBoZXJlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiREFURSB2YWxpZGF0b3IgY2Fubm90IGJlIGFwcGxpZWQgYXMgYSByZWZpbmVtZW50XCIpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gem9kO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFRvWm9kPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0pIHtcbiAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3QgcHJvcGVydGllcyA9IE1vZGVsLmdldEF0dHJpYnV0ZXMobW9kZWwpO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSAmJiAhcHJvcGVydGllcy5sZW5ndGgpIHJldHVybiB6Lm9iamVjdCh7fSk7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIChtb2RlbCBhcyBhbnkpW3Byb3BdID09PSBcImZ1bmN0aW9uXCIgfHxcbiAgICAgIHByb3Auc3RhcnRzV2l0aChcIl9cIikgfHxcbiAgICAgIHByb3AgPT09IFwiY29uc3RydWN0b3JcIlxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWxsRGVjcyA9IFJlZmxlY3Rpb24uZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIG1vZGVsLFxuICAgICAgcHJvcCxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNvcmF0b3JEYXRhID0gYWxsRGVjcy5kZWNvcmF0b3JzLnJlZHVjZShcbiAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgZWwpID0+IHtcbiAgICAgICAgY29uc3QgeyBrZXksIHByb3BzIH0gPSBlbDtcbiAgICAgICAgaWYgKGtleSA9PT0gTW9kZWxLZXlzLlRZUEUgJiYgIWFjY3VtW1ZhbGlkYXRpb25LZXlzLlRZUEVdKSB7XG4gICAgICAgICAgYWNjdW1bVmFsaWRhdGlvbktleXMuVFlQRV0gPSB7XG4gICAgICAgICAgICBjdXN0b21UeXBlczogW3Byb3BzLm5hbWUgYXMgc3RyaW5nXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcImRlZmluZXMgdGhlIGFjY2VwdGVkIHR5cGVzIGZvciB0aGUgYXR0cmlidXRlXCIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2N1bVtrZXldID0gcHJvcHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoZGVjb3JhdG9yRGF0YSkubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsZXQgem9kOiBhbnkgPSBab2RBbnk7XG5cbiAgICBjb25zdCB0eXBlRGF0YTogVHlwZU1ldGFkYXRhID0gZGVjb3JhdG9yRGF0YVtcbiAgICAgIFZhbGlkYXRpb25LZXlzLlRZUEVcbiAgICBdIGFzIFR5cGVNZXRhZGF0YTtcblxuICAgIGlmICghdHlwZURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB0eXBlIGluZm9ybWF0aW9uYCk7XG4gICAgfVxuXG4gICAgem9kID0gem9kaWZ5KFxuICAgICAgKEFycmF5LmlzQXJyYXkodHlwZURhdGEuY3VzdG9tVHlwZXMpXG4gICAgICAgID8gdHlwZURhdGEuY3VzdG9tVHlwZXNcbiAgICAgICAgOiBbdHlwZURhdGEuY3VzdG9tVHlwZXNdXG4gICAgICApLm1hcCgoYykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGMgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGMoKTtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KSxcbiAgICAgIGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF1cbiAgICAgICAgPyB6b2RpZnkoXG4gICAgICAgICAgICAoQXJyYXkuaXNBcnJheShcbiAgICAgICAgICAgICAgKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6elxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA/IChkZWNvcmF0b3JEYXRhW1ZhbGlkYXRpb25LZXlzLkxJU1RdIGFzIExpc3RNZXRhZGF0YSkuY2xhenpcbiAgICAgICAgICAgICAgOiBbKGRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuTElTVF0gYXMgTGlzdE1ldGFkYXRhKS5jbGF6el1cbiAgICAgICAgICAgICkubWFwKChjKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGMoKS5uYW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjIGFzIHN0cmluZztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICA6IFpvZEFueVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhkZWNvcmF0b3JEYXRhKS5maWx0ZXIoXG4gICAgICAoW2tdKSA9PiAhaXNSZXNlcnZlZEtleShrKVxuICAgICkpIHtcbiAgICAgIHpvZCA9IHpvZGlmeVZhbGlkYXRpb24oem9kLCBrZXksIHByb3BzKTtcbiAgICB9XG5cbiAgICBpZiAoIWRlY29yYXRvckRhdGFbVmFsaWRhdGlvbktleXMuUkVRVUlSRURdKSB7XG4gICAgICB6b2QgPSB6b2Qub3B0aW9uYWwoKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IE1ldGFkYXRhLmRlc2NyaXB0aW9uKFxuICAgICAgbW9kZWwuY29uc3RydWN0b3IgYXMgYW55LFxuICAgICAgcHJvcCBhcyBhbnlcbiAgICApO1xuXG4gICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICB6b2QgPSB6b2QuZGVzY3JpYmUoZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHJlc3VsdFtwcm9wXSA9IHpvZDtcbiAgfVxuXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gTWV0YWRhdGEuZGVzY3JpcHRpb24obW9kZWwuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgY29uc3QgcmVzID0gei5vYmplY3QocmVzdWx0KTtcbiAgcmV0dXJuIGRlc2NyaXB0aW9uID8gcmVzLmRlc2NyaWJlKGRlc2NyaXB0aW9uKSA6IHJlcztcbn1cblxuY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeiwgXCJmcm9tXCIgYXMga2V5b2YgdHlwZW9mIHopO1xuXG5pZiAoIWRlc2NyaXB0b3IgfHwgZGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHosIFwiZnJvbVwiLCB7XG4gICAgdmFsdWU6IDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPikgPT4ge1xuICAgICAgY29uc3QgbSA9IG5ldyBtb2RlbCgpO1xuICAgICAgaWYgKCFNZXRhZGF0YS5jb25zdHIobS5jb25zdHJ1Y3RvciBhcyBhbnkpKSBNb2RlbC5mcm9tTW9kZWwobSwge30pO1xuICAgICAgcmV0dXJuIG1vZGVsVG9ab2QobSkgYXMgYW55O1xuICAgIH0sXG4gIH0pO1xufVxuIiwiaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vem9kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVycmlkZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3VycmVudCB2ZXJzaW9uIG9mIHRoZSByZWZsZWN0aW9uIHBhY2thZ2VcbiAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIgb2YgdGhlIHBhY2thZ2VcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmFzLXpvZFxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcblxuTWV0YWRhdGEucmVnaXN0ZXJMaWJyYXJ5KFwiQGRlY2FmLXRzL2FzLXpvZFwiLCBWRVJTSU9OKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXFCQSxNQUFNLFlBQVksR0FBRztBQUNuQixJQUFBLGNBQWMsQ0FBQyxRQUFRO0FBQ3ZCLElBQUEsY0FBYyxDQUFDLElBQUk7QUFDbkIsSUFBQSxjQUFjLENBQUMsSUFBSTtBQUNuQixJQUFBLFNBQVMsQ0FBQyxJQUFJO0NBQ047QUFFVixTQUFTLGFBQWEsQ0FBQyxFQUFVLEVBQUE7QUFDL0IsSUFBQSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBUyxDQUFDO0FBQ3pDO1NBRWdCLE1BQU0sQ0FBQyxJQUF1QixFQUFFLEtBQVUsTUFBTSxFQUFBO0FBQzlELElBQUEsSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUk7SUFFL0MsU0FBUyxXQUFXLENBQUMsSUFBWSxFQUFBO0FBQy9CLFFBQUEsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3hCLEtBQUssVUFBVSxDQUFDLE1BQU07QUFDcEIsZ0JBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssVUFBVSxDQUFDLE1BQU07QUFDcEIsZ0JBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssVUFBVSxDQUFDLE1BQU07QUFDcEIsZ0JBQUEsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssVUFBVSxDQUFDLE9BQU87QUFDckIsZ0JBQUEsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQ3BCLEtBQUssY0FBYyxDQUFDLElBQUk7QUFDdEIsZ0JBQUEsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFO0FBQ2pCLFlBQUEsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtBQUMzQixnQkFBQSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLEtBQUssR0FB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