@rosen-bridge/config 1.2.0 → 2.0.0-d62d28de

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.
@@ -16,6 +16,9 @@ export declare const propertyValidators: {
16
16
  items: (field: types.ArrayField, _config: ConfigValidator) => void;
17
17
  default: (field: types.ArrayField, _config: ConfigValidator) => void;
18
18
  };
19
+ union: {
20
+ children: (field: types.ConfigField) => void;
21
+ };
19
22
  string: {
20
23
  default: (field: types.StringField, _config: ConfigValidator) => void;
21
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fieldProperties.d.ts","sourceRoot":"","sources":["../../../lib/schema/Validators/fieldProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AA0DzC,eAAO,MAAM,kBAAkB;;sBAGb,KAAK,CAAC,WAAW,WAAW,eAAe;uBAY1C,KAAK,CAAC,WAAW,WAAW,eAAe;6BAMrC,KAAK,CAAC,WAAW,WAAW,eAAe;;;6BAU3C,KAAK,CAAC,cAAc,UAAU,eAAe;;;0BAwEhD,KAAK,CAAC,WAAW,WAAW,eAAe;;;uBAc9C,KAAK,CAAC,UAAU,WAAW,eAAe;yBAQxC,KAAK,CAAC,UAAU,WAAW,eAAe;;;yBAiB1C,KAAK,CAAC,WAAW,WAAW,eAAe;;;yBAa3C,KAAK,CAAC,YAAY,WAAW,eAAe;;;yBAa5C,KAAK,CAAC,WAAW,WAAW,eAAe;;;yBAa3C,KAAK,CAAC,WAAW,WAAW,eAAe;;CAgB/D,CAAC;AAEF,eAAO,MAAM,cAAc,UAE1B,CAAC"}
1
+ {"version":3,"file":"fieldProperties.d.ts","sourceRoot":"","sources":["../../../lib/schema/Validators/fieldProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AA6DzC,eAAO,MAAM,kBAAkB;;sBAGb,KAAK,CAAC,WAAW,WAAW,eAAe;uBAY1C,KAAK,CAAC,WAAW,WAAW,eAAe;6BAMrC,KAAK,CAAC,WAAW,WAAW,eAAe;;;6BAU3C,KAAK,CAAC,cAAc,UAAU,eAAe;;;0BAwEhD,KAAK,CAAC,WAAW,WAAW,eAAe;;;uBAc9C,KAAK,CAAC,UAAU,WAAW,eAAe;yBAQxC,KAAK,CAAC,UAAU,WAAW,eAAe;;;0BAgBzC,KAAK,CAAC,WAAW;;;yBAelB,KAAK,CAAC,WAAW,WAAW,eAAe;;;yBAa3C,KAAK,CAAC,YAAY,WAAW,eAAe;;;yBAa5C,KAAK,CAAC,WAAW,WAAW,eAAe;;;yBAa3C,KAAK,CAAC,WAAW,WAAW,eAAe;;CAgB/D,CAAC;AAEF,eAAO,MAAM,cAAc,UAE1B,CAAC"}
@@ -142,6 +142,16 @@ export const propertyValidators = {
142
142
  }
143
143
  },
144
144
  },
145
+ union: {
146
+ children: (field) => {
147
+ if (!('children' in field) || !Array.isArray(field.children)) {
148
+ throw new Error(`union field must have a "children" property of type "array"`);
149
+ }
150
+ if (field.children.length < 2) {
151
+ throw new Error(`union field "children" must have at least 2 child nodes`);
152
+ }
153
+ },
154
+ },
145
155
  string: {
146
156
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
147
157
  default: (field, _config) => {
@@ -183,6 +193,7 @@ export const propertyValidators = {
183
193
  },
184
194
  };
185
195
  export const supportedTypes = Object.keys(propertyValidators).filter((key) => key !== 'all' && key !== 'primitive');
196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
197
  const fieldValidations = {
187
198
  primitive: {
188
199
  required: (validation) => {
@@ -287,4 +298,4 @@ const fieldValidations = {
287
298
  },
288
299
  },
289
300
  };
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRQcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS9WYWxpZGF0b3JzL2ZpZWxkUHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSw4RkFBOEY7QUFDOUYsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxLQUF3QixFQUFFLEVBQUU7SUFDdkUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUUsS0FBMkIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsdUJBQXVCLENBQ3BCLEtBQTZCLENBQUMsQ0FBQyxDQUFDLEVBQ2hDLEtBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLE1BQU0s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Q0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksT0FBTyxVQUFVLENBQUMsRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNILENBQUM7UUFDRCxHQUFHLEVBQUUsQ0FBQyxVQUE0QixFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1ZhbGlkYXRvciB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi90eXBlcy9maWVsZHMnO1xuaW1wb3J0IHsgVkFsbCwgVk51bWVyaWMsIFZTdHJpbmcgfSBmcm9tICcuLi90eXBlcy92YWxpZGF0aW9ucyc7XG5cbi8vIEVuc3VyZXMgYSBwcm92aWRlZCB2YWx1ZSBzdHJ1Y3R1cmFsbHkgbWF0Y2hlcyBhIGZpZWxkIHNjaGVtYSAobm9uLXRyYXZlcnNhbCBvZiBzY2hlbWEgdHJlZSlcbmNvbnN0IGFzc2VydFNoYXBlTWF0Y2hlc0ZpZWxkID0gKHZhbHVlOiBhbnksIGZpZWxkOiB0eXBlcy5Db25maWdGaWVsZCkgPT4ge1xuICBpZiAoZmllbGQudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgb2Ygb2JqZWN0IHR5cGUnKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKChmaWVsZCBhcyB0eXBlcy5PYmplY3RGaWVsZCkuY2hpbGRyZW4sIGspKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCIke2t9XCIga2V5IGlzIG5vdCBmb3VuZCBpbiB0aGUgc2NoZW1hYCk7XG4gICAgICB9XG4gICAgICBhc3NlcnRTaGFwZU1hdGNoZXNGaWVsZChcbiAgICAgICAgKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tdLFxuICAgICAgICAoZmllbGQgYXMgdHlwZXMuT2JqZWN0RmllbGQpLmNoaWxkcmVuW2tdLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgb2YgYXJyYXkgdHlwZScpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgIGFzc2VydFNoYXBlTWF0Y2hlc0ZpZWxkKGl0ZW0sIChmaWVsZCBhcyB0eXBlcy5BcnJheUZpZWxkKS5pdGVtcyk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHJldHVybjtcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgb2Ygc3RyaW5nIHR5cGUnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBtdXN0IGJlIG9mIG51bWJlciB0eXBlJyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBtdXN0IGJlIG9mIGJvb2xlYW4gdHlwZScpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYmlnaW50JzpcbiAgICAgIGlmIChcbiAgICAgICAgIShcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnIHx8XG4gICAgICAgICAgKCh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpICYmXG4gICAgICAgICAgICBCaWdJbnQodmFsdWUpKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgbXVzdCBiZSBvZiBiaWdpbnQgdHlwZScpO1xuICAgICAgYnJlYWs7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVZhbGlkYXRvcnMgPSB7XG4gIGFsbDoge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB0eXBlOiAoZmllbGQ6IHR5cGVzLkNvbmZpZ0ZpZWxkLCBfY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmICghT2JqZWN0Lmhhc093bihmaWVsZCwgJ3R5cGUnKSB8fCB0eXBlb2YgZmllbGQudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBldmVyeSBzY2hlbWEgZmllbGQgbXVzdCBoYXZlIGEgXCJ0eXBlXCIgcHJvcGVydHkgb2YgdHlwZSBcInN0cmluZ1wiYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdXBwb3J0ZWRUeXBlcy5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIGZpZWxkIHR5cGUgXCIke2ZpZWxkLnR5cGV9XCJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBsYWJlbDogKGZpZWxkOiB0eXBlcy5Db25maWdGaWVsZCwgX2NvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0Lmhhc093bihmaWVsZCwgJ2xhYmVsJykgJiYgdHlwZW9mIGZpZWxkLmxhYmVsICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibGFiZWxcIiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBcInN0cmluZ1wiYCk7XG4gICAgICB9XG4gICAgfSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZGVzY3JpcHRpb246IChmaWVsZDogdHlwZXMuQ29uZmlnRmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKGZpZWxkLCAnZGVzY3JpcHRpb24nKSAmJlxuICAgICAgICB0eXBlb2YgZmllbGQuZGVzY3JpcHRpb24gIT09ICdzdHJpbmcnXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImRlc2NyaXB0aW9uXCIgcHJvcGVydHkgc2hvdWxkIGJlIGEgXCJzdHJpbmdcImApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIHByaW1pdGl2ZToge1xuICAgIHZhbGlkYXRpb25zOiAoZmllbGQ6IHR5cGVzLlByaW1pdGl2ZUZpZWxkLCBjb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKGZpZWxkLCAndmFsaWRhdGlvbnMnKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShmaWVsZC52YWxpZGF0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdcInZhbGlkYXRpb25zXCIgcHJvcGVydHkgbXVzdCBiZSBhbiBhcnJheSBvZiB2YWxpZGF0aW9uIGRlc2NyaXB0aW9ucycsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgdmFsaWRhdGlvbiBvZiBmaWVsZC52YWxpZGF0aW9ucykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgT2JqZWN0Lmhhc093bih2YWxpZGF0aW9uLCAnZXJyb3InKSAmJlxuICAgICAgICAgIHR5cGVvZiB2YWxpZGF0aW9uLmVycm9yICE9PSAnc3RyaW5nJ1xuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnXCJlcnJvclwiIHByb3BlcnR5IG9mIGEgdmFsaWRhdGlvbiBkZXNjcmlwdGlvbiBtdXN0IGJlIGEgc3RyaW5nJyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24odmFsaWRhdGlvbiwgJ3doZW4nKSAmJiB2YWxpZGF0aW9uLndoZW4gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIU9iamVjdC5oYXNPd24odmFsaWRhdGlvbi53aGVuLCAncGF0aCcpIHx8XG4gICAgICAgICAgICB0eXBlb2YgdmFsaWRhdGlvbi53aGVuLnBhdGggIT09ICdzdHJpbmcnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBcIndoZW5cIiBwcm9wZXJ0eSBvZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRpb24gbXVzdCBoYXZlIGEgXCJwYXRoXCIgcHJvcGVydHkgb2YgdHlwZSBcInN0cmluZ1wiYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLmdldFNjaGVtYUZpZWxkKHZhbGlkYXRpb24ud2hlbi5wYXRoLnNwbGl0KCcuJykpID09IHVuZGVmaW5lZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCJ3aGVuXCIgcHJvcGVydHkgb2YgYSB2YWxpZGF0aW9uIGRlc2NyaXB0aW9uIGhhcyBhIG5vbi1leGlzdGVudCBwYXRoPVske3ZhbGlkYXRpb24ud2hlbi5wYXRofV1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIU9iamVjdC5oYXNPd24odmFsaWRhdGlvbi53aGVuLCAndmFsdWUnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCJ3aGVuXCIgcHJvcGVydHkgb2YgYSB2YWxpZGF0aW9uIGRlc2NyaXB0aW9uIG11c3QgaGF2ZSBhIFwidmFsdWVcIiBwcm9wZXJ0eWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25Qcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModmFsaWRhdGlvbikuZmlsdGVyKFxuICAgICAgICAgIChrZXkpID0+IGtleSAhPT0gJ3doZW4nICYmIGtleSAhPT0gJ2Vycm9yJyxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25Qcm9wZXJ0aWVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsaWRhdGlvbiBkZXNjcmlwdGlvbiBmb3JtYXQgaXMgd3JvbmcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25OYW1lID0gdmFsaWRhdGlvblByb3BlcnRpZXNbMF07XG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZVZhbGlkYXRvciA9IGZpZWxkVmFsaWRhdGlvbnMucHJpbWl0aXZlW3ZhbGlkYXRpb25OYW1lXTtcbiAgICAgICAgY29uc3QgdHlwZVZhbGlkYXRvciA9IGZpZWxkVmFsaWRhdGlvbnNbZmllbGQudHlwZV1bdmFsaWRhdGlvbk5hbWVdO1xuICAgICAgICBpZiAocHJpbWl0aXZlVmFsaWRhdG9yID09IHVuZGVmaW5lZCAmJiB0eXBlVmFsaWRhdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGB2YWxpZGF0aW9uIGRlc2NyaXB0aW9uIGhhcyBhbiB1bmtub3duIHZhbGlkYXRvciBcIiR7dmFsaWRhdGlvbk5hbWV9XCJgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJpbWl0aXZlVmFsaWRhdG9yICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHByaW1pdGl2ZVZhbGlkYXRvcih2YWxpZGF0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0eXBlVmFsaWRhdG9yKHZhbGlkYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgb2JqZWN0OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNoaWxkcmVuOiAoZmllbGQ6IHR5cGVzLk9iamVjdEZpZWxkLCBfY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIU9iamVjdC5oYXNPd24oZmllbGQsICdjaGlsZHJlbicpIHx8XG4gICAgICAgIHR5cGVvZiBmaWVsZC5jaGlsZHJlbiAhPT0gJ29iamVjdCdcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYG9iamVjdCBmaWVsZCB0eXBlIG11c3QgaGF2ZSBhIFwiY2hpbGRyZW5cIiBwcm9wZXJ0eSBvZiB0eXBlIFwib2JqZWN0XCJgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gIH0sXG4gIGFycmF5OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGl0ZW1zOiAoZmllbGQ6IHR5cGVzLkFycmF5RmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKGZpZWxkLCAnaXRlbXMnKSB8fCB0eXBlb2YgZmllbGQuaXRlbXMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgYXJyYXkgZmllbGQgdHlwZSBtdXN0IGhhdmUgYSBcIml0ZW1zXCIgcHJvcGVydHkgb2YgdHlwZSBcIm9iamVjdFwiYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZWZhdWx0OiAoZmllbGQ6IHR5cGVzLkFycmF5RmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKGZpZWxkLCAnZGVmYXVsdCcpKSByZXR1cm47XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoKGZpZWxkIGFzIGFueSkuZGVmYXVsdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBkZWZhdWx0IHZhbHVlPVske1xuICAgICAgICAgICAgKGZpZWxkIGFzIGFueSkuZGVmYXVsdFxuICAgICAgICAgIH1dIGRvZXNuJ3QgbWF0Y2ggZmllbGQgdHlwZT1bJHtmaWVsZC50eXBlfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGVsZW0gb2YgKGZpZWxkIGFzIGFueSkuZGVmYXVsdCBhcyBhbnlbXSkge1xuICAgICAgICBhc3NlcnRTaGFwZU1hdGNoZXNGaWVsZChlbGVtLCBmaWVsZC5pdGVtcyk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgc3RyaW5nOiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuU3RyaW5nRmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKGZpZWxkLCAnZGVmYXVsdCcpICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0ICE9PSAnc3RyaW5nJ1xuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZGVmYXVsdCB2YWx1ZT1bJHtmaWVsZC5kZWZhdWx0fV0gZG9lc24ndCBtYXRjaCBmaWVsZCB0eXBlPVske2ZpZWxkLnR5cGV9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgYm9vbGVhbjoge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZWZhdWx0OiAoZmllbGQ6IHR5cGVzLkJvb2xlYW5GaWVsZCwgX2NvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oZmllbGQsICdkZWZhdWx0JykgJiZcbiAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHQgIT09ICdib29sZWFuJ1xuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZGVmYXVsdCB2YWx1ZT1bJHtmaWVsZC5kZWZhdWx0fV0gZG9lc24ndCBtYXRjaCBmaWVsZCB0eXBlPVske2ZpZWxkLnR5cGV9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuTnVtYmVyRmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKGZpZWxkLCAnZGVmYXVsdCcpICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0ICE9PSAnbnVtYmVyJ1xuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZGVmYXVsdCB2YWx1ZT1bJHtmaWVsZC5kZWZhdWx0fV0gZG9lc24ndCBtYXRjaCBmaWVsZCB0eXBlPVske2ZpZWxkLnR5cGV9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgYmlnaW50OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuQmlnSW50RmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKGZpZWxkLCAnZGVmYXVsdCcpICYmXG4gICAgICAgICEoXG4gICAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHQgPT09ICdiaWdpbnQnIHx8XG4gICAgICAgICAgKCh0eXBlb2YgZmllbGQuZGVmYXVsdCA9PT0gJ251bWJlcicgfHxcbiAgICAgICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0ID09PSAnc3RyaW5nJykgJiZcbiAgICAgICAgICAgIEJpZ0ludChmaWVsZC5kZWZhdWx0KSlcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZGVmYXVsdCB2YWx1ZT1bJHtmaWVsZC5kZWZhdWx0fV0gZG9lc24ndCBtYXRjaCBmaWVsZCB0eXBlPVske2ZpZWxkLnR5cGV9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBzdXBwb3J0ZWRUeXBlcyA9IE9iamVjdC5rZXlzKHByb3BlcnR5VmFsaWRhdG9ycykuZmlsdGVyKFxuICAoa2V5KSA9PiBrZXkgIT09ICdhbGwnICYmIGtleSAhPT0gJ3ByaW1pdGl2ZScsXG4pO1xuXG5jb25zdCBmaWVsZFZhbGlkYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgcHJpbWl0aXZlOiB7XG4gICAgcmVxdWlyZWQ6ICh2YWxpZGF0aW9uOiBWQWxsKSA9PiB7XG4gICAgICBpZiAoISgncmVxdWlyZWQnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLnJlcXVpcmVkICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcInJlcXVpcmVkXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBib29sZWFuYCk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgc3RyaW5nOiB7XG4gICAgcmVnZXg6ICh2YWxpZGF0aW9uOiBWU3RyaW5nKSA9PiB7XG4gICAgICBpZiAoISgncmVnZXgnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5yZWdleCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcInJlZ2V4XCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBzdHJpbmdgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNob2ljZXM6ICh2YWxpZGF0aW9uOiBWU3RyaW5nKSA9PiB7XG4gICAgICBpZiAoISgnY2hvaWNlcycgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbGlkYXRpb24uY2hvaWNlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBcImNob2ljZXNcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhbiBcImFycmF5XCIgb2Ygc3RyaW5nc2AsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgY2hvaWNlIG9mIHZhbGlkYXRpb24uY2hvaWNlcykge1xuICAgICAgICBpZiAodHlwZW9mIGNob2ljZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgXCJjaG9pY2VzXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYW4gYXJyYXkgb2YgXCJzdHJpbmdzXCJgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBib29sZWFuOiB7fSxcbiAgbnVtYmVyOiB7XG4gICAgZ3Q6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxudW1iZXI+KSA9PiB7XG4gICAgICBpZiAoISgnZ3QnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5ndCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImd0XCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBudW1iZXJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGd0ZTogKHZhbGlkYXRpb246IFZOdW1lcmljPG51bWJlcj4pID0+IHtcbiAgICAgIGlmICghKCdndGUnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5ndGUgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJndGVcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIG51bWJlcmApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHQ6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxudW1iZXI+KSA9PiB7XG4gICAgICBpZiAoISgnbHQnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLmx0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibHRcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIG51bWJlcmApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHRlOiAodmFsaWRhdGlvbjogVk51bWVyaWM8bnVtYmVyPikgPT4ge1xuICAgICAgaWYgKCEoJ2x0ZScgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHRlICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibHRlXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBudW1iZXJgKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBiaWdpbnQ6IHtcbiAgICBndDogKHZhbGlkYXRpb246IFZOdW1lcmljPGJpZ2ludD4pID0+IHtcbiAgICAgIGlmICghKCdndCcgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24uZ3QgIT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJndFwiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGEgYmlnaW50YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBndGU6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxiaWdpbnQ+KSA9PiB7XG4gICAgICBpZiAoISgnZ3RlJyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24uZ3RlICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwiZ3RlXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBiaWdpbnRgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0OiAodmFsaWRhdGlvbjogVk51bWVyaWM8YmlnaW50PikgPT4ge1xuICAgICAgaWYgKCEoJ2x0JyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHQgIT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJsdFwiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGEgYmlnaW50YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdGU6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxiaWdpbnQ+KSA9PiB7XG4gICAgICBpZiAoISgnbHRlJyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHRlICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibHRlXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBiaWdpbnRgKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRQcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS9WYWxpZGF0b3JzL2ZpZWxkUHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSw4RkFBOEY7QUFDOUYsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixLQUFzQixFQUN0QixLQUF3QixFQUN4QixFQUFFO0lBQ0YsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUUsS0FBMkIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsdUJBQXVCLENBQ3BCLEtBQXlDLENBQUMsQ0FBQyxDQUFDLEVBQzVDLEtBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLE1B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RUFBRSxDQUFDO2dCQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNILENBQUM7UUFDRCxHQUFHLEVBQUUsQ0FBQyxVQUE0QixFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztRQUNELEVBQUUsRUFBRSxDQUFDLFVBQTRCLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLE9BQU8sVUFBVSxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDO1FBQ0QsR0FBRyxFQUFFLENBQUMsVUFBNEIsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMzQixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksT0FBTyxVQUFVLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi4vdHlwZXMvZmllbGRzJztcbmltcG9ydCB7IFZBbGwsIFZOdW1lcmljLCBWU3RyaW5nIH0gZnJvbSAnLi4vdHlwZXMvdmFsaWRhdGlvbnMnO1xuXG4vLyBFbnN1cmVzIGEgcHJvdmlkZWQgdmFsdWUgc3RydWN0dXJhbGx5IG1hdGNoZXMgYSBmaWVsZCBzY2hlbWEgKG5vbi10cmF2ZXJzYWwgb2Ygc2NoZW1hIHRyZWUpXG5jb25zdCBhc3NlcnRTaGFwZU1hdGNoZXNGaWVsZCA9IChcbiAgdmFsdWU6IHR5cGVzLlZhbHVlVHlwZSxcbiAgZmllbGQ6IHR5cGVzLkNvbmZpZ0ZpZWxkLFxuKSA9PiB7XG4gIGlmIChmaWVsZC50eXBlID09PSAnb2JqZWN0Jykge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgbXVzdCBiZSBvZiBvYmplY3QgdHlwZScpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oKGZpZWxkIGFzIHR5cGVzLk9iamVjdEZpZWxkKS5jaGlsZHJlbiwgaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIiR7a31cIiBrZXkgaXMgbm90IGZvdW5kIGluIHRoZSBzY2hlbWFgKTtcbiAgICAgIH1cbiAgICAgIGFzc2VydFNoYXBlTWF0Y2hlc0ZpZWxkKFxuICAgICAgICAodmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdHlwZXMuVmFsdWVUeXBlPilba10sXG4gICAgICAgIChmaWVsZCBhcyB0eXBlcy5PYmplY3RGaWVsZCkuY2hpbGRyZW5ba10sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgbXVzdCBiZSBvZiBhcnJheSB0eXBlJyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgYXNzZXJ0U2hhcGVNYXRjaGVzRmllbGQoaXRlbSwgKGZpZWxkIGFzIHR5cGVzLkFycmF5RmllbGQpLml0ZW1zKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgbXVzdCBiZSBvZiBzdHJpbmcgdHlwZScpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgb2YgbnVtYmVyIHR5cGUnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgb2YgYm9vbGVhbiB0eXBlJyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgaWYgKFxuICAgICAgICAhKFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgfHxcbiAgICAgICAgICAoKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgJiZcbiAgICAgICAgICAgIEJpZ0ludCh2YWx1ZSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBtdXN0IGJlIG9mIGJpZ2ludCB0eXBlJyk7XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHByb3BlcnR5VmFsaWRhdG9ycyA9IHtcbiAgYWxsOiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHR5cGU6IChmaWVsZDogdHlwZXMuQ29uZmlnRmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKCFPYmplY3QuaGFzT3duKGZpZWxkLCAndHlwZScpIHx8IHR5cGVvZiBmaWVsZC50eXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGV2ZXJ5IHNjaGVtYSBmaWVsZCBtdXN0IGhhdmUgYSBcInR5cGVcIiBwcm9wZXJ0eSBvZiB0eXBlIFwic3RyaW5nXCJgLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN1cHBvcnRlZFR5cGVzLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgZmllbGQgdHlwZSBcIiR7ZmllbGQudHlwZX1cImApO1xuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGxhYmVsOiAoZmllbGQ6IHR5cGVzLkNvbmZpZ0ZpZWxkLCBfY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmIChPYmplY3QuaGFzT3duKGZpZWxkLCAnbGFiZWwnKSAmJiB0eXBlb2YgZmllbGQubGFiZWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJsYWJlbFwiIHByb3BlcnR5IHNob3VsZCBiZSBhIFwic3RyaW5nXCJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZXNjcmlwdGlvbjogKGZpZWxkOiB0eXBlcy5Db25maWdGaWVsZCwgX2NvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oZmllbGQsICdkZXNjcmlwdGlvbicpICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5kZXNjcmlwdGlvbiAhPT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwiZGVzY3JpcHRpb25cIiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBcInN0cmluZ1wiYCk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgcHJpbWl0aXZlOiB7XG4gICAgdmFsaWRhdGlvbnM6IChmaWVsZDogdHlwZXMuUHJpbWl0aXZlRmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oZmllbGQsICd2YWxpZGF0aW9ucycpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkLnZhbGlkYXRpb25zKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1widmFsaWRhdGlvbnNcIiBwcm9wZXJ0eSBtdXN0IGJlIGFuIGFycmF5IG9mIHZhbGlkYXRpb24gZGVzY3JpcHRpb25zJyxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCB2YWxpZGF0aW9uIG9mIGZpZWxkLnZhbGlkYXRpb25zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QuaGFzT3duKHZhbGlkYXRpb24sICdlcnJvcicpICYmXG4gICAgICAgICAgdHlwZW9mIHZhbGlkYXRpb24uZXJyb3IgIT09ICdzdHJpbmcnXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdcImVycm9yXCIgcHJvcGVydHkgb2YgYSB2YWxpZGF0aW9uIGRlc2NyaXB0aW9uIG11c3QgYmUgYSBzdHJpbmcnLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bih2YWxpZGF0aW9uLCAnd2hlbicpICYmIHZhbGlkYXRpb24ud2hlbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhT2JqZWN0Lmhhc093bih2YWxpZGF0aW9uLndoZW4sICdwYXRoJykgfHxcbiAgICAgICAgICAgIHR5cGVvZiB2YWxpZGF0aW9uLndoZW4ucGF0aCAhPT0gJ3N0cmluZydcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFwid2hlblwiIHByb3BlcnR5IG9mIGEgdmFsaWRhdGlvbiBkZXNjcmlwdGlvbiBtdXN0IGhhdmUgYSBcInBhdGhcIiBwcm9wZXJ0eSBvZiB0eXBlIFwic3RyaW5nXCJgLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuZ2V0U2NoZW1hRmllbGQodmFsaWRhdGlvbi53aGVuLnBhdGguc3BsaXQoJy4nKSkgPT0gdW5kZWZpbmVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBcIndoZW5cIiBwcm9wZXJ0eSBvZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRpb24gaGFzIGEgbm9uLWV4aXN0ZW50IHBhdGg9WyR7dmFsaWRhdGlvbi53aGVuLnBhdGh9XWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghT2JqZWN0Lmhhc093bih2YWxpZGF0aW9uLndoZW4sICd2YWx1ZScpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBcIndoZW5cIiBwcm9wZXJ0eSBvZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRpb24gbXVzdCBoYXZlIGEgXCJ2YWx1ZVwiIHByb3BlcnR5YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdGlvblByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh2YWxpZGF0aW9uKS5maWx0ZXIoXG4gICAgICAgICAgKGtleSkgPT4ga2V5ICE9PSAnd2hlbicgJiYga2V5ICE9PSAnZXJyb3InLFxuICAgICAgICApO1xuICAgICAgICBpZiAodmFsaWRhdGlvblByb3BlcnRpZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWxpZGF0aW9uIGRlc2NyaXB0aW9uIGZvcm1hdCBpcyB3cm9uZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdGlvbk5hbWUgPSB2YWxpZGF0aW9uUHJvcGVydGllc1swXTtcbiAgICAgICAgY29uc3QgcHJpbWl0aXZlVmFsaWRhdG9yID0gZmllbGRWYWxpZGF0aW9ucy5wcmltaXRpdmVbdmFsaWRhdGlvbk5hbWVdO1xuICAgICAgICBjb25zdCB0eXBlVmFsaWRhdG9yID0gZmllbGRWYWxpZGF0aW9uc1tmaWVsZC50eXBlXVt2YWxpZGF0aW9uTmFtZV07XG4gICAgICAgIGlmIChwcmltaXRpdmVWYWxpZGF0b3IgPT0gdW5kZWZpbmVkICYmIHR5cGVWYWxpZGF0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYHZhbGlkYXRpb24gZGVzY3JpcHRpb24gaGFzIGFuIHVua25vd24gdmFsaWRhdG9yIFwiJHt2YWxpZGF0aW9uTmFtZX1cImAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmltaXRpdmVWYWxpZGF0b3IgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcHJpbWl0aXZlVmFsaWRhdG9yKHZhbGlkYXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHR5cGVWYWxpZGF0b3IodmFsaWRhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBvYmplY3Q6IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY2hpbGRyZW46IChmaWVsZDogdHlwZXMuT2JqZWN0RmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhT2JqZWN0Lmhhc093bihmaWVsZCwgJ2NoaWxkcmVuJykgfHxcbiAgICAgICAgdHlwZW9mIGZpZWxkLmNoaWxkcmVuICE9PSAnb2JqZWN0J1xuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgb2JqZWN0IGZpZWxkIHR5cGUgbXVzdCBoYXZlIGEgXCJjaGlsZHJlblwiIHByb3BlcnR5IG9mIHR5cGUgXCJvYmplY3RcImAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfSxcbiAgfSxcbiAgYXJyYXk6IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgaXRlbXM6IChmaWVsZDogdHlwZXMuQXJyYXlGaWVsZCwgX2NvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oZmllbGQsICdpdGVtcycpIHx8IHR5cGVvZiBmaWVsZC5pdGVtcyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBhcnJheSBmaWVsZCB0eXBlIG11c3QgaGF2ZSBhIFwiaXRlbXNcIiBwcm9wZXJ0eSBvZiB0eXBlIFwib2JqZWN0XCJgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuQXJyYXlGaWVsZCwgX2NvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oZmllbGQsICdkZWZhdWx0JykpIHJldHVybjtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShmaWVsZC5kZWZhdWx0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGRlZmF1bHQgdmFsdWU9WyR7XG4gICAgICAgICAgICBmaWVsZC5kZWZhdWx0XG4gICAgICAgICAgfV0gZG9lc24ndCBtYXRjaCBmaWVsZCB0eXBlPVske2ZpZWxkLnR5cGV9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZWxlbSBvZiBmaWVsZC5kZWZhdWx0KSB7XG4gICAgICAgIGFzc2VydFNoYXBlTWF0Y2hlc0ZpZWxkKGVsZW0sIGZpZWxkLml0ZW1zKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICB1bmlvbjoge1xuICAgIGNoaWxkcmVuOiAoZmllbGQ6IHR5cGVzLkNvbmZpZ0ZpZWxkKSA9PiB7XG4gICAgICBpZiAoISgnY2hpbGRyZW4nIGluIGZpZWxkKSB8fCAhQXJyYXkuaXNBcnJheShmaWVsZC5jaGlsZHJlbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGB1bmlvbiBmaWVsZCBtdXN0IGhhdmUgYSBcImNoaWxkcmVuXCIgcHJvcGVydHkgb2YgdHlwZSBcImFycmF5XCJgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmNoaWxkcmVuLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGB1bmlvbiBmaWVsZCBcImNoaWxkcmVuXCIgbXVzdCBoYXZlIGF0IGxlYXN0IDIgY2hpbGQgbm9kZXNgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIHN0cmluZzoge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZWZhdWx0OiAoZmllbGQ6IHR5cGVzLlN0cmluZ0ZpZWxkLCBfY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0Lmhhc093bihmaWVsZCwgJ2RlZmF1bHQnKSAmJlxuICAgICAgICB0eXBlb2YgZmllbGQuZGVmYXVsdCAhPT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGRlZmF1bHQgdmFsdWU9WyR7ZmllbGQuZGVmYXVsdH1dIGRvZXNuJ3QgbWF0Y2ggZmllbGQgdHlwZT1bJHtmaWVsZC50eXBlfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJvb2xlYW46IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZGVmYXVsdDogKGZpZWxkOiB0eXBlcy5Cb29sZWFuRmllbGQsIF9jb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QuaGFzT3duKGZpZWxkLCAnZGVmYXVsdCcpICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0ICE9PSAnYm9vbGVhbidcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGRlZmF1bHQgdmFsdWU9WyR7ZmllbGQuZGVmYXVsdH1dIGRvZXNuJ3QgbWF0Y2ggZmllbGQgdHlwZT1bJHtmaWVsZC50eXBlfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZWZhdWx0OiAoZmllbGQ6IHR5cGVzLk51bWJlckZpZWxkLCBfY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0Lmhhc093bihmaWVsZCwgJ2RlZmF1bHQnKSAmJlxuICAgICAgICB0eXBlb2YgZmllbGQuZGVmYXVsdCAhPT0gJ251bWJlcidcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGRlZmF1bHQgdmFsdWU9WyR7ZmllbGQuZGVmYXVsdH1dIGRvZXNuJ3QgbWF0Y2ggZmllbGQgdHlwZT1bJHtmaWVsZC50eXBlfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJpZ2ludDoge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZWZhdWx0OiAoZmllbGQ6IHR5cGVzLkJpZ0ludEZpZWxkLCBfY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0Lmhhc093bihmaWVsZCwgJ2RlZmF1bHQnKSAmJlxuICAgICAgICAhKFxuICAgICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0ID09PSAnYmlnaW50JyB8fFxuICAgICAgICAgICgodHlwZW9mIGZpZWxkLmRlZmF1bHQgPT09ICdudW1iZXInIHx8XG4gICAgICAgICAgICB0eXBlb2YgZmllbGQuZGVmYXVsdCA9PT0gJ3N0cmluZycpICYmXG4gICAgICAgICAgICBCaWdJbnQoZmllbGQuZGVmYXVsdCkpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGRlZmF1bHQgdmFsdWU9WyR7ZmllbGQuZGVmYXVsdH1dIGRvZXNuJ3QgbWF0Y2ggZmllbGQgdHlwZT1bJHtmaWVsZC50eXBlfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc3VwcG9ydGVkVHlwZXMgPSBPYmplY3Qua2V5cyhwcm9wZXJ0eVZhbGlkYXRvcnMpLmZpbHRlcihcbiAgKGtleSkgPT4ga2V5ICE9PSAnYWxsJyAmJiBrZXkgIT09ICdwcmltaXRpdmUnLFxuKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmNvbnN0IGZpZWxkVmFsaWRhdGlvbnM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICBwcmltaXRpdmU6IHtcbiAgICByZXF1aXJlZDogKHZhbGlkYXRpb246IFZBbGwpID0+IHtcbiAgICAgIGlmICghKCdyZXF1aXJlZCcgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ucmVxdWlyZWQgIT09ICdib29sZWFuJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwicmVxdWlyZWRcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIGJvb2xlYW5gKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBzdHJpbmc6IHtcbiAgICByZWdleDogKHZhbGlkYXRpb246IFZTdHJpbmcpID0+IHtcbiAgICAgIGlmICghKCdyZWdleCcgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLnJlZ2V4ICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwicmVnZXhcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIHN0cmluZ2ApO1xuICAgICAgfVxuICAgIH0sXG4gICAgY2hvaWNlczogKHZhbGlkYXRpb246IFZTdHJpbmcpID0+IHtcbiAgICAgIGlmICghKCdjaG9pY2VzJyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsaWRhdGlvbi5jaG9pY2VzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFwiY2hvaWNlc1wiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGFuIFwiYXJyYXlcIiBvZiBzdHJpbmdzYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjaG9pY2Ugb2YgdmFsaWRhdGlvbi5jaG9pY2VzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2hvaWNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBcImNob2ljZXNcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhbiBhcnJheSBvZiBcInN0cmluZ3NcImAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJvb2xlYW46IHt9LFxuICBudW1iZXI6IHtcbiAgICBndDogKHZhbGlkYXRpb246IFZOdW1lcmljPG51bWJlcj4pID0+IHtcbiAgICAgIGlmICghKCdndCcgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLmd0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwiZ3RcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIG51bWJlcmApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3RlOiAodmFsaWRhdGlvbjogVk51bWVyaWM8bnVtYmVyPikgPT4ge1xuICAgICAgaWYgKCEoJ2d0ZScgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLmd0ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImd0ZVwiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGEgbnVtYmVyYCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdDogKHZhbGlkYXRpb246IFZOdW1lcmljPG51bWJlcj4pID0+IHtcbiAgICAgIGlmICghKCdsdCcgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHQgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJsdFwiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGEgbnVtYmVyYCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdGU6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxudW1iZXI+KSA9PiB7XG4gICAgICBpZiAoISgnbHRlJyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5sdGUgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJsdGVcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIG51bWJlcmApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJpZ2ludDoge1xuICAgIGd0OiAodmFsaWRhdGlvbjogVk51bWVyaWM8YmlnaW50PikgPT4ge1xuICAgICAgaWYgKCEoJ2d0JyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5ndCAhPT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImd0XCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBiaWdpbnRgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGd0ZTogKHZhbGlkYXRpb246IFZOdW1lcmljPGJpZ2ludD4pID0+IHtcbiAgICAgIGlmICghKCdndGUnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5ndGUgIT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJndGVcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIGJpZ2ludGApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHQ6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxiaWdpbnQ+KSA9PiB7XG4gICAgICBpZiAoISgnbHQnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5sdCAhPT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImx0XCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBiaWdpbnRgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0ZTogKHZhbGlkYXRpb246IFZOdW1lcmljPGJpZ2ludD4pID0+IHtcbiAgICAgIGlmICghKCdsdGUnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5sdGUgIT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJsdGVcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIGJpZ2ludGApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuIl19
@@ -1,7 +1,7 @@
1
1
  import { VBoolean, VNumeric, VString } from './validations';
2
2
  export type PrimitiveValue = string | boolean | number | bigint;
3
3
  export type ConfigSchema = Record<string, ConfigField>;
4
- export type ConfigField = ObjectField | ArrayField | PrimitiveField;
4
+ export type ConfigField = ObjectField | ArrayField | PrimitiveField | UnionField;
5
5
  export type PrimitiveField = StringField | NumberField | BigIntField | BooleanField;
6
6
  export interface ObjectField {
7
7
  type: 'object';
@@ -9,13 +9,22 @@ export interface ObjectField {
9
9
  label?: string;
10
10
  children: ConfigSchema;
11
11
  }
12
+ export type ValueType = PrimitiveValue | {
13
+ [key: string]: ValueType;
14
+ } | ValueType[];
12
15
  export interface ArrayField {
13
16
  type: 'array';
14
17
  description?: string;
15
18
  label?: string;
16
- default?: any[];
19
+ default?: ValueType[];
17
20
  items: ConfigField;
18
21
  }
22
+ export interface UnionField {
23
+ type: 'union';
24
+ description?: string;
25
+ label?: string;
26
+ children: ConfigField[];
27
+ }
19
28
  export interface GenericField<T> {
20
29
  default?: T;
21
30
  description?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../lib/schema/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;AAEpE,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY,CAAC,OAAO,CAAC;IACzD,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../lib/schema/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,UAAU,GACV,cAAc,GACd,UAAU,CAAC;AAEf,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GACjB,cAAc,GACd;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,SAAS,EAAE,CAAC;AAEhB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY,CAAC,OAAO,CAAC;IACzD,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS90eXBlcy9maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZCb29sZWFuLCBWTnVtZXJpYywgVlN0cmluZyB9IGZyb20gJy4vdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVWYWx1ZSA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBiaWdpbnQ7XG5cbmV4cG9ydCB0eXBlIENvbmZpZ1NjaGVtYSA9IFJlY29yZDxzdHJpbmcsIENvbmZpZ0ZpZWxkPjtcblxuZXhwb3J0IHR5cGUgQ29uZmlnRmllbGQgPSBPYmplY3RGaWVsZCB8IEFycmF5RmllbGQgfCBQcmltaXRpdmVGaWVsZDtcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlRmllbGQgPVxuICB8IFN0cmluZ0ZpZWxkXG4gIHwgTnVtYmVyRmllbGRcbiAgfCBCaWdJbnRGaWVsZFxuICB8IEJvb2xlYW5GaWVsZDtcblxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RGaWVsZCB7XG4gIHR5cGU6ICdvYmplY3QnO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBDb25maWdTY2hlbWE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGaWVsZCB7XG4gIHR5cGU6ICdhcnJheSc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgZGVmYXVsdD86IGFueVtdO1xuICBpdGVtczogQ29uZmlnRmllbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0ZpZWxkPFQ+IHtcbiAgZGVmYXVsdD86IFQ7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdGaWVsZCBleHRlbmRzIEdlbmVyaWNGaWVsZDxzdHJpbmc+IHtcbiAgdHlwZTogJ3N0cmluZyc7XG4gIHZhbGlkYXRpb25zPzogVlN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlckZpZWxkIGV4dGVuZHMgR2VuZXJpY0ZpZWxkPG51bWJlcj4ge1xuICB0eXBlOiAnbnVtYmVyJztcbiAgdmFsaWRhdGlvbnM/OiBWTnVtZXJpYzxudW1iZXI+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmlnSW50RmllbGQgZXh0ZW5kcyBHZW5lcmljRmllbGQ8YmlnaW50PiB7XG4gIHR5cGU6ICdiaWdpbnQnO1xuICB2YWxpZGF0aW9ucz86IFZOdW1lcmljPGJpZ2ludD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29sZWFuRmllbGQgZXh0ZW5kcyBHZW5lcmljRmllbGQ8Ym9vbGVhbj4ge1xuICB0eXBlOiAnYm9vbGVhbic7XG4gIHZhbGlkYXRpb25zPzogVkJvb2xlYW5bXTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS90eXBlcy9maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZCb29sZWFuLCBWTnVtZXJpYywgVlN0cmluZyB9IGZyb20gJy4vdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVWYWx1ZSA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBiaWdpbnQ7XG5cbmV4cG9ydCB0eXBlIENvbmZpZ1NjaGVtYSA9IFJlY29yZDxzdHJpbmcsIENvbmZpZ0ZpZWxkPjtcblxuZXhwb3J0IHR5cGUgQ29uZmlnRmllbGQgPVxuICB8IE9iamVjdEZpZWxkXG4gIHwgQXJyYXlGaWVsZFxuICB8IFByaW1pdGl2ZUZpZWxkXG4gIHwgVW5pb25GaWVsZDtcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlRmllbGQgPVxuICB8IFN0cmluZ0ZpZWxkXG4gIHwgTnVtYmVyRmllbGRcbiAgfCBCaWdJbnRGaWVsZFxuICB8IEJvb2xlYW5GaWVsZDtcblxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RGaWVsZCB7XG4gIHR5cGU6ICdvYmplY3QnO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBDb25maWdTY2hlbWE7XG59XG5cbmV4cG9ydCB0eXBlIFZhbHVlVHlwZSA9XG4gIHwgUHJpbWl0aXZlVmFsdWVcbiAgfCB7IFtrZXk6IHN0cmluZ106IFZhbHVlVHlwZSB9XG4gIHwgVmFsdWVUeXBlW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGaWVsZCB7XG4gIHR5cGU6ICdhcnJheSc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgZGVmYXVsdD86IFZhbHVlVHlwZVtdO1xuICBpdGVtczogQ29uZmlnRmllbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5pb25GaWVsZCB7XG4gIHR5cGU6ICd1bmlvbic7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgY2hpbGRyZW46IENvbmZpZ0ZpZWxkW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0ZpZWxkPFQ+IHtcbiAgZGVmYXVsdD86IFQ7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdGaWVsZCBleHRlbmRzIEdlbmVyaWNGaWVsZDxzdHJpbmc+IHtcbiAgdHlwZTogJ3N0cmluZyc7XG4gIHZhbGlkYXRpb25zPzogVlN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlckZpZWxkIGV4dGVuZHMgR2VuZXJpY0ZpZWxkPG51bWJlcj4ge1xuICB0eXBlOiAnbnVtYmVyJztcbiAgdmFsaWRhdGlvbnM/OiBWTnVtZXJpYzxudW1iZXI+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmlnSW50RmllbGQgZXh0ZW5kcyBHZW5lcmljRmllbGQ8YmlnaW50PiB7XG4gIHR5cGU6ICdiaWdpbnQnO1xuICB2YWxpZGF0aW9ucz86IFZOdW1lcmljPGJpZ2ludD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29sZWFuRmllbGQgZXh0ZW5kcyBHZW5lcmljRmllbGQ8Ym9vbGVhbj4ge1xuICB0eXBlOiAnYm9vbGVhbic7XG4gIHZhbGlkYXRpb25zPzogVkJvb2xlYW5bXTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,GAAG,EACR,MAAM,MAAM,EAAE,KACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAUhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,aAAa,KAAG,MAIrD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,aAAa,EAAE,EACxB,MAAM,MAAM,EAAE,QAmBf,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAO9C,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAEnB,KAAK,GAAG,EACR,MAAM,MAAM,EAAE,KAEb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAUhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,aAAa,KAAG,MAIrD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,aAAa,EAAE,EACxB,MAAM,MAAM,EAAE,QAmBf,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAO9C,CAAC"}
package/dist/utils.js CHANGED
@@ -7,7 +7,9 @@ import path from 'path';
7
7
  * @param {string[]} path path to the value to be returned
8
8
  * @return {{ defined: boolean; value: any }}
9
9
  */
10
- export const getValue = (obj, path) => {
10
+ export const getValue = (
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ obj, path) => {
11
13
  let value = obj;
12
14
  for (const key of path) {
13
15
  if (value != undefined && Object.hasOwn(value, key)) {
@@ -68,4 +70,4 @@ export const toPascalCase = (segment) => {
68
70
  .map((part) => part.length > 0 ? part[0].toUpperCase() + part.slice(1) : '')
69
71
  .join('');
70
72
  };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsR0FBUSxFQUNSLElBQWMsRUFDb0IsRUFBRTtJQUNwQyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDaEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBcUIsRUFBVSxFQUFFO0lBQzdELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsT0FBd0IsRUFDeEIsSUFBYyxFQUNkLEVBQUU7SUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssOEJBQThCLEVBQUUsQ0FBQztZQUM3RCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDckMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRTtJQUN0RCxPQUFPLE9BQU87U0FDWCxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDWixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0Q7U0FDQSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29uZmlnU291cmNlIH0gZnJvbSAnY29uZmlnJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vKipcbiAqIHJldHVybnMgdGhlIHZhbHVlIGF0IGEgcGF0aCBpbiB0aGUgcGFzc2VkIG9iamVjdCwgYW5kIGlmIGl0IGhhcyBhIHZhbHVlXG4gKiBkZWZpbmVkIGF0IHRoYXQgcGF0aFxuICpcbiAqIEBwYXJhbSB7Kn0gb2JqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIHBhdGggdG8gdGhlIHZhbHVlIHRvIGJlIHJldHVybmVkXG4gKiBAcmV0dXJuIHt7IGRlZmluZWQ6IGJvb2xlYW47IHZhbHVlOiBhbnkgfX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKFxuICBvYmo6IGFueSxcbiAgcGF0aDogc3RyaW5nW10sXG4pOiB7IGRlZmluZWQ6IGJvb2xlYW47IHZhbHVlOiBhbnkgfSA9PiB7XG4gIGxldCB2YWx1ZSA9IG9iajtcbiAgZm9yIChjb25zdCBrZXkgb2YgcGF0aCkge1xuICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQgJiYgT2JqZWN0Lmhhc093bih2YWx1ZSwga2V5KSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBkZWZpbmVkOiBmYWxzZSwgdmFsdWU6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBkZWZpbmVkOiB0cnVlLCB2YWx1ZSB9O1xufTtcblxuLyoqXG4gKiByZXR1cm5zIHNvdXJjZSBuYW1lL2xldmVsIGZvciBhIG5vZGUgY29uZmlnIHNvdXJjZVxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7SUNvbmZpZ1NvdXJjZX0gc291cmNlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTb3VyY2VOYW1lID0gKHNvdXJjZTogSUNvbmZpZ1NvdXJjZSk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBzb3VyY2UubmFtZS5zdGFydHNXaXRoKCckJylcbiAgICA/IHNvdXJjZS5uYW1lXG4gICAgOiBwYXRoLnBhcnNlKHNvdXJjZS5uYW1lKS5uYW1lO1xufTtcblxuLyoqXG4gKiByZXR1cm5zIGEgY29uZmlnIGtleSBmcm9tIHRoZSBoaWdoZXN0IGxldmVsIHNvdXJjZSBpbiBhbiBhcnJheSBvZiBzb3VyY2VzXG4gKlxuICogQHBhcmFtIHtJQ29uZmlnU291cmNlW119IHNvdXJjZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhcbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWYWx1ZUZyb21Db25maWdTb3VyY2VzID0gKFxuICBzb3VyY2VzOiBJQ29uZmlnU291cmNlW10sXG4gIHBhdGg6IHN0cmluZ1tdLFxuKSA9PiB7XG4gIGZvciAobGV0IGkgPSBzb3VyY2VzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3Qgc291cmNlID0gc291cmNlc1tpXTtcbiAgICBpZiAoZ2V0U291cmNlTmFtZShzb3VyY2UpID09PSAnY3VzdG9tLWVudmlyb25tZW50LXZhcmlhYmxlcycpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWU6IGVudlZhciwgZGVmaW5lZCB9ID0gZ2V0VmFsdWUoc291cmNlLnBhcnNlZCwgcGF0aCk7XG4gICAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnZbZW52VmFyXSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzcy5lbnZbZW52VmFyXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBkZWZpbmVkIH0gPSBnZXRWYWx1ZShzb3VyY2UucGFyc2VkLCBwYXRoKTtcbiAgICAgIGlmIChkZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEga2ViYWItY2FzZSBvciBsb3dlcmNhc2Ugc3RyaW5nIHRvIFBhc2NhbENhc2UgKGUuZy4gJ2JpdGNvaW4tcnVuZXMnIC0+ICdCaXRjb2luUnVuZXMnKS5cbiAqIFVzZWQgd2hlbiBnZW5lcmF0aW5nIFR5cGVTY3JpcHQgdHlwZSBuYW1lcyBmcm9tIHNjaGVtYSBwYXRoIGtleXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0b1Bhc2NhbENhc2UgPSAoc2VnbWVudDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHNlZ21lbnRcbiAgICAuc3BsaXQoJy0nKVxuICAgIC5tYXAoKHBhcnQpID0+XG4gICAgICBwYXJ0Lmxlbmd0aCA+IDAgPyBwYXJ0WzBdLnRvVXBwZXJDYXNlKCkgKyBwYXJ0LnNsaWNlKDEpIDogJycsXG4gICAgKVxuICAgIC5qb2luKCcnKTtcbn07XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7QUFDdEIsOERBQThEO0FBQzlELEdBQVEsRUFDUixJQUFjLEVBRW9CLEVBQUU7SUFDcEMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQXFCLEVBQVUsRUFBRTtJQUM3RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ25DLENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQ3ZDLE9BQXdCLEVBQ3hCLElBQWMsRUFDZCxFQUFFO0lBQ0YsS0FBSyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLDhCQUE4QixFQUFFLENBQUM7WUFDN0QsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ3JDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUU7SUFDdEQsT0FBTyxPQUFPO1NBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdEO1NBQ0EsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbmZpZ1NvdXJjZSB9IGZyb20gJ2NvbmZpZyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuLyoqXG4gKiByZXR1cm5zIHRoZSB2YWx1ZSBhdCBhIHBhdGggaW4gdGhlIHBhc3NlZCBvYmplY3QsIGFuZCBpZiBpdCBoYXMgYSB2YWx1ZVxuICogZGVmaW5lZCBhdCB0aGF0IHBhdGhcbiAqXG4gKiBAcGFyYW0geyp9IG9ialxuICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aCBwYXRoIHRvIHRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZFxuICogQHJldHVybiB7eyBkZWZpbmVkOiBib29sZWFuOyB2YWx1ZTogYW55IH19XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWYWx1ZSA9IChcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgb2JqOiBhbnksXG4gIHBhdGg6IHN0cmluZ1tdLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuKTogeyBkZWZpbmVkOiBib29sZWFuOyB2YWx1ZTogYW55IH0gPT4ge1xuICBsZXQgdmFsdWUgPSBvYmo7XG4gIGZvciAoY29uc3Qga2V5IG9mIHBhdGgpIHtcbiAgICBpZiAodmFsdWUgIT0gdW5kZWZpbmVkICYmIE9iamVjdC5oYXNPd24odmFsdWUsIGtleSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgZGVmaW5lZDogZmFsc2UsIHZhbHVlOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgZGVmaW5lZDogdHJ1ZSwgdmFsdWUgfTtcbn07XG5cbi8qKlxuICogcmV0dXJucyBzb3VyY2UgbmFtZS9sZXZlbCBmb3IgYSBub2RlIGNvbmZpZyBzb3VyY2VcbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge0lDb25maWdTb3VyY2V9IHNvdXJjZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgZ2V0U291cmNlTmFtZSA9IChzb3VyY2U6IElDb25maWdTb3VyY2UpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc291cmNlLm5hbWUuc3RhcnRzV2l0aCgnJCcpXG4gICAgPyBzb3VyY2UubmFtZVxuICAgIDogcGF0aC5wYXJzZShzb3VyY2UubmFtZSkubmFtZTtcbn07XG5cbi8qKlxuICogcmV0dXJucyBhIGNvbmZpZyBrZXkgZnJvbSB0aGUgaGlnaGVzdCBsZXZlbCBzb3VyY2UgaW4gYW4gYXJyYXkgb2Ygc291cmNlc1xuICpcbiAqIEBwYXJhbSB7SUNvbmZpZ1NvdXJjZVtdfSBzb3VyY2VzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoXG4gKiBAcmV0dXJuIHsqfVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWVGcm9tQ29uZmlnU291cmNlcyA9IChcbiAgc291cmNlczogSUNvbmZpZ1NvdXJjZVtdLFxuICBwYXRoOiBzdHJpbmdbXSxcbikgPT4ge1xuICBmb3IgKGxldCBpID0gc291cmNlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXNbaV07XG4gICAgaWYgKGdldFNvdXJjZU5hbWUoc291cmNlKSA9PT0gJ2N1c3RvbS1lbnZpcm9ubWVudC12YXJpYWJsZXMnKSB7XG4gICAgICBjb25zdCB7IHZhbHVlOiBlbnZWYXIsIGRlZmluZWQgfSA9IGdldFZhbHVlKHNvdXJjZS5wYXJzZWQsIHBhdGgpO1xuICAgICAgaWYgKGRlZmluZWQpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52W2VudlZhcl0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW52W2VudlZhcl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgZGVmaW5lZCB9ID0gZ2V0VmFsdWUoc291cmNlLnBhcnNlZCwgcGF0aCk7XG4gICAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGtlYmFiLWNhc2Ugb3IgbG93ZXJjYXNlIHN0cmluZyB0byBQYXNjYWxDYXNlIChlLmcuICdiaXRjb2luLXJ1bmVzJyAtPiAnQml0Y29pblJ1bmVzJykuXG4gKiBVc2VkIHdoZW4gZ2VuZXJhdGluZyBUeXBlU2NyaXB0IHR5cGUgbmFtZXMgZnJvbSBzY2hlbWEgcGF0aCBrZXlzLlxuICovXG5leHBvcnQgY29uc3QgdG9QYXNjYWxDYXNlID0gKHNlZ21lbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBzZWdtZW50XG4gICAgLnNwbGl0KCctJylcbiAgICAubWFwKChwYXJ0KSA9PlxuICAgICAgcGFydC5sZW5ndGggPiAwID8gcGFydFswXS50b1VwcGVyQ2FzZSgpICsgcGFydC5zbGljZSgxKSA6ICcnLFxuICAgIClcbiAgICAuam9pbignJyk7XG59O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../lib/value/validators.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA2C/C,CAAC;AAiBF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6MhE,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../lib/value/validators.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA+D/C,CAAC;AAwBF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAuNhE,CAAC"}
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1
2
  export const valueValidators = {
2
3
  object: (value, field) => {
3
4
  if (typeof value !== 'object') {
@@ -11,6 +12,21 @@ export const valueValidators = {
11
12
  }
12
13
  },
13
14
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ union: (value, _field) => {
16
+ const validUnionTypes = [
17
+ 'object',
18
+ 'array',
19
+ 'boolean',
20
+ 'union',
21
+ 'string',
22
+ 'number',
23
+ 'bigint',
24
+ ];
25
+ if (!validUnionTypes.includes(typeof value)) {
26
+ throw new Error('Value does not match any of the valid union children types.');
27
+ }
28
+ },
29
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
30
  array: (value, _field) => {
15
31
  if (!Array.isArray(value)) {
16
32
  throw new Error(`value must be of array type`);
@@ -41,19 +57,27 @@ export const valueValidators = {
41
57
  }
42
58
  },
43
59
  };
44
- const required = (value, validation, config, configValidator) => {
45
- if (validation.when && !configValidator.isWhenTrue(validation.when, config)) {
60
+ const required = (value, validation,
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ config, configValidator,
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ context) => {
65
+ if (validation.when &&
66
+ !configValidator.isWhenTrue(validation.when, config, context)) {
46
67
  return;
47
68
  }
48
69
  if (validation.required && value == undefined) {
49
70
  throw new Error('value is required but not found in config');
50
71
  }
51
72
  };
73
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
74
  export const valueValidations = {
53
75
  boolean: { required },
54
76
  string: {
55
77
  required,
56
- regex: (value, validation, config, configValidator) => {
78
+ regex: (value, validation,
79
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ config, configValidator) => {
57
81
  if (value == undefined ||
58
82
  (validation.when &&
59
83
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -65,7 +89,9 @@ export const valueValidations = {
65
89
  throw new Error(`value should match the regex="${validation.regex}"`);
66
90
  }
67
91
  },
68
- choices: (value, validation, config, configValidator) => {
92
+ choices: (value, validation,
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ config, configValidator) => {
69
95
  if (value == undefined ||
70
96
  (validation.when &&
71
97
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -78,7 +104,9 @@ export const valueValidations = {
78
104
  },
79
105
  number: {
80
106
  required,
81
- gt: (value, validation, config, configValidator) => {
107
+ gt: (value, validation,
108
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
+ config, configValidator) => {
82
110
  if (value == undefined ||
83
111
  (validation.when &&
84
112
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -88,7 +116,9 @@ export const valueValidations = {
88
116
  throw new Error(`value should be greater than ${validation.gt}`);
89
117
  }
90
118
  },
91
- gte: (value, validation, config, configValidator) => {
119
+ gte: (value, validation,
120
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
121
+ config, configValidator) => {
92
122
  if (value == undefined ||
93
123
  (validation.when &&
94
124
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -98,7 +128,9 @@ export const valueValidations = {
98
128
  throw new Error(`value should be greater than or equal to ${validation.gte}`);
99
129
  }
100
130
  },
101
- lt: (value, validation, config, configValidator) => {
131
+ lt: (value, validation,
132
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
133
+ config, configValidator) => {
102
134
  if (value == undefined ||
103
135
  (validation.when &&
104
136
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -108,7 +140,9 @@ export const valueValidations = {
108
140
  throw new Error(`value should be less than ${validation.lt}`);
109
141
  }
110
142
  },
111
- lte: (value, validation, config, configValidator) => {
143
+ lte: (value, validation,
144
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
145
+ config, configValidator) => {
112
146
  if (value == undefined ||
113
147
  (validation.when &&
114
148
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -121,7 +155,9 @@ export const valueValidations = {
121
155
  },
122
156
  bigint: {
123
157
  required,
124
- gt: (value, validation, config, configValidator) => {
158
+ gt: (value, validation,
159
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
160
+ config, configValidator) => {
125
161
  if (value == undefined ||
126
162
  (validation.when &&
127
163
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -131,7 +167,9 @@ export const valueValidations = {
131
167
  throw new Error(`value should be greater than ${validation.gt}`);
132
168
  }
133
169
  },
134
- gte: (value, validation, config, configValidator) => {
170
+ gte: (value, validation,
171
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
172
+ config, configValidator) => {
135
173
  if (value == undefined ||
136
174
  (validation.when &&
137
175
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -141,7 +179,9 @@ export const valueValidations = {
141
179
  throw new Error(`value should be greater than or equal to ${validation.gte}`);
142
180
  }
143
181
  },
144
- lt: (value, validation, config, configValidator) => {
182
+ lt: (value, validation,
183
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
184
+ config, configValidator) => {
145
185
  if (value == undefined ||
146
186
  (validation.when &&
147
187
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -151,7 +191,9 @@ export const valueValidations = {
151
191
  throw new Error(`value should be less than ${validation.lt}`);
152
192
  }
153
193
  },
154
- lte: (value, validation, config, configValidator) => {
194
+ lte: (value, validation,
195
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
196
+ config, configValidator) => {
155
197
  if (value == undefined ||
156
198
  (validation.when &&
157
199
  !configValidator.isWhenTrue(validation.when, config))) {
@@ -163,4 +205,4 @@ export const valueValidations = {
163
205
  },
164
206
  },
165
207
  };
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92YWx1ZS92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBd0I7SUFDbEQsTUFBTSxFQUFFLENBQUMsS0FBMEIsRUFBRSxLQUF3QixFQUFFLEVBQUU7UUFDL0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDeEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsa0NBQWtDLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsS0FBSyxFQUFFLENBQUMsS0FBaUIsRUFBRSxNQUF3QixFQUFFLEVBQUU7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQXlCLEVBQUUsRUFBRTtRQUNuRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENB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VSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUN2RCxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUNiLHlDQUF5QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQzFELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1ZhbGlkYXRvciB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi9zY2hlbWEvdHlwZXMvZmllbGRzJztcbmltcG9ydCB7XG4gIFZDaG9pY2VzLFxuICBWR3JlYXRlcixcbiAgVkdyZWF0ZXJFcXVhbCxcbiAgVkxlc3MsXG4gIFZMZXNzRXF1YWwsXG4gIFZSZWdleCxcbiAgVlJlcXVpcmVkLFxufSBmcm9tICcuLi9zY2hlbWEvdHlwZXMvdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgdmFsdWVWYWxpZGF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICBvYmplY3Q6ICh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55PiwgZmllbGQ6IHR5cGVzLk9iamVjdEZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBvYmplY3QgdHlwZWApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYUtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKGZpZWxkLmNoaWxkcmVuKSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG4gICAgICBpZiAoIXNjaGVtYUtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIiR7a2V5fVwiIGtleSBpcyBub3QgZm91bmQgaW4gdGhlIHNjaGVtYWApO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBhcnJheTogKHZhbHVlOiBBcnJheTxhbnk+LCBfZmllbGQ6IHR5cGVzLkFycmF5RmllbGQpID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2YgYXJyYXkgdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBzdHJpbmc6ICh2YWx1ZTogc3RyaW5nLCBfZmllbGQ6IHR5cGVzLlN0cmluZ0ZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBzdHJpbmcgdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBib29sZWFuOiAodmFsdWU6IGJvb2xlYW4sIF9maWVsZDogdHlwZXMuQm9vbGVhbkZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2YgYm9vbGVhbiB0eXBlYCk7XG4gICAgfVxuICB9LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG51bWJlcjogKHZhbHVlOiBudW1iZXIsIF9maWVsZDogdHlwZXMuTnVtYmVyRmllbGQpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIG51bWJlciB0eXBlYCk7XG4gICAgfVxuICB9LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGJpZ2ludDogKHZhbHVlOiBiaWdpbnQsIF9maWVsZDogdHlwZXMuQmlnSW50RmllbGQpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYmlnaW50Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIGJpZ2ludCB0eXBlYCk7XG4gICAgfVxuICB9LFxufTtcblxuY29uc3QgcmVxdWlyZWQgPSAoXG4gIHZhbHVlOiBhbnksXG4gIHZhbGlkYXRpb246IFZSZXF1aXJlZCxcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbikgPT4ge1xuICBpZiAodmFsaWRhdGlvbi53aGVuICYmICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodmFsaWRhdGlvbi5yZXF1aXJlZCAmJiB2YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIGlzIHJlcXVpcmVkIGJ1dCBub3QgZm91bmQgaW4gY29uZmlnJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWx1ZVZhbGlkYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgYm9vbGVhbjogeyByZXF1aXJlZCB9LFxuICBzdHJpbmc6IHtcbiAgICByZXF1aXJlZCxcbiAgICByZWdleDogKFxuICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb246IFZSZWdleCxcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAodmFsaWRhdGlvbi5yZWdleCk7XG4gICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlKTtcbiAgICAgIGlmIChtYXRjaCA9PSBudWxsIHx8IG1hdGNoWzBdICE9PSB2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBtYXRjaCB0aGUgcmVnZXg9XCIke3ZhbGlkYXRpb24ucmVnZXh9XCJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNob2ljZXM6IChcbiAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICB2YWxpZGF0aW9uOiBWQ2hvaWNlcyxcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbGlkYXRpb24uY2hvaWNlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGB2YWx1ZSBzaG91bGQgYmUgb25lIG9mIHRoZSBjaG9pY2VzPVske3ZhbGlkYXRpb24uY2hvaWNlcy5qb2luKFxuICAgICAgICAgICAgJywgJyxcbiAgICAgICAgICApfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIHJlcXVpcmVkLFxuICAgIGd0OiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXI8bnVtYmVyPixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPD0gdmFsaWRhdGlvbi5ndCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gJHt2YWxpZGF0aW9uLmd0fWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3RlOiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXJFcXVhbDxudW1iZXI+LFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3IsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA8IHZhbGlkYXRpb24uZ3RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3ZhbGlkYXRpb24uZ3RlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdDogKFxuICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzPG51bWJlcj4sXG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID49IHZhbGlkYXRpb24ubHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuICR7dmFsaWRhdGlvbi5sdH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0ZTogKFxuICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzRXF1YWw8bnVtYmVyPixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJpZ2ludDoge1xuICAgIHJlcXVpcmVkLFxuICAgIGd0OiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXI8YmlnaW50PixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPD0gdmFsaWRhdGlvbi5ndCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gJHt2YWxpZGF0aW9uLmd0fWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3RlOiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXJFcXVhbDxiaWdpbnQ+LFxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3IsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA8IHZhbGlkYXRpb24uZ3RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3ZhbGlkYXRpb24uZ3RlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdDogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzPGJpZ2ludD4sXG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID49IHZhbGlkYXRpb24ubHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuICR7dmFsaWRhdGlvbi5sdH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0ZTogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzRXF1YWw8YmlnaW50PixcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuIl19
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92YWx1ZS92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXdCO0lBQ2xELE1BQU0sRUFBRSxDQUNOLEtBQXNDLEVBQ3RDLEtBQXdCLEVBQ3hCLEVBQUU7UUFDRixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN4RCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQzdELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxLQUFLLEVBQUUsQ0FBQyxLQUF1QixFQUFFLE1BQXdCLEVBQUUsRUFBRTtRQUMzRCxNQUFNLGVBQWUsR0FBRztZQUN0QixRQUFRO1lBQ1IsT0FBTztZQUNQLFNBQVM7WUFDVCxPQUFPO1lBQ1AsUUFBUTtZQUNSLFFBQVE7WUFDUixRQUFRO1NBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RCxDQUM5RCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRCw2REFBNkQ7SUFD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LDhEQUE4RDtRQUM5RCxNQUEyQixFQUMzQixlQUFnQyxFQUNoQyxFQUFFO1lBQ0YsSUFDRSxLQUFLLElBQUksU0FBUztnQkFDbEIsQ0FBQyxVQUFVLENBQUMsSUFBSTtvQkFDZCxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUN2RCxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxLQUFLLElBQUksVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztRQUNELEdBQUcsRUFBRSxDQUNILEtBQWEsRUFDYixVQUE4QjtRQUM5Qiw4REFBOEQ7UUFDOUQsTUFBMkIsRUFDM0IsZUFBZ0MsRUFDaEMsRUFBRTtZQUNGLElBQ0UsS0FBSyxJQUFJLFNBQVM7Z0JBQ2xCLENBQUMsVUFBVSxDQUFDLElBQUk7b0JBQ2QsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFDdkQsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYix5Q0FBeUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUMxRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi4vc2NoZW1hL3R5cGVzL2ZpZWxkcyc7XG5pbXBvcnQge1xuICBWQ2hvaWNlcyxcbiAgVkdyZWF0ZXIsXG4gIFZHcmVhdGVyRXF1YWwsXG4gIFZMZXNzLFxuICBWTGVzc0VxdWFsLFxuICBWUmVnZXgsXG4gIFZSZXF1aXJlZCxcbn0gZnJvbSAnLi4vc2NoZW1hL3R5cGVzL3ZhbGlkYXRpb25zJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjb25zdCB2YWx1ZVZhbGlkYXRvcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gIG9iamVjdDogKFxuICAgIHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB0eXBlcy5WYWx1ZVR5cGU+LFxuICAgIGZpZWxkOiB0eXBlcy5PYmplY3RGaWVsZCxcbiAgKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBvYmplY3QgdHlwZWApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYUtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKGZpZWxkLmNoaWxkcmVuKSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG4gICAgICBpZiAoIXNjaGVtYUtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIiR7a2V5fVwiIGtleSBpcyBub3QgZm91bmQgaW4gdGhlIHNjaGVtYWApO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICB1bmlvbjogKHZhbHVlOiB0eXBlcy5VbmlvbkZpZWxkLCBfZmllbGQ6IHR5cGVzLlVuaW9uRmllbGQpID0+IHtcbiAgICBjb25zdCB2YWxpZFVuaW9uVHlwZXMgPSBbXG4gICAgICAnb2JqZWN0JyxcbiAgICAgICdhcnJheScsXG4gICAgICAnYm9vbGVhbicsXG4gICAgICAndW5pb24nLFxuICAgICAgJ3N0cmluZycsXG4gICAgICAnbnVtYmVyJyxcbiAgICAgICdiaWdpbnQnLFxuICAgIF07XG4gICAgaWYgKCF2YWxpZFVuaW9uVHlwZXMuaW5jbHVkZXModHlwZW9mIHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVmFsdWUgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSB2YWxpZCB1bmlvbiBjaGlsZHJlbiB0eXBlcy4nLFxuICAgICAgKTtcbiAgICB9XG4gIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXJyYXk6ICh2YWx1ZTogQXJyYXk8dHlwZXMuVmFsdWVUeXBlPiwgX2ZpZWxkOiB0eXBlcy5BcnJheUZpZWxkKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIGFycmF5IHR5cGVgKTtcbiAgICB9XG4gIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgc3RyaW5nOiAodmFsdWU6IHN0cmluZywgX2ZpZWxkOiB0eXBlcy5TdHJpbmdGaWVsZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIG11c3QgYmUgb2Ygc3RyaW5nIHR5cGVgKTtcbiAgICB9XG4gIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYm9vbGVhbjogKHZhbHVlOiBib29sZWFuLCBfZmllbGQ6IHR5cGVzLkJvb2xlYW5GaWVsZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBtdXN0IGJlIG9mIGJvb2xlYW4gdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBudW1iZXI6ICh2YWx1ZTogbnVtYmVyLCBfZmllbGQ6IHR5cGVzLk51bWJlckZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBudW1iZXIgdHlwZWApO1xuICAgIH1cbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBiaWdpbnQ6ICh2YWx1ZTogYmlnaW50LCBfZmllbGQ6IHR5cGVzLkJpZ0ludEZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2JpZ2ludCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgbXVzdCBiZSBvZiBiaWdpbnQgdHlwZWApO1xuICAgIH1cbiAgfSxcbn07XG5cbmNvbnN0IHJlcXVpcmVkID0gKFxuICB2YWx1ZTogdHlwZXMuVmFsdWVUeXBlLFxuICB2YWxpZGF0aW9uOiBWUmVxdWlyZWQsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3IsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKSA9PiB7XG4gIGlmIChcbiAgICB2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcsIGNvbnRleHQpXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh2YWxpZGF0aW9uLnJlcXVpcmVkICYmIHZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgaXMgcmVxdWlyZWQgYnV0IG5vdCBmb3VuZCBpbiBjb25maWcnKTtcbiAgfVxufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjb25zdCB2YWx1ZVZhbGlkYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgYm9vbGVhbjogeyByZXF1aXJlZCB9LFxuICBzdHJpbmc6IHtcbiAgICByZXF1aXJlZCxcbiAgICByZWdleDogKFxuICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb246IFZSZWdleCxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKHZhbGlkYXRpb24ucmVnZXgpO1xuICAgICAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaChyZSk7XG4gICAgICBpZiAobWF0Y2ggPT0gbnVsbCB8fCBtYXRjaFswXSAhPT0gdmFsdWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgbWF0Y2ggdGhlIHJlZ2V4PVwiJHt2YWxpZGF0aW9uLnJlZ2V4fVwiYCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBjaG9pY2VzOiAoXG4gICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgdmFsaWRhdGlvbjogVkNob2ljZXMsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3IsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHZhbHVlID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAodmFsaWRhdGlvbi53aGVuICYmXG4gICAgICAgICAgIWNvbmZpZ1ZhbGlkYXRvci5pc1doZW5UcnVlKHZhbGlkYXRpb24ud2hlbiwgY29uZmlnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghdmFsaWRhdGlvbi5jaG9pY2VzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBvbmUgb2YgdGhlIGNob2ljZXM9WyR7dmFsaWRhdGlvbi5jaG9pY2VzLmpvaW4oXG4gICAgICAgICAgICAnLCAnLFxuICAgICAgICAgICl9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgcmVxdWlyZWQsXG4gICAgZ3Q6IChcbiAgICAgIHZhbHVlOiBudW1iZXIsXG4gICAgICB2YWxpZGF0aW9uOiBWR3JlYXRlcjxudW1iZXI+LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPD0gdmFsaWRhdGlvbi5ndCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gJHt2YWxpZGF0aW9uLmd0fWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3RlOiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXJFcXVhbDxudW1iZXI+LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPCB2YWxpZGF0aW9uLmd0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmd0ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHQ6IChcbiAgICAgIHZhbHVlOiBudW1iZXIsXG4gICAgICB2YWxpZGF0aW9uOiBWTGVzczxudW1iZXI+LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPj0gdmFsaWRhdGlvbi5sdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gJHt2YWxpZGF0aW9uLmx0fWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHRlOiAoXG4gICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgdmFsaWRhdGlvbjogVkxlc3NFcXVhbDxudW1iZXI+LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yLFxuICAgICkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZSA9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgKHZhbGlkYXRpb24ud2hlbiAmJlxuICAgICAgICAgICFjb25maWdWYWxpZGF0b3IuaXNXaGVuVHJ1ZSh2YWxpZGF0aW9uLndoZW4sIGNvbmZpZykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPiB2YWxpZGF0aW9uLmx0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt2YWxpZGF0aW9uLmx0ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJpZ2ludDoge1xuICAgIHJlcXVpcmVkLFxuICAgIGd0OiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkdyZWF0ZXI8YmlnaW50PixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlIDw9IHZhbGlkYXRpb24uZ3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuICR7dmFsaWRhdGlvbi5ndH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGd0ZTogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZHcmVhdGVyRXF1YWw8YmlnaW50PixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlIDwgdmFsaWRhdGlvbi5ndGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7dmFsaWRhdGlvbi5ndGV9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0OiAoXG4gICAgICB2YWx1ZTogYmlnaW50LFxuICAgICAgdmFsaWRhdGlvbjogVkxlc3M8YmlnaW50PixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID49IHZhbGlkYXRpb24ubHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuICR7dmFsaWRhdGlvbi5sdH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0ZTogKFxuICAgICAgdmFsdWU6IGJpZ2ludCxcbiAgICAgIHZhbGlkYXRpb246IFZMZXNzRXF1YWw8YmlnaW50PixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb25maWdWYWxpZGF0b3I6IENvbmZpZ1ZhbGlkYXRvcixcbiAgICApID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICh2YWxpZGF0aW9uLndoZW4gJiZcbiAgICAgICAgICAhY29uZmlnVmFsaWRhdG9yLmlzV2hlblRydWUodmFsaWRhdGlvbi53aGVuLCBjb25maWcpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID4gdmFsaWRhdGlvbi5sdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7dmFsaWRhdGlvbi5sdGV9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/config",
3
- "version": "1.2.0",
3
+ "version": "2.0.0-d62d28de",
4
4
  "description": "a package to manage configs of rosen bridge projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,8 +10,8 @@
10
10
  "author": "Rosen Team",
11
11
  "type": "module",
12
12
  "main": "dist/index.js",
13
- "bin": "dist/cli.js",
14
13
  "types": "dist/index.d.ts",
14
+ "bin": "dist/cli.js",
15
15
  "files": [
16
16
  "dist",
17
17
  "CHANGELOG.md"
@@ -27,16 +27,6 @@
27
27
  "test": "NODE_OPTIONS='--import tsx' vitest",
28
28
  "type-check": "tsc --noEmit"
29
29
  },
30
- "devDependencies": {
31
- "@types/config": "^3.3.3",
32
- "@types/js-yaml": "^4.0.9",
33
- "@types/lodash-es": "^4.17.12",
34
- "@vitest/coverage-istanbul": "^3.1.4",
35
- "lodash-es": "^4.17.21",
36
- "tsx": "^4.20.5",
37
- "vitest": "^3.1.4",
38
- "uuid": "^11.1.0"
39
- },
40
30
  "dependencies": {
41
31
  "@rosen-bridge/json-bigint": "^1.1.0",
42
32
  "chalk": "^5.3.0",
@@ -45,6 +35,13 @@
45
35
  "ora": "^8.0.1",
46
36
  "yargs": "^17.7.2"
47
37
  },
38
+ "devDependencies": {
39
+ "@types/config": "^3.3.3",
40
+ "@types/js-yaml": "^4.0.9",
41
+ "@types/lodash-es": "^4.17.12",
42
+ "lodash-es": "^4.17.21",
43
+ "uuid": "^11.1.0"
44
+ },
48
45
  "engines": {
49
46
  "node": ">=22.18.0",
50
47
  "npm": "11.6.2"