nextlove 2.19.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,239 @@
1
+ import {
2
+ init_esm_shims
3
+ } from "./chunk-2HL2TLDY.mjs";
4
+
5
+ // src/lib/zod-compat.ts
6
+ init_esm_shims();
7
+ function getDef(schema) {
8
+ if ("_zod" in schema) {
9
+ return schema._zod.def;
10
+ }
11
+ return schema._def;
12
+ }
13
+ function getTypeName(schema) {
14
+ var _a;
15
+ if ("_zod" in schema) {
16
+ const zod = schema._zod;
17
+ const constructorName = schema.constructor.name;
18
+ if (constructorName && constructorName.startsWith("$Zod")) {
19
+ return constructorName.slice(1);
20
+ }
21
+ if (zod.def && zod.def.type) {
22
+ return normalizeZodV4Type(zod.def.type);
23
+ }
24
+ return constructorName || "Unknown";
25
+ }
26
+ return ((_a = schema._def) == null ? void 0 : _a.typeName) || "Unknown";
27
+ }
28
+ function normalizeZodV4Type(type) {
29
+ const typeMap = {
30
+ string: "ZodString",
31
+ number: "ZodNumber",
32
+ bigint: "ZodBigInt",
33
+ boolean: "ZodBoolean",
34
+ date: "ZodDate",
35
+ undefined: "ZodUndefined",
36
+ null: "ZodNull",
37
+ void: "ZodVoid",
38
+ any: "ZodAny",
39
+ unknown: "ZodUnknown",
40
+ never: "ZodNever",
41
+ literal: "ZodLiteral",
42
+ enum: "ZodEnum",
43
+ nativeEnum: "ZodNativeEnum",
44
+ object: "ZodObject",
45
+ array: "ZodArray",
46
+ tuple: "ZodTuple",
47
+ union: "ZodUnion",
48
+ discriminatedUnion: "ZodDiscriminatedUnion",
49
+ intersection: "ZodIntersection",
50
+ record: "ZodRecord",
51
+ map: "ZodMap",
52
+ set: "ZodSet",
53
+ function: "ZodFunction",
54
+ lazy: "ZodLazy",
55
+ promise: "ZodPromise",
56
+ optional: "ZodOptional",
57
+ nullable: "ZodNullable",
58
+ default: "ZodDefault",
59
+ effects: "ZodEffects",
60
+ transformer: "ZodTransformer",
61
+ branded: "ZodBranded",
62
+ pipeline: "ZodPipeline",
63
+ readonly: "ZodReadonly"
64
+ };
65
+ return typeMap[type] || `Zod${type.charAt(0).toUpperCase() + type.slice(1)}`;
66
+ }
67
+ function getEffectsSchema(schema) {
68
+ const def = getDef(schema);
69
+ return def == null ? void 0 : def.schema;
70
+ }
71
+ function getInnerType(schema) {
72
+ const def = getDef(schema);
73
+ return def == null ? void 0 : def.innerType;
74
+ }
75
+ function getShape(schema) {
76
+ const def = getDef(schema);
77
+ if (typeof (def == null ? void 0 : def.shape) === "function") {
78
+ return def.shape();
79
+ }
80
+ return def == null ? void 0 : def.shape;
81
+ }
82
+ function getChecks(schema) {
83
+ const def = getDef(schema);
84
+ const checks = (def == null ? void 0 : def.checks) || [];
85
+ return checks.map((check) => {
86
+ var _a;
87
+ if ((_a = check._zod) == null ? void 0 : _a.def) {
88
+ return { ...check._zod.def };
89
+ }
90
+ return check;
91
+ });
92
+ }
93
+ function getEnumValues(schema) {
94
+ if ("options" in schema && Array.isArray(schema.options)) {
95
+ return schema.options;
96
+ }
97
+ if ("enum" in schema && schema.enum) {
98
+ return schema.enum;
99
+ }
100
+ const def = getDef(schema);
101
+ return (def == null ? void 0 : def.values) || (def == null ? void 0 : def.entries);
102
+ }
103
+ function getLiteralValue(schema) {
104
+ if ("value" in schema) {
105
+ return schema.value;
106
+ }
107
+ const def = getDef(schema);
108
+ if (Array.isArray(def == null ? void 0 : def.values)) {
109
+ return def.values[0];
110
+ }
111
+ return def == null ? void 0 : def.value;
112
+ }
113
+ function getDefaultValue(schema) {
114
+ const def = getDef(schema);
115
+ if (typeof (def == null ? void 0 : def.defaultValue) === "function") {
116
+ return def.defaultValue();
117
+ }
118
+ return def == null ? void 0 : def.defaultValue;
119
+ }
120
+ function getArrayConstraints(schema) {
121
+ const def = getDef(schema);
122
+ return {
123
+ exactLength: def == null ? void 0 : def.exactLength,
124
+ minLength: def == null ? void 0 : def.minLength,
125
+ maxLength: def == null ? void 0 : def.maxLength
126
+ };
127
+ }
128
+ function getArrayType(schema) {
129
+ const def = getDef(schema);
130
+ return def == null ? void 0 : def.type;
131
+ }
132
+ function getRecordValueType(schema) {
133
+ const def = getDef(schema);
134
+ return def == null ? void 0 : def.valueType;
135
+ }
136
+ function getCatchall(schema) {
137
+ const def = getDef(schema);
138
+ return def == null ? void 0 : def.catchall;
139
+ }
140
+ function getUnknownKeys(schema) {
141
+ const def = getDef(schema);
142
+ return def == null ? void 0 : def.unknownKeys;
143
+ }
144
+ function getIntersectionParts(schema) {
145
+ const def = getDef(schema);
146
+ return {
147
+ left: def == null ? void 0 : def.left,
148
+ right: def == null ? void 0 : def.right
149
+ };
150
+ }
151
+ function getUnionOptions(schema) {
152
+ const def = getDef(schema);
153
+ const options = def == null ? void 0 : def.options;
154
+ if (options instanceof Map) {
155
+ return Array.from(options.values());
156
+ }
157
+ if (Array.isArray(options)) {
158
+ return options;
159
+ }
160
+ return [];
161
+ }
162
+ function getDiscriminator(schema) {
163
+ const def = getDef(schema);
164
+ return def == null ? void 0 : def.discriminator;
165
+ }
166
+ function getEffect(schema) {
167
+ const def = getDef(schema);
168
+ return def == null ? void 0 : def.effect;
169
+ }
170
+ function getPipelineParts(schema) {
171
+ const def = getDef(schema);
172
+ return {
173
+ in: def == null ? void 0 : def.in,
174
+ out: def == null ? void 0 : def.out
175
+ };
176
+ }
177
+ function getBrandedType(schema) {
178
+ const def = getDef(schema);
179
+ return def == null ? void 0 : def.type;
180
+ }
181
+ function getTupleItems(schema) {
182
+ const def = getDef(schema);
183
+ return (def == null ? void 0 : def.items) || [];
184
+ }
185
+ function getFunctionParts(schema) {
186
+ const def = getDef(schema);
187
+ return {
188
+ args: def == null ? void 0 : def.args,
189
+ returns: def == null ? void 0 : def.returns
190
+ };
191
+ }
192
+ function getMapTypes(schema) {
193
+ const def = getDef(schema);
194
+ return {
195
+ keyType: def == null ? void 0 : def.keyType,
196
+ valueType: def == null ? void 0 : def.valueType
197
+ };
198
+ }
199
+ function getSetValueType(schema) {
200
+ const def = getDef(schema);
201
+ return def == null ? void 0 : def.valueType;
202
+ }
203
+ function getPromiseType(schema) {
204
+ const def = getDef(schema);
205
+ return def == null ? void 0 : def.type;
206
+ }
207
+ function getCustomTypeGetter(schema) {
208
+ const def = getDef(schema);
209
+ return def == null ? void 0 : def.getType;
210
+ }
211
+
212
+ export {
213
+ getTypeName,
214
+ getEffectsSchema,
215
+ getInnerType,
216
+ getShape,
217
+ getChecks,
218
+ getEnumValues,
219
+ getLiteralValue,
220
+ getDefaultValue,
221
+ getArrayConstraints,
222
+ getArrayType,
223
+ getRecordValueType,
224
+ getCatchall,
225
+ getUnknownKeys,
226
+ getIntersectionParts,
227
+ getUnionOptions,
228
+ getDiscriminator,
229
+ getEffect,
230
+ getPipelineParts,
231
+ getBrandedType,
232
+ getTupleItems,
233
+ getFunctionParts,
234
+ getMapTypes,
235
+ getSetValueType,
236
+ getPromiseType,
237
+ getCustomTypeGetter
238
+ };
239
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi96b2QtY29tcGF0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIFpvZCBDb21wYXRpYmlsaXR5IExheWVyXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgY29tcGF0aWJpbGl0eSBiZXR3ZWVuIFpvZCB2MyBhbmQgWm9kIHY0LlxuICogSW4gWm9kIHY0LCB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIGNoYW5nZWQ6XG4gKiAtIGAuX2RlZmAgbW92ZWQgdG8gYC5fem9kLmRlZmBcbiAqIC0gYC5fZGVmLnR5cGVOYW1lYCBtb3ZlZCB0byBgLl96b2QuZGVmLnR5cGVgXG4gKlxuICogVGhpcyBtb2R1bGUgYWJzdHJhY3RzIHRoZXNlIGRpZmZlcmVuY2VzIHRvIHN1cHBvcnQgYm90aCB2ZXJzaW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBab2RUeXBlQW55IH0gZnJvbSBcInpvZFwiXG5cbi8qKlxuICogQ2hlY2sgaWYgd2UncmUgdXNpbmcgWm9kIHY0K1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNab2RWNChzY2hlbWE6IFpvZFR5cGVBbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIFwiX3pvZFwiIGluIHNjaGVtYVxufVxuXG4vKipcbiAqIEdldCB0aGUgaW50ZXJuYWwgZGVmaW5pdGlvbiBvYmplY3QgZnJvbSBhIFpvZCBzY2hlbWEuXG4gKiBXb3JrcyB3aXRoIGJvdGggWm9kIHYzICguX2RlZikgYW5kIFpvZCB2NCAoLl96b2QuZGVmKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmKHNjaGVtYTogWm9kVHlwZUFueSk6IGFueSB7XG4gIGlmIChcIl96b2RcIiBpbiBzY2hlbWEpIHtcbiAgICAvLyBab2QgdjRcbiAgICByZXR1cm4gKHNjaGVtYSBhcyBhbnkpLl96b2QuZGVmXG4gIH1cbiAgLy8gWm9kIHYzXG4gIHJldHVybiAoc2NoZW1hIGFzIGFueSkuX2RlZlxufVxuXG4vKipcbiAqIEdldCB0aGUgdHlwZSBuYW1lIG9mIGEgWm9kIHNjaGVtYS5cbiAqIFpvZCB2Mzogc2NoZW1hLl9kZWYudHlwZU5hbWUgKGUuZy4sIFwiWm9kU3RyaW5nXCIpXG4gKiBab2QgdjQ6IHNjaGVtYS5fem9kLmRlZi50eXBlIChlLmcuLCBcInN0cmluZ1wiKSAtIGJ1dCB3ZSBub3JtYWxpemUgdG8gdjMtc3R5bGUgbmFtZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVOYW1lKHNjaGVtYTogWm9kVHlwZUFueSk6IHN0cmluZyB7XG4gIGlmIChcIl96b2RcIiBpbiBzY2hlbWEpIHtcbiAgICAvLyBab2QgdjQgLSB0aGUgdHlwZSBpcyBzdG9yZWQgZGlmZmVyZW50bHlcbiAgICBjb25zdCB6b2QgPSAoc2NoZW1hIGFzIGFueSkuX3pvZFxuICAgIC8vIEluIFpvZCB2NCwgdGhlIGNvbnN0cnVjdG9yIG5hbWUgZ2l2ZXMgdXMgdGhlIHR5cGVcbiAgICBjb25zdCBjb25zdHJ1Y3Rvck5hbWUgPSBzY2hlbWEuY29uc3RydWN0b3IubmFtZVxuICAgIGlmIChjb25zdHJ1Y3Rvck5hbWUgJiYgY29uc3RydWN0b3JOYW1lLnN0YXJ0c1dpdGgoXCIkWm9kXCIpKSB7XG4gICAgICAvLyBab2QgdjQgdXNlcyAkWm9kU3RyaW5nLCAkWm9kTnVtYmVyLCBldGMgLSBjb252ZXJ0IHRvIFpvZFN0cmluZywgWm9kTnVtYmVyXG4gICAgICByZXR1cm4gY29uc3RydWN0b3JOYW1lLnNsaWNlKDEpXG4gICAgfVxuICAgIC8vIEZhbGxiYWNrIHRvIGRlZi50eXBlIGlmIGF2YWlsYWJsZVxuICAgIGlmICh6b2QuZGVmICYmIHpvZC5kZWYudHlwZSkge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZVpvZFY0VHlwZSh6b2QuZGVmLnR5cGUpXG4gICAgfVxuICAgIHJldHVybiBjb25zdHJ1Y3Rvck5hbWUgfHwgXCJVbmtub3duXCJcbiAgfVxuICAvLyBab2QgdjNcbiAgcmV0dXJuIChzY2hlbWEgYXMgYW55KS5fZGVmPy50eXBlTmFtZSB8fCBcIlVua25vd25cIlxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBab2QgdjQgdHlwZSBuYW1lcyB0byB2My1zdHlsZSBuYW1lcyBmb3IgY29uc2lzdGVuY3lcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplWm9kVjRUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHR5cGVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgc3RyaW5nOiBcIlpvZFN0cmluZ1wiLFxuICAgIG51bWJlcjogXCJab2ROdW1iZXJcIixcbiAgICBiaWdpbnQ6IFwiWm9kQmlnSW50XCIsXG4gICAgYm9vbGVhbjogXCJab2RCb29sZWFuXCIsXG4gICAgZGF0ZTogXCJab2REYXRlXCIsXG4gICAgdW5kZWZpbmVkOiBcIlpvZFVuZGVmaW5lZFwiLFxuICAgIG51bGw6IFwiWm9kTnVsbFwiLFxuICAgIHZvaWQ6IFwiWm9kVm9pZFwiLFxuICAgIGFueTogXCJab2RBbnlcIixcbiAgICB1bmtub3duOiBcIlpvZFVua25vd25cIixcbiAgICBuZXZlcjogXCJab2ROZXZlclwiLFxuICAgIGxpdGVyYWw6IFwiWm9kTGl0ZXJhbFwiLFxuICAgIGVudW06IFwiWm9kRW51bVwiLFxuICAgIG5hdGl2ZUVudW06IFwiWm9kTmF0aXZlRW51bVwiLFxuICAgIG9iamVjdDogXCJab2RPYmplY3RcIixcbiAgICBhcnJheTogXCJab2RBcnJheVwiLFxuICAgIHR1cGxlOiBcIlpvZFR1cGxlXCIsXG4gICAgdW5pb246IFwiWm9kVW5pb25cIixcbiAgICBkaXNjcmltaW5hdGVkVW5pb246IFwiWm9kRGlzY3JpbWluYXRlZFVuaW9uXCIsXG4gICAgaW50ZXJzZWN0aW9uOiBcIlpvZEludGVyc2VjdGlvblwiLFxuICAgIHJlY29yZDogXCJab2RSZWNvcmRcIixcbiAgICBtYXA6IFwiWm9kTWFwXCIsXG4gICAgc2V0OiBcIlpvZFNldFwiLFxuICAgIGZ1bmN0aW9uOiBcIlpvZEZ1bmN0aW9uXCIsXG4gICAgbGF6eTogXCJab2RMYXp5XCIsXG4gICAgcHJvbWlzZTogXCJab2RQcm9taXNlXCIsXG4gICAgb3B0aW9uYWw6IFwiWm9kT3B0aW9uYWxcIixcbiAgICBudWxsYWJsZTogXCJab2ROdWxsYWJsZVwiLFxuICAgIGRlZmF1bHQ6IFwiWm9kRGVmYXVsdFwiLFxuICAgIGVmZmVjdHM6IFwiWm9kRWZmZWN0c1wiLFxuICAgIHRyYW5zZm9ybWVyOiBcIlpvZFRyYW5zZm9ybWVyXCIsXG4gICAgYnJhbmRlZDogXCJab2RCcmFuZGVkXCIsXG4gICAgcGlwZWxpbmU6IFwiWm9kUGlwZWxpbmVcIixcbiAgICByZWFkb25seTogXCJab2RSZWFkb25seVwiLFxuICB9XG4gIHJldHVybiB0eXBlTWFwW3R5cGVdIHx8IGBab2Qke3R5cGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpfWBcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGlubmVyIHNjaGVtYSBmcm9tIGEgWm9kRWZmZWN0cy9ab2RUcmFuc2Zvcm1lclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWZmZWN0c1NjaGVtYShzY2hlbWE6IFpvZFR5cGVBbnkpOiBab2RUeXBlQW55IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIGRlZj8uc2NoZW1hXG59XG5cbi8qKlxuICogR2V0IHRoZSBpbm5lciB0eXBlIGZyb20gWm9kT3B0aW9uYWwsIFpvZE51bGxhYmxlLCBab2REZWZhdWx0LCBldGMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbm5lclR5cGUoc2NoZW1hOiBab2RUeXBlQW55KTogWm9kVHlwZUFueSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiBkZWY/LmlubmVyVHlwZVxufVxuXG4vKipcbiAqIEdldCB0aGUgc2hhcGUgb2YgYSBab2RPYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNoYXBlKFxuICBzY2hlbWE6IFpvZFR5cGVBbnlcbik6IFJlY29yZDxzdHJpbmcsIFpvZFR5cGVBbnk+IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgaWYgKHR5cGVvZiBkZWY/LnNoYXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gZGVmLnNoYXBlKClcbiAgfVxuICByZXR1cm4gZGVmPy5zaGFwZVxufVxuXG4vKipcbiAqIEdldCB0aGUgY2hlY2tzIGFycmF5IGZyb20gYSBzdHJpbmcvbnVtYmVyIHNjaGVtYVxuICogSW4gWm9kIDQsIGNoZWNrcyBhcmUgb2JqZWN0cyB3aXRoIF96b2QuZGVmIGNvbnRhaW5pbmcgdGhlIGNoZWNrIGRldGFpbHNcbiAqIFdlIG5vcm1hbGl6ZSB0aGVtIHRvIGhhdmUgdGhlIHByb3BlcnRpZXMgZGlyZWN0bHkgYWNjZXNzaWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hlY2tzKHNjaGVtYTogWm9kVHlwZUFueSk6IGFueVtdIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgY29uc3QgY2hlY2tzID0gZGVmPy5jaGVja3MgfHwgW11cblxuICAvLyBOb3JtYWxpemUgWm9kIDQgY2hlY2sgb2JqZWN0c1xuICByZXR1cm4gY2hlY2tzLm1hcCgoY2hlY2s6IGFueSkgPT4ge1xuICAgIGlmIChjaGVjay5fem9kPy5kZWYpIHtcbiAgICAgIC8vIFpvZCA0OiBmbGF0dGVuIF96b2QuZGVmIHByb3BlcnRpZXMgb250byB0aGUgY2hlY2sgb2JqZWN0XG4gICAgICByZXR1cm4geyAuLi5jaGVjay5fem9kLmRlZiB9XG4gICAgfVxuICAgIC8vIFpvZCAzOiBhbHJlYWR5IGhhcyBwcm9wZXJ0aWVzIGRpcmVjdGx5XG4gICAgcmV0dXJuIGNoZWNrXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IHZhbHVlcyBmcm9tIGEgWm9kRW51bSBvciBab2ROYXRpdmVFbnVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnVtVmFsdWVzKFxuICBzY2hlbWE6IFpvZFR5cGVBbnlcbik6IGFueVtdIHwgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIC8vIFpvZCA0OiB1c2Ugc2NoZW1hLm9wdGlvbnMgKGFycmF5KSBvciBzY2hlbWEuZW51bSAob2JqZWN0KVxuICBpZiAoXCJvcHRpb25zXCIgaW4gc2NoZW1hICYmIEFycmF5LmlzQXJyYXkoKHNjaGVtYSBhcyBhbnkpLm9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIChzY2hlbWEgYXMgYW55KS5vcHRpb25zXG4gIH1cbiAgaWYgKFwiZW51bVwiIGluIHNjaGVtYSAmJiAoc2NoZW1hIGFzIGFueSkuZW51bSkge1xuICAgIHJldHVybiAoc2NoZW1hIGFzIGFueSkuZW51bVxuICB9XG4gIC8vIFpvZCAzIGZhbGxiYWNrXG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIC8vIFpvZCA0IGFsc28gaGFzIGVudHJpZXMgaW4gZGVmXG4gIHJldHVybiBkZWY/LnZhbHVlcyB8fCBkZWY/LmVudHJpZXNcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGxpdGVyYWwgdmFsdWUgZnJvbSBhIFpvZExpdGVyYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExpdGVyYWxWYWx1ZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBhbnkge1xuICAvLyBab2QgNDogdHJ5IHNjaGVtYS52YWx1ZSBmaXJzdCAocHVibGljIEFQSSlcbiAgaWYgKFwidmFsdWVcIiBpbiBzY2hlbWEpIHtcbiAgICByZXR1cm4gKHNjaGVtYSBhcyBhbnkpLnZhbHVlXG4gIH1cbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgLy8gWm9kIDQ6IHZhbHVlcyBpcyBhbiBhcnJheVxuICBpZiAoQXJyYXkuaXNBcnJheShkZWY/LnZhbHVlcykpIHtcbiAgICByZXR1cm4gZGVmLnZhbHVlc1swXVxuICB9XG4gIC8vIFpvZCAzOiB2YWx1ZSBpcyBhIHNpbmdsZSB2YWx1ZVxuICByZXR1cm4gZGVmPy52YWx1ZVxufVxuXG4vKipcbiAqIEdldCB0aGUgZGVmYXVsdCB2YWx1ZSBmcm9tIGEgWm9kRGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFZhbHVlKHNjaGVtYTogWm9kVHlwZUFueSk6IGFueSB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIGlmICh0eXBlb2YgZGVmPy5kZWZhdWx0VmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBkZWYuZGVmYXVsdFZhbHVlKClcbiAgfVxuICByZXR1cm4gZGVmPy5kZWZhdWx0VmFsdWVcbn1cblxuLyoqXG4gKiBHZXQgYXJyYXkgY29uc3RyYWludHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFycmF5Q29uc3RyYWludHMoc2NoZW1hOiBab2RUeXBlQW55KToge1xuICBleGFjdExlbmd0aD86IHsgdmFsdWU6IG51bWJlciB9XG4gIG1pbkxlbmd0aD86IHsgdmFsdWU6IG51bWJlciB9XG4gIG1heExlbmd0aD86IHsgdmFsdWU6IG51bWJlciB9XG59IHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIHtcbiAgICBleGFjdExlbmd0aDogZGVmPy5leGFjdExlbmd0aCxcbiAgICBtaW5MZW5ndGg6IGRlZj8ubWluTGVuZ3RoLFxuICAgIG1heExlbmd0aDogZGVmPy5tYXhMZW5ndGgsXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIGVsZW1lbnQgdHlwZSBmcm9tIGEgWm9kQXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFycmF5VHlwZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBab2RUeXBlQW55IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIGRlZj8udHlwZVxufVxuXG4vKipcbiAqIEdldCB0aGUgdmFsdWUgdHlwZSBmcm9tIGEgWm9kUmVjb3JkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWNvcmRWYWx1ZVR5cGUoc2NoZW1hOiBab2RUeXBlQW55KTogWm9kVHlwZUFueSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiBkZWY/LnZhbHVlVHlwZVxufVxuXG4vKipcbiAqIEdldCBjYXRjaGFsbCBmcm9tIFpvZE9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2F0Y2hhbGwoc2NoZW1hOiBab2RUeXBlQW55KTogWm9kVHlwZUFueSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiBkZWY/LmNhdGNoYWxsXG59XG5cbi8qKlxuICogR2V0IHVua25vd25LZXlzIGZyb20gWm9kT2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbmtub3duS2V5cyhcbiAgc2NoZW1hOiBab2RUeXBlQW55XG4pOiBcInBhc3N0aHJvdWdoXCIgfCBcInN0cmljdFwiIHwgXCJzdHJpcFwiIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIGRlZj8udW5rbm93bktleXNcbn1cblxuLyoqXG4gKiBHZXQgbGVmdC9yaWdodCBmcm9tIFpvZEludGVyc2VjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJzZWN0aW9uUGFydHMoc2NoZW1hOiBab2RUeXBlQW55KToge1xuICBsZWZ0PzogWm9kVHlwZUFueVxuICByaWdodD86IFpvZFR5cGVBbnlcbn0ge1xuICBjb25zdCBkZWYgPSBnZXREZWYoc2NoZW1hKVxuICByZXR1cm4ge1xuICAgIGxlZnQ6IGRlZj8ubGVmdCxcbiAgICByaWdodDogZGVmPy5yaWdodCxcbiAgfVxufVxuXG4vKipcbiAqIEdldCBvcHRpb25zIGZyb20gWm9kVW5pb24gb3IgWm9kRGlzY3JpbWluYXRlZFVuaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbmlvbk9wdGlvbnMoc2NoZW1hOiBab2RUeXBlQW55KTogWm9kVHlwZUFueVtdIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgY29uc3Qgb3B0aW9ucyA9IGRlZj8ub3B0aW9uc1xuICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIE1hcCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKG9wdGlvbnMudmFsdWVzKCkpXG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICByZXR1cm4gb3B0aW9uc1xuICB9XG4gIHJldHVybiBbXVxufVxuXG4vKipcbiAqIEdldCBkaXNjcmltaW5hdG9yIGZyb20gWm9kRGlzY3JpbWluYXRlZFVuaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNjcmltaW5hdG9yKHNjaGVtYTogWm9kVHlwZUFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiBkZWY/LmRpc2NyaW1pbmF0b3Jcbn1cblxuLyoqXG4gKiBHZXQgZWZmZWN0IGZyb20gWm9kRWZmZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWZmZWN0KHNjaGVtYTogWm9kVHlwZUFueSk6IGFueSB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiBkZWY/LmVmZmVjdFxufVxuXG4vKipcbiAqIEdldCBwaXBlbGluZSBpbi9vdXQgZnJvbSBab2RQaXBlbGluZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGlwZWxpbmVQYXJ0cyhzY2hlbWE6IFpvZFR5cGVBbnkpOiB7XG4gIGluPzogWm9kVHlwZUFueVxuICBvdXQ/OiBab2RUeXBlQW55XG59IHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIHtcbiAgICBpbjogZGVmPy5pbixcbiAgICBvdXQ6IGRlZj8ub3V0LFxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBicmFuZGVkIHR5cGUgZnJvbSBab2RCcmFuZGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcmFuZGVkVHlwZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBab2RUeXBlQW55IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIGRlZj8udHlwZVxufVxuXG4vKipcbiAqIEdldCB0dXBsZSBpdGVtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHVwbGVJdGVtcyhzY2hlbWE6IFpvZFR5cGVBbnkpOiBab2RUeXBlQW55W10ge1xuICBjb25zdCBkZWYgPSBnZXREZWYoc2NoZW1hKVxuICByZXR1cm4gZGVmPy5pdGVtcyB8fCBbXVxufVxuXG4vKipcbiAqIEdldCBmdW5jdGlvbiBhcmdzIGFuZCByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGdW5jdGlvblBhcnRzKHNjaGVtYTogWm9kVHlwZUFueSk6IHtcbiAgYXJncz86IFpvZFR5cGVBbnlcbiAgcmV0dXJucz86IFpvZFR5cGVBbnlcbn0ge1xuICBjb25zdCBkZWYgPSBnZXREZWYoc2NoZW1hKVxuICByZXR1cm4ge1xuICAgIGFyZ3M6IGRlZj8uYXJncyxcbiAgICByZXR1cm5zOiBkZWY/LnJldHVybnMsXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgbWFwIGtleSBhbmQgdmFsdWUgdHlwZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcFR5cGVzKHNjaGVtYTogWm9kVHlwZUFueSk6IHtcbiAga2V5VHlwZT86IFpvZFR5cGVBbnlcbiAgdmFsdWVUeXBlPzogWm9kVHlwZUFueVxufSB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiB7XG4gICAga2V5VHlwZTogZGVmPy5rZXlUeXBlLFxuICAgIHZhbHVlVHlwZTogZGVmPy52YWx1ZVR5cGUsXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgc2V0IHZhbHVlIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNldFZhbHVlVHlwZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBab2RUeXBlQW55IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIGRlZj8udmFsdWVUeXBlXG59XG5cbi8qKlxuICogR2V0IHByb21pc2UgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvbWlzZVR5cGUoc2NoZW1hOiBab2RUeXBlQW55KTogWm9kVHlwZUFueSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZihzY2hlbWEpXG4gIHJldHVybiBkZWY/LnR5cGVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGN1c3RvbSB0eXBlIGdldHRlciBpZiBhdmFpbGFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1c3RvbVR5cGVHZXR0ZXIoc2NoZW1hOiBab2RUeXBlQW55KTogYW55IHtcbiAgY29uc3QgZGVmID0gZ2V0RGVmKHNjaGVtYSlcbiAgcmV0dXJuIGRlZj8uZ2V0VHlwZVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFBQTtBQXdCTyxTQUFTLE9BQU8sUUFBeUI7QUFDOUMsTUFBSSxVQUFVLFFBQVE7QUFFcEIsV0FBUSxPQUFlLEtBQUs7QUFBQSxFQUM5QjtBQUVBLFNBQVEsT0FBZTtBQUN6QjtBQU9PLFNBQVMsWUFBWSxRQUE0QjtBQXRDeEQ7QUF1Q0UsTUFBSSxVQUFVLFFBQVE7QUFFcEIsVUFBTSxNQUFPLE9BQWU7QUFFNUIsVUFBTSxrQkFBa0IsT0FBTyxZQUFZO0FBQzNDLFFBQUksbUJBQW1CLGdCQUFnQixXQUFXLE1BQU0sR0FBRztBQUV6RCxhQUFPLGdCQUFnQixNQUFNLENBQUM7QUFBQSxJQUNoQztBQUVBLFFBQUksSUFBSSxPQUFPLElBQUksSUFBSSxNQUFNO0FBQzNCLGFBQU8sbUJBQW1CLElBQUksSUFBSSxJQUFJO0FBQUEsSUFDeEM7QUFDQSxXQUFPLG1CQUFtQjtBQUFBLEVBQzVCO0FBRUEsV0FBUSxZQUFlLFNBQWYsbUJBQXFCLGFBQVk7QUFDM0M7QUFLQSxTQUFTLG1CQUFtQixNQUFzQjtBQUNoRCxRQUFNLFVBQWtDO0FBQUEsSUFDdEMsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sV0FBVztB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