New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@fgv/ts-utils

Package Overview
Dependencies
Maintainers
1
Versions
95
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fgv/ts-utils - npm Package Compare versions

Comparing version 1.6.2 to 1.6.3

validation/common.d.ts

11

converters.d.ts
import { BaseConverter, Converter, ConverterTraits } from './converter';
import { RangeOf, RangeOfProperties } from './rangeOf';
import { Result } from './result';
import { TypeGuardWithContext, Validator } from './validation';
import { ExtendedArray } from './extendedArray';
import { Validator } from './validation';
type OnError = 'failOnError' | 'ignoreErrors';

@@ -183,2 +183,11 @@ /**

/**
* Helper function to create a {@link Converter} from a supplied type guard function.
* @param description - a description of the thing to be validated for use in error messages
* @param guard - a {@link Validation.TypeGuardWithContext} which performs the validation.
* @returns A new {@link Converter} which validates the values using the supplied type guard
* and returns them in place.
* @public
*/
export declare function isA<T, TC = unknown>(description: string, guard: TypeGuardWithContext<T, TC>): Converter<T, TC>;
/**
* A {@link Converter} which converts an optional `number` value.

@@ -185,0 +194,0 @@ * @remarks

2

package.json
{
"name": "@fgv/ts-utils",
"version": "1.6.2",
"version": "1.6.3",
"description": "Assorted Typescript Utilities",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -7,2 +7,5 @@ import { Result } from './result';

export type JarRecord = Record<string, string | string[]>;
/**
* @public
*/
export type JarFieldPicker<T extends JarRecord = JarRecord> = (record: T) => (keyof T)[];

@@ -9,0 +12,0 @@ /**

@@ -262,2 +262,2 @@ "use strict";

exports.readRecordJarFileSync = readRecordJarFileSync;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkSmFySGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWNvcmRKYXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUU3QixxQ0FBZ0U7QUFDaEUsbUNBQWtDO0FBd0JsQyxNQUFNLFlBQVk7SUFRZCxnRUFBZ0U7SUFDaEUsWUFBb0IsT0FBZ0M7UUFScEMsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHaEMsWUFBTyxHQUFjLEVBQUUsQ0FBQztRQUN4QixVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxVQUFLLEdBQTJCLFNBQVMsQ0FBQztRQUloRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFlLEVBQUUsT0FBZ0M7UUFDakUsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVTLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxJQUFJLE1BQU0sQ0FBQyxTQUFT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QUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFQRCxzREFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBSZXN1bHQsIGNhcHR1cmVSZXN1bHQsIGZhaWwsIHN1Y2NlZWQgfSBmcm9tICcuL3Jlc3VsdCc7XG5pbXBvcnQgeyBpc0tleU9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBSZWNvcmRCb2R5IHtcbiAgICBib2R5OiBzdHJpbmc7XG4gICAgaXNDb250aW51YXRpb246IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSByZWNvcmQgaW4gYSBKQVIgZmlsZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBKYXJSZWNvcmQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbmV4cG9ydCB0eXBlIEphckZpZWxkUGlja2VyPFQgZXh0ZW5kcyBKYXJSZWNvcmQgPSBKYXJSZWNvcmQ+ID0gKHJlY29yZDogVCkgPT4gKGtleW9mIFQpW107XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBKQVIgcmVjb3JkIHBhcnNlci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKYXJSZWNvcmRQYXJzZXJPcHRpb25zIHtcbiAgICByZWFkb25seSBhcnJheUZpZWxkcz86IHN0cmluZ1tdIHwgSmFyRmllbGRQaWNrZXI7XG4gICAgcmVhZG9ubHkgZml4ZWRDb250aW51YXRpb25TaXplPzogbnVtYmVyO1xufVxuXG5jbGFzcyBSZWNvcmRQYXJzZXIge1xuICAgIHB1YmxpYyByZWFkb25seSByZWNvcmRzOiBKYXJSZWNvcmRbXSA9IFtdO1xuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBKYXJSZWNvcmRQYXJzZXJPcHRpb25zO1xuXG4gICAgcHJvdGVjdGVkIF9maWVsZHM6IEphclJlY29yZCA9IHt9O1xuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHByb3RlY3RlZCBfYm9keTogUmVjb3JkQm9keSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBKYXJSZWNvcmRQYXJzZXJPcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgPz8ge307XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZShsaW5lczogc3RyaW5nW10sIG9wdGlvbnM/OiBKYXJSZWNvcmRQYXJzZXJPcHRpb25zKTogUmVzdWx0PEphclJlY29yZFtdPiB7XG4gICAgICAgIHJldHVybiBuZXcgUmVjb3JkUGFyc2VyKG9wdGlvbnMpLl9wYXJzZShsaW5lcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfcGFyc2VSZWNvcmRCb2R5KGJvZHk6IHN0cmluZyk6IFJlc3VsdDxSZWNvcmRCb2R5PiB7XG4gICAgICAgIGNvbnN0IGlzQ29udGludWF0aW9uID0gYm9keS5lbmRzV2l0aCgnXFxcXCcpO1xuICAgICAgICBpZiAoaXNDb250aW51YXRpb24pIHtcbiAgICAgICAgICAgIGJvZHkgPSBib2R5LnNsaWNlKDAsIGJvZHkubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2hhc0VzY2FwZXMoYm9keSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3JlcGxhY2VFc2NhcGVzKGJvZHkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJvZHkgPSByZXN1bHQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQoeyBib2R5LCBpc0NvbnRpbnVhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIF9oYXNFc2NhcGVzKGZyb206IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZnJvbS5pbmNsdWRlcygnXFxcXCcpIHx8IGZyb20uaW5jbHVkZXMoJyYnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIF9yZXBsYWNlRXNjYXBlcyhib2R5OiBzdHJpbmcpOiBSZXN1bHQ8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGludmFsaWQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNvbnN0IGVzY2FwZWQgPSBib2R5LnJlcGxhY2UoLyhcXFxcLil8KCYjeFthLWZBLUYwLTldezIsNn07KS9nLCAobWF0Y2gpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxcXFxcXCc6IHJldHVybiAnXFxcXCc7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxcXCYnOiByZXR1cm4gJyYnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFxyJzogcmV0dXJuICdcXHInO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFxuJzogcmV0dXJuICdcXG4nO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFx0JzogcmV0dXJuICdcXHQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoLnN0YXJ0c1dpdGgoJyYnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhleENvZGUgPSBgMHgke21hdGNoLnNsaWNlKDMsIG1hdGNoLmxlbmd0aCAtIDEpfWA7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhckNvZGUgPSBOdW1iZXIucGFyc2VJbnQoaGV4Q29kZSwgMTYpO1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGludmFsaWQucHVzaChtYXRjaCk7XG4gICAgICAgICAgICByZXR1cm4gJ1xcXFwnO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGludmFsaWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwoYHVucmVjb2duaXplZCBlc2NhcGUgXCIke2ludmFsaWQuam9pbignLCAnKX1cIiBpbiByZWNvcmQtamFyIGJvZHlgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZChlc2NhcGVkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIF9hcHBseU9wdGlvbnMocmVjb3JkOiBKYXJSZWNvcmQsIG9wdGlvbnM6IEphclJlY29yZFBhcnNlck9wdGlvbnMpOiBKYXJSZWNvcmQge1xuICAgICAgICBpZiAob3B0aW9ucy5hcnJheUZpZWxkcykge1xuICAgICAgICAgICAgcmVjb3JkID0geyAuLi5yZWNvcmQgfTsgLy8gZG9uJ3QgZWRpdCBpbmNvbWluZyB2YWx1ZXNcbiAgICAgICAgICAgIGNvbnN0IGFycmF5RmllbGRzID0gQXJyYXkuaXNBcnJheShvcHRpb25zLmFycmF5RmllbGRzKVxuICAgICAgICAgICAgICAgID8gb3B0aW9ucy5hcnJheUZpZWxkc1xuICAgICAgICAgICAgICAgIDogb3B0aW9ucy5hcnJheUZpZWxkcyhyZWNvcmQpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGFycmF5RmllbGRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzS2V5T2YoZmllbGQsIHJlY29yZCkgJiYgdHlwZW9mIHJlY29yZFtmaWVsZF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByZWNvcmRbZmllbGRdIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkW2ZpZWxkXSA9IFtjdXJyZW50XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3BhcnNlKGxpbmVzOiBzdHJpbmdbXSk6IFJlc3VsdDxKYXJSZWNvcmRbXT4ge1xuICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGxpbmVzLmxlbmd0aDsgbisrKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gbGluZXNbbl07XG4gICAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCclJScpICYmICF0aGlzLl9ib2R5Py5pc0NvbnRpbnVhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3dyaXRlUGVuZGluZ1JlY29yZCgpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bn06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoL15cXHMqJC8udGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBibGFuayBsaW5lcyBidXQgY2FuY2VsIGNvbnRpbnVhdGlvblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2JvZHkuaXNDb250aW51YXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9ib2R5Py5pc0NvbnRpbnVhdGlvbiB8fCAvXlxccysvLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBleHBsaWNpdCBjb250aW51YXRpb24gb24gcHJldmlvdXMgbGluZSBvciBpbXBsaWNpdCBzdGFydHMgd2l0aCB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2JvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtufTogY29udGludWF0aW9uIChcIiR7bGluZX1cIikgd2l0aG91dCBwcmlvciB2YWx1ZS5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcGFyc2VDb250aW51YXRpb24obGluZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtufTogJHtyZXN1bHQubWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fYm9keSA9IHJlc3VsdC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3BhcnNlRmllbGQobGluZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtufTogJHtyZXN1bHQubWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl93cml0ZVBlbmRpbmdSZWNvcmQoKTtcbiAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bGluZXMubGVuZ3RofTogJHtyZXN1bHQubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZCh0aGlzLnJlY29yZHMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcGFyc2VGaWVsZChsaW5lOiBzdHJpbmcpOiBSZXN1bHQ8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgICAgICBpZiAoc2VwYXJhdG9ySW5kZXggPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFpbChgbWFsZm9ybWVkIGxpbmUgKFwiJHtsaW5lfVwiKSBpbiByZWNvcmQtamFyLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnRzID0gW1xuICAgICAgICAgICAgbGluZS5zbGljZSgwLCBzZXBhcmF0b3JJbmRleCksXG4gICAgICAgICAgICBsaW5lLnNsaWNlKHNlcGFyYXRvckluZGV4ICsgMSksXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3dyaXRlUGVuZGluZ0ZpZWxkKCkub25TdWNjZXNzKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX25hbWUgPSBwYXJ0c1swXS50cmltRW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gUmVjb3JkUGFyc2VyLl9wYXJzZVJlY29yZEJvZHkocGFydHNbMV0udHJpbSgpKS5vblN1Y2Nlc3MoKGJvZHkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ib2R5ID0gYm9keTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3BhcnNlQ29udGludWF0aW9uKGxpbmU6IHN0cmluZyk6IFJlc3VsdDxSZWNvcmRCb2R5PiB7XG4gICAgICAgIGxldCB0cmltbWVkID0gbGluZS50cmltKCk7XG4gICAgICAgIGlmICghdGhpcy5fYm9keSEuaXNDb250aW51YXRpb24pIHtcbiAgICAgICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgICAgICBjb25zdCBmaXhlZFNpemUgPSB0aGlzLm9wdGlvbnM/LmZpeGVkQ29udGludWF0aW9uU2l6ZSA/PyAwO1xuICAgICAgICAgICAgaWYgKGZpeGVkU2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBpZiAodHJpbW1lZC5sZW5ndGggPCBsaW5lLmxlbmd0aCAtIGZpeGVkU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBvb3BzLCB0b29rIHRvbyBtdWNoXG4gICAgICAgICAgICAgICAgICAgIHRyaW1tZWQgPSBsaW5lLnNsaWNlKGZpeGVkU2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWNvcmRQYXJzZXIuX3BhcnNlUmVjb3JkQm9keSh0cmltbWVkKS5vblN1Y2Nlc3MoKG5ld0JvZHkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKHtcbiAgICAgICAgICAgICAgICBib2R5OiBgJHt0aGlzLl9ib2R5IS5ib2R5fSR7bmV3Qm9keS5ib2R5fWAsXG4gICAgICAgICAgICAgICAgaXNDb250aW51YXRpb246IG5ld0JvZHkuaXNDb250aW51YXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9oYXZlUGVuZGluZ1JlY29yZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2ZpZWxkcykubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3dyaXRlUGVuZGluZ1JlY29yZCgpOiBSZXN1bHQ8SmFyUmVjb3JkIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl93cml0ZVBlbmRpbmdGaWVsZCgpLm9uU3VjY2VzcygoKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVjb3JkID0gdGhpcy5faGF2ZVBlbmRpbmdSZWNvcmQoKSA/IHRoaXMuX2ZpZWxkcyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChyZWNvcmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJlY29yZCA9IFJlY29yZFBhcnNlci5fYXBwbHlPcHRpb25zKHJlY29yZCwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29yZHMucHVzaChyZWNvcmQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpZWxkcyA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF93cml0ZVBlbmRpbmdGaWVsZCgpOiBSZXN1bHQ8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy5fbmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fYm9keSEuYm9keS5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoJ2VtcHR5IGJvZHkgdmFsdWUgbm90IGFsbG93ZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNLZXlPZih0aGlzLl9uYW1lLCB0aGlzLl9maWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmllbGRzW3RoaXMuX25hbWVdID0gdGhpcy5fYm9keSEuYm9keTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0aGlzLl9maWVsZHNbdGhpcy5fbmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2ZpZWxkc1t0aGlzLl9uYW1lXSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmllbGRzW3RoaXMuX25hbWVdID0gW2N1cnJlbnQsIHRoaXMuX2JvZHkhLmJvZHldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2ZpZWxkc1t0aGlzLl9uYW1lXSBhcyBzdHJpbmdbXTtcbiAgICAgICAgICAgICAgICBjdXJyZW50LnB1c2godGhpcy5fYm9keSEuYm9keSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9uYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5fYm9keSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VjY2VlZCh0cnVlKTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVhZHMgYSByZWNvcmQtamFyIGZyb20gYW4gYXJyYXkgb2Ygc3RyaW5ncywgZWFjaCBvZiB3aGljaCByZXByZXNlbnRzIG9uZVxuICogbGluZSBpbiB0aGUgc291cmNlIGZpbGUuXG4gKiBAcGFyYW0gbGluZXMgLSB0aGUgYXJyYXkgb2Ygc3RyaW5ncyB0byBiZSBwYXJzZWRcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgcGFyc2VyIGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm5zIGEgY29ycmVzcG9uZGluZyBhcnJheSBvZiBgUmVjb3JkPHN0cmluZywgc3RyaW5nPmBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVjb3JkSmFyTGluZXMobGluZXM6IHN0cmluZ1tdLCBvcHRpb25zPzogSmFyUmVjb3JkUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxKYXJSZWNvcmRbXT4ge1xuICAgIHJldHVybiBSZWNvcmRQYXJzZXIucGFyc2UobGluZXMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgcmVjb3JkLWphciBmaWxlIGZyb20gYSBzdXBwbGllZCBwYXRoLlxuICogQHBhcmFtIHNyY1BhdGggLSBTb3VyY2UgcGF0aCBmcm9tIHdoaWNoIHRoZSBmaWxlIGlzIHJlYWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHBhcnNlciBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBUaGUgY29udGVudHMgb2YgdGhlIGZpbGUgYXMgYW4gYXJyYXkgb2YgYFJlY29yZDxzdHJpbmcsIHN0cmluZz5gXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtcGhpbGxpcHMtcmVjb3JkLWphci0wMVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlY29yZEphckZpbGVTeW5jKHNyY1BhdGg6IHN0cmluZywgb3B0aW9ucz86IEphclJlY29yZFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8SmFyUmVjb3JkW10+IHtcbiAgICByZXR1cm4gY2FwdHVyZVJlc3VsdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKHNyY1BhdGgpO1xuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGZ1bGxQYXRoLCAndXRmOCcpLnRvU3RyaW5nKCkuc3BsaXQoL1xccj9cXG4vKTtcbiAgICB9KS5vblN1Y2Nlc3MoKGxpbmVzKSA9PiB7XG4gICAgICAgIHJldHVybiBwYXJzZVJlY29yZEphckxpbmVzKGxpbmVzLCBvcHRpb25zKTtcbiAgICB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkSmFySGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWNvcmRKYXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUU3QixxQ0FBZ0U7QUFDaEUsbUNBQWtDO0FBMkJsQyxNQUFNLFlBQVk7SUFRZCxnRUFBZ0U7SUFDaEUsWUFBb0IsT0FBZ0M7UUFScEMsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHaEMsWUFBTyxHQUFjLEVBQUUsQ0FBQztRQUN4QixVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxVQUFLLEdBQTJCLFNBQVMsQ0FBQztRQUloRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFlLEVBQUUsT0FBZ0M7UUFDakUsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVTLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxJQUFJLE1BQU0sQ0FBQyxTQUFT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QUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFQRCxzREFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBSZXN1bHQsIGNhcHR1cmVSZXN1bHQsIGZhaWwsIHN1Y2NlZWQgfSBmcm9tICcuL3Jlc3VsdCc7XG5pbXBvcnQgeyBpc0tleU9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBSZWNvcmRCb2R5IHtcbiAgICBib2R5OiBzdHJpbmc7XG4gICAgaXNDb250aW51YXRpb246IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSByZWNvcmQgaW4gYSBKQVIgZmlsZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBKYXJSZWNvcmQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBKYXJGaWVsZFBpY2tlcjxUIGV4dGVuZHMgSmFyUmVjb3JkID0gSmFyUmVjb3JkPiA9IChyZWNvcmQ6IFQpID0+IChrZXlvZiBUKVtdO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgSkFSIHJlY29yZCBwYXJzZXIuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmFyUmVjb3JkUGFyc2VyT3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgYXJyYXlGaWVsZHM/OiBzdHJpbmdbXSB8IEphckZpZWxkUGlja2VyO1xuICAgIHJlYWRvbmx5IGZpeGVkQ29udGludWF0aW9uU2l6ZT86IG51bWJlcjtcbn1cblxuY2xhc3MgUmVjb3JkUGFyc2VyIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVjb3JkczogSmFyUmVjb3JkW10gPSBbXTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogSmFyUmVjb3JkUGFyc2VyT3B0aW9ucztcblxuICAgIHByb3RlY3RlZCBfZmllbGRzOiBKYXJSZWNvcmQgPSB7fTtcbiAgICBwcm90ZWN0ZWQgX25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2JvZHk6IFJlY29yZEJvZHkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihvcHRpb25zPzogSmFyUmVjb3JkUGFyc2VyT3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zID8/IHt9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcGFyc2UobGluZXM6IHN0cmluZ1tdLCBvcHRpb25zPzogSmFyUmVjb3JkUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxKYXJSZWNvcmRbXT4ge1xuICAgICAgICByZXR1cm4gbmV3IFJlY29yZFBhcnNlcihvcHRpb25zKS5fcGFyc2UobGluZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGF0aWMgX3BhcnNlUmVjb3JkQm9keShib2R5OiBzdHJpbmcpOiBSZXN1bHQ8UmVjb3JkQm9keT4ge1xuICAgICAgICBjb25zdCBpc0NvbnRpbnVhdGlvbiA9IGJvZHkuZW5kc1dpdGgoJ1xcXFwnKTtcbiAgICAgICAgaWYgKGlzQ29udGludWF0aW9uKSB7XG4gICAgICAgICAgICBib2R5ID0gYm9keS5zbGljZSgwLCBib2R5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9oYXNFc2NhcGVzKGJvZHkpKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9yZXBsYWNlRXNjYXBlcyhib2R5KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib2R5ID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWNjZWVkKHsgYm9keSwgaXNDb250aW51YXRpb24gfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfaGFzRXNjYXBlcyhmcm9tOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZyb20uaW5jbHVkZXMoJ1xcXFwnKSB8fCBmcm9tLmluY2x1ZGVzKCcmJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfcmVwbGFjZUVzY2FwZXMoYm9keTogc3RyaW5nKTogUmVzdWx0PHN0cmluZz4ge1xuICAgICAgICBjb25zdCBpbnZhbGlkOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCBlc2NhcGVkID0gYm9keS5yZXBsYWNlKC8oXFxcXC4pfCgmI3hbYS1mQS1GMC05XXsyLDZ9OykvZywgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxcXFxcXFwnOiByZXR1cm4gJ1xcXFwnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFwmJzogcmV0dXJuICcmJztcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxccic6IHJldHVybiAnXFxyJztcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxcbic6IHJldHVybiAnXFxuJztcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxcdCc6IHJldHVybiAnXFx0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaC5zdGFydHNXaXRoKCcmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZXhDb2RlID0gYDB4JHttYXRjaC5zbGljZSgzLCBtYXRjaC5sZW5ndGggLSAxKX1gO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYXJDb2RlID0gTnVtYmVyLnBhcnNlSW50KGhleENvZGUsIDE2KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyQ29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnZhbGlkLnB1c2gobWF0Y2gpO1xuICAgICAgICAgICAgcmV0dXJuICdcXFxcJztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbnZhbGlkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWlsKGB1bnJlY29nbml6ZWQgZXNjYXBlIFwiJHtpbnZhbGlkLmpvaW4oJywgJyl9XCIgaW4gcmVjb3JkLWphciBib2R5YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZXNjYXBlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfYXBwbHlPcHRpb25zKHJlY29yZDogSmFyUmVjb3JkLCBvcHRpb25zOiBKYXJSZWNvcmRQYXJzZXJPcHRpb25zKTogSmFyUmVjb3JkIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuYXJyYXlGaWVsZHMpIHtcbiAgICAgICAgICAgIHJlY29yZCA9IHsgLi4ucmVjb3JkIH07IC8vIGRvbid0IGVkaXQgaW5jb21pbmcgdmFsdWVzXG4gICAgICAgICAgICBjb25zdCBhcnJheUZpZWxkcyA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy5hcnJheUZpZWxkcylcbiAgICAgICAgICAgICAgICA/IG9wdGlvbnMuYXJyYXlGaWVsZHNcbiAgICAgICAgICAgICAgICA6IG9wdGlvbnMuYXJyYXlGaWVsZHMocmVjb3JkKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBhcnJheUZpZWxkcykge1xuICAgICAgICAgICAgICAgIGlmIChpc0tleU9mKGZpZWxkLCByZWNvcmQpICYmIHR5cGVvZiByZWNvcmRbZmllbGRdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gcmVjb3JkW2ZpZWxkXSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZFtmaWVsZF0gPSBbY3VycmVudF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9wYXJzZShsaW5lczogc3RyaW5nW10pOiBSZXN1bHQ8SmFyUmVjb3JkW10+IHtcbiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBsaW5lcy5sZW5ndGg7IG4rKykge1xuICAgICAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzW25dO1xuICAgICAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnJSUnKSAmJiAhdGhpcy5fYm9keT8uaXNDb250aW51YXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl93cml0ZVBlbmRpbmdSZWNvcmQoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzRmFpbHVyZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGAke259OiAke3Jlc3VsdC5tZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKC9eXFxzKiQvLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBpZ25vcmUgYmxhbmsgbGluZXMgYnV0IGNhbmNlbCBjb250aW51YXRpb25cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYm9keSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ib2R5LmlzQ29udGludWF0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fYm9keT8uaXNDb250aW51YXRpb24gfHwgL15cXHMrLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgICAgICAgLy8gZXhwbGljaXQgY29udGludWF0aW9uIG9uIHByZXZpb3VzIGxpbmUgb3IgaW1wbGljaXQgc3RhcnRzIHdpdGggd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bn06IGNvbnRpbnVhdGlvbiAoXCIke2xpbmV9XCIpIHdpdGhvdXQgcHJpb3IgdmFsdWUuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3BhcnNlQ29udGludWF0aW9uKGxpbmUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bn06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2JvZHkgPSByZXN1bHQudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZUZpZWxkKGxpbmUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bn06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fd3JpdGVQZW5kaW5nUmVjb3JkKCk7XG4gICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWlsKGAke2xpbmVzLmxlbmd0aH06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodGhpcy5yZWNvcmRzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3BhcnNlRmllbGQobGluZTogc3RyaW5nKTogUmVzdWx0PGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9ySW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICAgICAgaWYgKHNlcGFyYXRvckluZGV4IDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwoYG1hbGZvcm1lZCBsaW5lIChcIiR7bGluZX1cIikgaW4gcmVjb3JkLWphci5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgICAgICAgIGxpbmUuc2xpY2UoMCwgc2VwYXJhdG9ySW5kZXgpLFxuICAgICAgICAgICAgbGluZS5zbGljZShzZXBhcmF0b3JJbmRleCArIDEpLFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl93cml0ZVBlbmRpbmdGaWVsZCgpLm9uU3VjY2VzcygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9uYW1lID0gcGFydHNbMF0udHJpbUVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIFJlY29yZFBhcnNlci5fcGFyc2VSZWNvcmRCb2R5KHBhcnRzWzFdLnRyaW0oKSkub25TdWNjZXNzKChib2R5KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9wYXJzZUNvbnRpbnVhdGlvbihsaW5lOiBzdHJpbmcpOiBSZXN1bHQ8UmVjb3JkQm9keT4ge1xuICAgICAgICBsZXQgdHJpbW1lZCA9IGxpbmUudHJpbSgpO1xuICAgICAgICBpZiAoIXRoaXMuX2JvZHkhLmlzQ29udGludWF0aW9uKSB7XG4gICAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICAgICAgY29uc3QgZml4ZWRTaXplID0gdGhpcy5vcHRpb25zPy5maXhlZENvbnRpbnVhdGlvblNpemUgPz8gMDtcbiAgICAgICAgICAgIGlmIChmaXhlZFNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoIDwgbGluZS5sZW5ndGggLSBmaXhlZFNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gb29wcywgdG9vayB0b28gbXVjaFxuICAgICAgICAgICAgICAgICAgICB0cmltbWVkID0gbGluZS5zbGljZShmaXhlZFNpemUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVjb3JkUGFyc2VyLl9wYXJzZVJlY29yZEJvZHkodHJpbW1lZCkub25TdWNjZXNzKChuZXdCb2R5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh7XG4gICAgICAgICAgICAgICAgYm9keTogYCR7dGhpcy5fYm9keSEuYm9keX0ke25ld0JvZHkuYm9keX1gLFxuICAgICAgICAgICAgICAgIGlzQ29udGludWF0aW9uOiBuZXdCb2R5LmlzQ29udGludWF0aW9uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaGF2ZVBlbmRpbmdSZWNvcmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9maWVsZHMpLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF93cml0ZVBlbmRpbmdSZWNvcmQoKTogUmVzdWx0PEphclJlY29yZCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fd3JpdGVQZW5kaW5nRmllbGQoKS5vblN1Y2Nlc3MoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlY29yZCA9IHRoaXMuX2hhdmVQZW5kaW5nUmVjb3JkKCkgPyB0aGlzLl9maWVsZHMgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocmVjb3JkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZWNvcmQgPSBSZWNvcmRQYXJzZXIuX2FwcGx5T3B0aW9ucyhyZWNvcmQsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvcmRzLnB1c2gocmVjb3JkKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9maWVsZHMgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfd3JpdGVQZW5kaW5nRmllbGQoKTogUmVzdWx0PGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMuX25hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2JvZHkhLmJvZHkubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKCdlbXB0eSBib2R5IHZhbHVlIG5vdCBhbGxvd2VkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzS2V5T2YodGhpcy5fbmFtZSwgdGhpcy5fZmllbGRzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpZWxkc1t0aGlzLl9uYW1lXSA9IHRoaXMuX2JvZHkhLmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5fZmllbGRzW3RoaXMuX25hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9maWVsZHNbdGhpcy5fbmFtZV0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpZWxkc1t0aGlzLl9uYW1lXSA9IFtjdXJyZW50LCB0aGlzLl9ib2R5IS5ib2R5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9maWVsZHNbdGhpcy5fbmFtZV0gYXMgc3RyaW5nW107XG4gICAgICAgICAgICAgICAgY3VycmVudC5wdXNoKHRoaXMuX2JvZHkhLmJvZHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuX2JvZHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodHJ1ZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlYWRzIGEgcmVjb3JkLWphciBmcm9tIGFuIGFycmF5IG9mIHN0cmluZ3MsIGVhY2ggb2Ygd2hpY2ggcmVwcmVzZW50cyBvbmVcbiAqIGxpbmUgaW4gdGhlIHNvdXJjZSBmaWxlLlxuICogQHBhcmFtIGxpbmVzIC0gdGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gYmUgcGFyc2VkXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHBhcnNlciBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBhIGNvcnJlc3BvbmRpbmcgYXJyYXkgb2YgYFJlY29yZDxzdHJpbmcsIHN0cmluZz5gXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlY29yZEphckxpbmVzKGxpbmVzOiBzdHJpbmdbXSwgb3B0aW9ucz86IEphclJlY29yZFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8SmFyUmVjb3JkW10+IHtcbiAgICByZXR1cm4gUmVjb3JkUGFyc2VyLnBhcnNlKGxpbmVzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhIHJlY29yZC1qYXIgZmlsZSBmcm9tIGEgc3VwcGxpZWQgcGF0aC5cbiAqIEBwYXJhbSBzcmNQYXRoIC0gU291cmNlIHBhdGggZnJvbSB3aGljaCB0aGUgZmlsZSBpcyByZWFkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBwYXJzZXIgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgVGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIGFzIGFuIGFycmF5IG9mIGBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+YFxuICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LXBoaWxsaXBzLXJlY29yZC1qYXItMDFcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZWNvcmRKYXJGaWxlU3luYyhzcmNQYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBKYXJSZWNvcmRQYXJzZXJPcHRpb25zKTogUmVzdWx0PEphclJlY29yZFtdPiB7XG4gICAgcmV0dXJuIGNhcHR1cmVSZXN1bHQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZShzcmNQYXRoKTtcbiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmdWxsUGF0aCwgJ3V0ZjgnKS50b1N0cmluZygpLnNwbGl0KC9cXHI/XFxuLyk7XG4gICAgfSkub25TdWNjZXNzKChsaW5lcykgPT4ge1xuICAgICAgICByZXR1cm4gcGFyc2VSZWNvcmRKYXJMaW5lcyhsaW5lcywgb3B0aW9ucyk7XG4gICAgfSk7XG59XG4iXX0=

@@ -12,3 +12,4 @@ import { Failure } from '../result';

/**
* An in-place {@link Validation.Validator | Validator} for `number` values.
* An in-place {@link Validation.Validator | Validator} for arrays of validated
* values or objects.
* @public

@@ -34,2 +35,3 @@ */

* @param from - The `unknown` value to be tested.
* @param context - Optional validation context will be propagated to element validator.
* @returns Returns `true` if `from` is an `array` of valid elements, or

@@ -36,0 +38,0 @@ * {@link Failure} with an error message if not.

@@ -28,3 +28,4 @@ "use strict";

/**
* An in-place {@link Validation.Validator | Validator} for `number` values.
* An in-place {@link Validation.Validator | Validator} for arrays of validated
* values or objects.
* @public

@@ -49,2 +50,3 @@ */

* @param from - The `unknown` value to be tested.
* @param context - Optional validation context will be propagated to element validator.
* @returns Returns `true` if `from` is an `array` of valid elements, or

@@ -67,2 +69,2 @@ * {@link Failure} with an error message if not.

exports.ArrayValidator = ArrayValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFFSCxzQ0FBMEM7QUFFMUMsbURBQWdGO0FBVWhGOzs7R0FHRztBQUNILE1BQWEsY0FBZ0MsU0FBUSw2QkFBc0I7SUFTdkU7Ozs7T0FJRztJQUNILFlBQW1CLE1BQThDOztRQUM3RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sU0FBUyxDQUFJLElBQWEsRUFBRSxPQUFZO1FBQzlDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ3JCLE9BQU8sSUFBQSxhQUFJLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMvQjthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBQSxhQUFJLEVBQUksSUFBSSxJQUFJLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBeENELHdDQXdDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBGYWlsdXJlLCBmYWlsIH0gZnJvbSAnLi4vcmVzdWx0JztcbmltcG9ydCB7IFZhbGlkYXRvciwgVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gJy4vdmFsaWRhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRvckJhc2UsIFZhbGlkYXRvckJhc2VDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vdmFsaWRhdG9yQmFzZSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyB1c2VkIHRvIGNvbnN0cnVjdCBhIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuQXJyYXlWYWxpZGF0b3IgfCBBcnJheVZhbGlkYXRvcn0uXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQyA9IHVua25vd24+IGV4dGVuZHMgVmFsaWRhdG9yQmFzZUNvbnN0cnVjdG9yUGFyYW1zPFRbXSwgVEM+IHtcbiAgICB2YWxpZGF0ZUVsZW1lbnQ6IFZhbGlkYXRvcjxULCBUQz47XG59XG5cbi8qKlxuICogQW4gaW4tcGxhY2Uge0BsaW5rIFZhbGlkYXRpb24uVmFsaWRhdG9yIHwgVmFsaWRhdG9yfSBmb3IgYG51bWJlcmAgdmFsdWVzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQXJyYXlWYWxpZGF0b3I8VCwgVEMgPSB1bmtub3duPiBleHRlbmRzIFZhbGlkYXRvckJhc2U8VFtdLCBUQz4ge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBWYWxpZGF0aW9uLlZhbGlkYXRvck9wdGlvbnMgfCBPcHRpb25zfSB3aGljaCBhcHBseSB0byB0aGlzXG4gICAgICogdmFsaWRhdG9yLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBWYWxpZGF0b3JPcHRpb25zPFRDPjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBfdmFsaWRhdGVFbGVtZW50OiBWYWxpZGF0b3I8VCwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yIHwgQXJyYXlWYWxpZGF0b3J9LlxuICAgICAqIEBwYXJhbSBwYXJhbXMgLSBPcHRpb25hbCB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfCBpbml0IHBhcmFtc30gZm9yIHRoZVxuICAgICAqIG5ldyB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yIHwgQXJyYXlWYWxpZGF0b3J9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEFycmF5VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXM8VCwgVEM+KSB7XG4gICAgICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlRWxlbWVudCA9IHBhcmFtcy52YWxpZGF0ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHBhcmFtcy5vcHRpb25zID8/IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0YXRpYyBtZXRob2Qgd2hpY2ggdmFsaWRhdGVzIHRoYXQgYSBzdXBwbGllZCBgdW5rbm93bmAgdmFsdWUgaXMgYSBgYXJyYXlgXG4gICAgICogYW5kIHRoYXQgZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkgY2FuIGJlIHZhbGlkYXRlZCBieSB0aGUgc3VwcGxpZWQgYXJyYXlcbiAgICAgKiB2YWxpZGF0b3IuXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgYHVua25vd25gIHZhbHVlIHRvIGJlIHRlc3RlZC5cbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGB0cnVlYCBpZiBgZnJvbWAgaXMgYW4gYGFycmF5YCBvZiB2YWxpZCBlbGVtZW50cywgb3JcbiAgICAgKiB7QGxpbmsgRmFpbHVyZX0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGlmIG5vdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRlPFQ+KGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IGJvb2xlYW4gfCBGYWlsdXJlPFQ+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZnJvbSkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbSBvZiBmcm9tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fdmFsaWRhdGVFbGVtZW50LnZhbGlkYXRlKGVsZW0sIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbDxUPihgXCIke2Zyb219XCI6IG5vdCBhbiBhcnJheWApO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFFSCxzQ0FBMEM7QUFFMUMsbURBQWdGO0FBVWhGOzs7O0dBSUc7QUFDSCxNQUFhLGNBQWdDLFNBQVEsNkJBQXNCO0lBU3ZFOzs7O09BSUc7SUFDSCxZQUFtQixNQUE4Qzs7UUFDN0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFBLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxTQUFTLENBQUksSUFBYSxFQUFFLE9BQVk7UUFDOUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDckIsT0FBTyxJQUFBLGFBQUksRUFBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQy9CO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFBLGFBQUksRUFBSSxJQUFJLElBQUksaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0o7QUF6Q0Qsd0NBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IEZhaWx1cmUsIGZhaWwgfSBmcm9tICcuLi9yZXN1bHQnO1xuaW1wb3J0IHsgVmFsaWRhdG9yLCBWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSAnLi92YWxpZGF0b3InO1xuaW1wb3J0IHsgVmFsaWRhdG9yQmFzZSwgVmFsaWRhdG9yQmFzZUNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi92YWxpZGF0b3JCYXNlJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIHVzZWQgdG8gY29uc3RydWN0IGEge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5BcnJheVZhbGlkYXRvciB8IEFycmF5VmFsaWRhdG9yfS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDID0gdW5rbm93bj4gZXh0ZW5kcyBWYWxpZGF0b3JCYXNlQ29uc3RydWN0b3JQYXJhbXM8VFtdLCBUQz4ge1xuICAgIHZhbGlkYXRlRWxlbWVudDogVmFsaWRhdG9yPFQsIFRDPjtcbn1cblxuLyoqXG4gKiBBbiBpbi1wbGFjZSB7QGxpbmsgVmFsaWRhdGlvbi5WYWxpZGF0b3IgfCBWYWxpZGF0b3J9IGZvciBhcnJheXMgb2YgdmFsaWRhdGVkXG4gKiB2YWx1ZXMgb3Igb2JqZWN0cy5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEFycmF5VmFsaWRhdG9yPFQsIFRDID0gdW5rbm93bj4gZXh0ZW5kcyBWYWxpZGF0b3JCYXNlPFRbXSwgVEM+IHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgVmFsaWRhdGlvbi5WYWxpZGF0b3JPcHRpb25zIHwgT3B0aW9uc30gd2hpY2ggYXBwbHkgdG8gdGhpc1xuICAgICAqIHZhbGlkYXRvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogVmFsaWRhdG9yT3B0aW9uczxUQz47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3ZhbGlkYXRlRWxlbWVudDogVmFsaWRhdG9yPFQsIFRDPjtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5BcnJheVZhbGlkYXRvciB8IEFycmF5VmFsaWRhdG9yfS5cbiAgICAgKiBAcGFyYW0gcGFyYW1zIC0gT3B0aW9uYWwge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5BcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIHwgaW5pdCBwYXJhbXN9IGZvciB0aGVcbiAgICAgKiBuZXcge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5BcnJheVZhbGlkYXRvciB8IEFycmF5VmFsaWRhdG9yfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBBcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPikge1xuICAgICAgICBzdXBlcihwYXJhbXMpO1xuICAgICAgICB0aGlzLl92YWxpZGF0ZUVsZW1lbnQgPSBwYXJhbXMudmFsaWRhdGVFbGVtZW50O1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBwYXJhbXMub3B0aW9ucyA/PyB7fTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGF0aWMgbWV0aG9kIHdoaWNoIHZhbGlkYXRlcyB0aGF0IGEgc3VwcGxpZWQgYHVua25vd25gIHZhbHVlIGlzIGEgYGFycmF5YFxuICAgICAqIGFuZCB0aGF0IGV2ZXJ5IGVsZW1lbnQgb2YgdGhlIGFycmF5IGNhbiBiZSB2YWxpZGF0ZWQgYnkgdGhlIHN1cHBsaWVkIGFycmF5XG4gICAgICogdmFsaWRhdG9yLlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGB1bmtub3duYCB2YWx1ZSB0byBiZSB0ZXN0ZWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCB2YWxpZGF0aW9uIGNvbnRleHQgd2lsbCBiZSBwcm9wYWdhdGVkIHRvIGVsZW1lbnQgdmFsaWRhdG9yLlxuICAgICAqIEByZXR1cm5zIFJldHVybnMgYHRydWVgIGlmIGBmcm9tYCBpcyBhbiBgYXJyYXlgIG9mIHZhbGlkIGVsZW1lbnRzLCBvclxuICAgICAqIHtAbGluayBGYWlsdXJlfSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaWYgbm90LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsaWRhdGU8VD4oZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKTogYm9vbGVhbiB8IEZhaWx1cmU8VD4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmcm9tKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtIG9mIGZyb20pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl92YWxpZGF0ZUVsZW1lbnQudmFsaWRhdGUoZWxlbSwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNTdWNjZXNzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWlsPFQ+KGBcIiR7ZnJvbX1cIjogbm90IGFuIGFycmF5YCk7XG4gICAgfVxufVxuIl19

@@ -6,2 +6,3 @@ export { ArrayValidator, ArrayValidatorConstructorParams } from './array';

export { FieldValidators, ObjectValidator, ObjectValidatorConstructorParams, ObjectValidatorOptions } from './object';
export { TypeGuardValidator, TypeGuardValidatorConstructorParams } from './typeGuard';
//# sourceMappingURL=classes.d.ts.map

@@ -24,3 +24,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectValidator = exports.NumberValidator = exports.BooleanValidator = exports.StringValidator = exports.ArrayValidator = void 0;
exports.TypeGuardValidator = exports.ObjectValidator = exports.NumberValidator = exports.BooleanValidator = exports.StringValidator = exports.ArrayValidator = void 0;
/* istanbul ignore file */

@@ -37,2 +37,4 @@ var array_1 = require("./array");

Object.defineProperty(exports, "ObjectValidator", { enumerable: true, get: function () { return object_1.ObjectValidator; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsMEJBQTBCO0FBRTFCLGlDQUEwRTtBQUFqRSx1R0FBQSxjQUFjLE9BQUE7QUFDdkIsbUNBQTZFO0FBQXBFLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixxQ0FBZ0Y7QUFBdkUsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDekIsbUNBQTZFO0FBQXBFLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixtQ0FBc0g7QUFBNUYseUdBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMSBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5cbmV4cG9ydCB7IEFycmF5VmFsaWRhdG9yLCBBcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9hcnJheSc7XG5leHBvcnQgeyBTdHJpbmdWYWxpZGF0b3IsIFN0cmluZ1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9zdHJpbmcnO1xuZXhwb3J0IHsgQm9vbGVhblZhbGlkYXRvciwgQm9vbGVhblZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9ib29sZWFuJztcbmV4cG9ydCB7IE51bWJlclZhbGlkYXRvciwgTnVtYmVyVmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL251bWJlcic7XG5leHBvcnQgeyBGaWVsZFZhbGlkYXRvcnMsIE9iamVjdFZhbGlkYXRvciwgT2JqZWN0VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMsIE9iamVjdFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tICcuL29iamVjdCc7XG4iXX0=
var typeGuard_1 = require("./typeGuard");
Object.defineProperty(exports, "TypeGuardValidator", { enumerable: true, get: function () { return typeGuard_1.TypeGuardValidator; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsMEJBQTBCO0FBRTFCLGlDQUEwRTtBQUFqRSx1R0FBQSxjQUFjLE9BQUE7QUFDdkIsbUNBQTZFO0FBQXBFLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixxQ0FBZ0Y7QUFBdkUsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDekIsbUNBQTZFO0FBQXBFLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixtQ0FBc0g7QUFBNUYseUdBQUEsZUFBZSxPQUFBO0FBQ3pDLHlDQUFzRjtBQUE3RSwrR0FBQSxrQkFBa0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuXG5leHBvcnQgeyBBcnJheVZhbGlkYXRvciwgQXJyYXlWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vYXJyYXknO1xuZXhwb3J0IHsgU3RyaW5nVmFsaWRhdG9yLCBTdHJpbmdWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vc3RyaW5nJztcbmV4cG9ydCB7IEJvb2xlYW5WYWxpZGF0b3IsIEJvb2xlYW5WYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vYm9vbGVhbic7XG5leHBvcnQgeyBOdW1iZXJWYWxpZGF0b3IsIE51bWJlclZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9udW1iZXInO1xuZXhwb3J0IHsgRmllbGRWYWxpZGF0b3JzLCBPYmplY3RWYWxpZGF0b3IsIE9iamVjdFZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zLCBPYmplY3RWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSAnLi9vYmplY3QnO1xuZXhwb3J0IHsgVHlwZUd1YXJkVmFsaWRhdG9yLCBUeXBlR3VhcmRWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vdHlwZUd1YXJkJztcbiJdfQ==

@@ -0,1 +1,2 @@

export * from './common';
export * from './traits';

@@ -2,0 +3,0 @@ export * from './validator';

@@ -51,2 +51,3 @@ "use strict";

exports.Validators = exports.Classes = exports.Base = void 0;
__exportStar(require("./common"), exports);
__exportStar(require("./traits"), exports);

@@ -60,2 +61,2 @@ __exportStar(require("./validator"), exports);

exports.Validators = Validators;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJDQUF5QjtBQUN6Qiw4Q0FBNEI7QUFFNUIseURBQTJDO0FBR2xDLG9CQUFJO0FBRmIsbURBQXFDO0FBRXRCLDBCQUFPO0FBRHRCLHlEQUEyQztBQUNuQixnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3RyYWl0cyc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcic7XG5cbmltcG9ydCAqIGFzIEJhc2UgZnJvbSAnLi9nZW5lcmljVmFsaWRhdG9yJztcbmltcG9ydCAqIGFzIENsYXNzZXMgZnJvbSAnLi9jbGFzc2VzJztcbmltcG9ydCAqIGFzIFZhbGlkYXRvcnMgZnJvbSAnLi92YWxpZGF0b3JzJztcbmV4cG9ydCB7IEJhc2UsIENsYXNzZXMsIFZhbGlkYXRvcnMgfTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsOENBQTRCO0FBRTVCLHlEQUEyQztBQUdsQyxvQkFBSTtBQUZiLG1EQUFxQztBQUV0QiwwQkFBTztBQUR0Qix5REFBMkM7QUFDbkIsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi90cmFpdHMnO1xuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3InO1xuXG5pbXBvcnQgKiBhcyBCYXNlIGZyb20gJy4vZ2VuZXJpY1ZhbGlkYXRvcic7XG5pbXBvcnQgKiBhcyBDbGFzc2VzIGZyb20gJy4vY2xhc3Nlcyc7XG5pbXBvcnQgKiBhcyBWYWxpZGF0b3JzIGZyb20gJy4vdmFsaWRhdG9ycyc7XG5leHBvcnQgeyBCYXNlLCBDbGFzc2VzLCBWYWxpZGF0b3JzIH07XG4iXX0=
import { GenericValidator, GenericValidatorConstructorParams } from './genericValidator';
import { Failure } from '../result';
/**
* @internal
*/
export type ValidatorBaseConstructorParams<T, TC> = Omit<GenericValidatorConstructorParams<T, TC>, 'validator'>;

@@ -4,0 +7,0 @@ /**

@@ -44,2 +44,2 @@ "use strict";

exports.ValidatorBase = ValidatorBase;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvckJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgseURBQXlGO0FBTXpGOzs7R0FHRztBQUNILE1BQXNCLGFBQWlDLFNBQVEsbUNBQXVCO0lBQ2xGOzs7O09BSUc7SUFDSCxZQUFzQixNQUFzRDtRQUN4RSxLQUFLLENBQUM7WUFDRixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7WUFDM0QsR0FBRyxNQUFNO1NBQ1osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQVdKO0FBdEJELHNDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBHZW5lcmljVmFsaWRhdG9yLCBHZW5lcmljVmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2dlbmVyaWNWYWxpZGF0b3InO1xuXG5pbXBvcnQgeyBGYWlsdXJlIH0gZnJvbSAnLi4vcmVzdWx0JztcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yQmFzZUNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiA9IE9taXQ8R2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiwgJ3ZhbGlkYXRvcic+O1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgaGVscGVyIGNsYXNzIGZvciBzcGVjaWZpYyB2YWxpZGF0b3IgaW1wbGVtZW50YXRpb25zXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZhbGlkYXRvckJhc2U8VCwgVEMgPSB1bmRlZmluZWQ+IGV4dGVuZHMgR2VuZXJpY1ZhbGlkYXRvcjxULCBUQz4ge1xuICAgIC8qKlxuICAgICAqIElubmVyIGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHBhcmFtcyAtIEluaXRpYWxpemF0aW9uIHBhcmFtcy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocGFyYW1zOiBQYXJ0aWFsPFZhbGlkYXRvckJhc2VDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4+KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHZhbGlkYXRvcjogKGZyb20sIGNvbnRleHQpID0+IHRoaXMuX3ZhbGlkYXRlKGZyb20sIGNvbnRleHQpLFxuICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBYnN0cmFjdCB2YWxpZGF0aW9uIG1ldGhvZCB0byBtZSBpbXBsZW1lbnRlZCBieSBkZXJpdmVkIGNsYXNzZXMuXG4gICAgICogQHBhcmFtIGZyb20gLSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCB2YWxpZGF0aW9uIGNvbnRleHQuXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGBmcm9tYCBpcyB2YWxpZCwge0BsaW5rIEZhaWx1cmUgfCBGYWlsdXJlPFQ+fVxuICAgICAqIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpZiBgZnJvbWAgaXMgaW52YWxpZC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3ZhbGlkYXRlKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IGJvb2xlYW4gfCBGYWlsdXJlPFQ+O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvckJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgseURBQXlGO0FBU3pGOzs7R0FHRztBQUNILE1BQXNCLGFBQWlDLFNBQVEsbUNBQXVCO0lBQ2xGOzs7O09BSUc7SUFDSCxZQUFzQixNQUFzRDtRQUN4RSxLQUFLLENBQUM7WUFDRixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7WUFDM0QsR0FBRyxNQUFNO1NBQ1osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQVdKO0FBdEJELHNDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBHZW5lcmljVmFsaWRhdG9yLCBHZW5lcmljVmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2dlbmVyaWNWYWxpZGF0b3InO1xuXG5pbXBvcnQgeyBGYWlsdXJlIH0gZnJvbSAnLi4vcmVzdWx0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yQmFzZUNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiA9IE9taXQ8R2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiwgJ3ZhbGlkYXRvcic+O1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgaGVscGVyIGNsYXNzIGZvciBzcGVjaWZpYyB2YWxpZGF0b3IgaW1wbGVtZW50YXRpb25zXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZhbGlkYXRvckJhc2U8VCwgVEMgPSB1bmRlZmluZWQ+IGV4dGVuZHMgR2VuZXJpY1ZhbGlkYXRvcjxULCBUQz4ge1xuICAgIC8qKlxuICAgICAqIElubmVyIGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHBhcmFtcyAtIEluaXRpYWxpemF0aW9uIHBhcmFtcy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocGFyYW1zOiBQYXJ0aWFsPFZhbGlkYXRvckJhc2VDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4+KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHZhbGlkYXRvcjogKGZyb20sIGNvbnRleHQpID0+IHRoaXMuX3ZhbGlkYXRlKGZyb20sIGNvbnRleHQpLFxuICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBYnN0cmFjdCB2YWxpZGF0aW9uIG1ldGhvZCB0byBtZSBpbXBsZW1lbnRlZCBieSBkZXJpdmVkIGNsYXNzZXMuXG4gICAgICogQHBhcmFtIGZyb20gLSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCB2YWxpZGF0aW9uIGNvbnRleHQuXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGBmcm9tYCBpcyB2YWxpZCwge0BsaW5rIEZhaWx1cmUgfCBGYWlsdXJlPFQ+fVxuICAgICAqIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpZiBgZnJvbWAgaXMgaW52YWxpZC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3ZhbGlkYXRlKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IGJvb2xlYW4gfCBGYWlsdXJlPFQ+O1xufVxuIl19
import { ArrayValidator, ArrayValidatorConstructorParams } from './array';
import { FieldValidators, ObjectValidator, ObjectValidatorConstructorParams } from './object';
import { TypeGuardValidator, TypeGuardValidatorConstructorParams } from './typeGuard';
import { BooleanValidator } from './boolean';
import { NumberValidator } from './number';
import { StringValidator } from './string';
import { TypeGuardWithContext } from './common';
import { Validator } from './validator';

@@ -43,2 +45,12 @@ /**

export declare function arrayOf<T, TC>(validateElement: Validator<T, TC>, params?: Omit<ArrayValidatorConstructorParams<T, TC>, 'validateElement'>): ArrayValidator<T, TC>;
/**
* Helper function to create a {@link Validation.Classes.TypeGuardValidator | TypeGuardValidator} which
* validates a value or object in place.
* @param description - a description of the thing to be validated for use in error messages
* @param guard - a {@link Validation.TypeGuardWithContext} which performs the validation.
* @returns A new {@link Validation.Classes.TypeGuardValidator | TypeGuardValidator } which validates
* the values using the supplied type guard.
* @public
*/
export declare function isA<T, TC>(description: string, guard: TypeGuardWithContext<T, TC>, params?: Omit<TypeGuardValidatorConstructorParams<T, TC>, 'description' | 'guard'>): TypeGuardValidator<T, TC>;
//# sourceMappingURL=validators.d.ts.map

@@ -24,5 +24,6 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.arrayOf = exports.object = exports.boolean = exports.number = exports.string = void 0;
exports.isA = exports.arrayOf = exports.object = exports.boolean = exports.number = exports.string = void 0;
const array_1 = require("./array");
const object_1 = require("./object");
const typeGuard_1 = require("./typeGuard");
const boolean_1 = require("./boolean");

@@ -73,2 +74,15 @@ const number_1 = require("./number");

exports.arrayOf = arrayOf;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsbUNBQTBFO0FBQzFFLHFDQUE4RjtBQUU5Rix1Q0FBNkM7QUFDN0MscUNBQTJDO0FBQzNDLHFDQUEyQztBQUczQzs7O0dBR0c7QUFDVSxRQUFBLE1BQU0sR0FBRyxJQUFJLHdCQUFlLEVBQUUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDVSxRQUFBLE1BQU0sR0FBRyxJQUFJLHdCQUFlLEVBQUUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxJQUFJLDBCQUFnQixFQUFFLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLE1BQU0sQ0FDbEIsTUFBOEIsRUFDOUIsTUFBZ0U7SUFFaEUsT0FBTyxJQUFJLHdCQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBTEQsd0JBS0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsT0FBTyxDQUNuQixlQUFpQyxFQUNqQyxNQUF3RTtJQUV4RSxPQUFPLElBQUksc0JBQWMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxHQUFHLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFMRCwwQkFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBBcnJheVZhbGlkYXRvciwgQXJyYXlWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vYXJyYXknO1xuaW1wb3J0IHsgRmllbGRWYWxpZGF0b3JzLCBPYmplY3RWYWxpZGF0b3IsIE9iamVjdFZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9vYmplY3QnO1xuXG5pbXBvcnQgeyBCb29sZWFuVmFsaWRhdG9yIH0gZnJvbSAnLi9ib29sZWFuJztcbmltcG9ydCB7IE51bWJlclZhbGlkYXRvciB9IGZyb20gJy4vbnVtYmVyJztcbmltcG9ydCB7IFN0cmluZ1ZhbGlkYXRvciB9IGZyb20gJy4vc3RyaW5nJztcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4vdmFsaWRhdG9yJztcblxuLyoqXG4gKiBBIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuU3RyaW5nVmFsaWRhdG9yIHwgU3RyaW5nVmFsaWRhdG9yfSB3aGljaCB2YWxpZGF0ZXMgYSBzdHJpbmcgaW4gcGxhY2UuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzdHJpbmcgPSBuZXcgU3RyaW5nVmFsaWRhdG9yKCk7XG5cbi8qKlxuICogQSB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLk51bWJlclZhbGlkYXRvciB8IE51bWJlclZhbGlkYXRvcn0gd2hpY2ggdmFsaWRhdGVzIGEgbnVtYmVyIGluIHBsYWNlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbnVtYmVyID0gbmV3IE51bWJlclZhbGlkYXRvcigpO1xuXG4vKipcbiAqIEEge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5Cb29sZWFuVmFsaWRhdG9yIHwgQm9vbGVhblZhbGlkYXRvcn0gd2hpY2ggdmFsaWRhdGVzIGEgYm9vbGVhbiBpbiBwbGFjZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGJvb2xlYW4gPSBuZXcgQm9vbGVhblZhbGlkYXRvcigpO1xuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLk9iamVjdFZhbGlkYXRvciB8IE9iamVjdFZhbGlkYXRvcn0gd2hpY2ggdmFsaWRhdGVzXG4gKiBhbiBvYmplY3QgaW4gcGxhY2UuXG4gKiBAcGFyYW0gZmllbGRzIC0gQSB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkZpZWxkVmFsaWRhdG9ycyB8IGZpZWxkIHZhbGlkYXRvciBkZWZpbml0aW9ufVxuICogZGVzY3JpYmluZyB0aGUgdmFsaWRhdGlvbnMgdG8gYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBwYXJhbXMgLSBPcHRpb25hbCB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLk9iamVjdFZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIHwgcGFyYW1ldGVyc31cbiAqIHRvIHJlZmluZSB0aGUgYmVoYXZpb3Igb2YgdGhlIHJlc3VsdGluZyB7QGxpbmsgVmFsaWRhdGlvbi5WYWxpZGF0b3IgfCB2YWxpZGF0b3J9LlxuICogQHJldHVybnMgQSBuZXcge0BsaW5rIFZhbGlkYXRpb24uVmFsaWRhdG9yIHwgVmFsaWRhdG9yfSB3aGljaCB2YWxpZGF0ZXMgdGhlIGRlc2lyZWRcbiAqIG9iamVjdCBpbiBwbGFjZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdDxULCBUQyA9IHVua25vd24+KFxuICAgIGZpZWxkczogRmllbGRWYWxpZGF0b3JzPFQsIFRDPixcbiAgICBwYXJhbXM/OiBPbWl0PE9iamVjdFZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiwgJ2ZpZWxkcyc+LFxuKTogT2JqZWN0VmFsaWRhdG9yPFQsIFRDPiB7XG4gICAgcmV0dXJuIG5ldyBPYmplY3RWYWxpZGF0b3IoeyBmaWVsZHMsIC4uLihwYXJhbXMgPz8ge30pIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yIHwgQXJyYXlWYWxpZGF0b3J9IHdoaWNoXG4gKiB2YWxpZGF0ZXMgYW4gYXJyYXkgaW4gcGxhY2UuXG4gKiBAcGFyYW0gdmFsaWRhdGVFbGVtZW50IC0gQSB7QGxpbmsgVmFsaWRhdGlvbi5WYWxpZGF0b3IgfCB2YWxpZGF0b3J9IHdoaWNoIHZhbGlkYXRlcyBlYWNoIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yIHwgQXJyYXlWYWxpZGF0b3IgfSB3aGljaCB2YWxpZGF0ZXMgdGhlIGRlc2lyZWRcbiAqIGFycmF5IGluIHBsYWNlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlPZjxULCBUQz4oXG4gICAgdmFsaWRhdGVFbGVtZW50OiBWYWxpZGF0b3I8VCwgVEM+LFxuICAgIHBhcmFtcz86IE9taXQ8QXJyYXlWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4sICd2YWxpZGF0ZUVsZW1lbnQnPlxuKTogQXJyYXlWYWxpZGF0b3I8VCwgVEM+IHtcbiAgICByZXR1cm4gbmV3IEFycmF5VmFsaWRhdG9yKHsgdmFsaWRhdGVFbGVtZW50LCAuLi4ocGFyYW1zID8/IHt9KSB9KTtcbn1cbiJdfQ==
/**
* Helper function to create a {@link Validation.Classes.TypeGuardValidator | TypeGuardValidator} which
* validates a value or object in place.
* @param description - a description of the thing to be validated for use in error messages
* @param guard - a {@link Validation.TypeGuardWithContext} which performs the validation.
* @returns A new {@link Validation.Classes.TypeGuardValidator | TypeGuardValidator } which validates
* the values using the supplied type guard.
* @public
*/
function isA(description, guard, params) {
return new typeGuard_1.TypeGuardValidator({ description, guard, ...(params !== null && params !== void 0 ? params : {}) });
}
exports.isA = isA;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsbUNBQTBFO0FBQzFFLHFDQUE4RjtBQUM5RiwyQ0FBc0Y7QUFFdEYsdUNBQTZDO0FBQzdDLHFDQUEyQztBQUMzQyxxQ0FBMkM7QUFJM0M7OztHQUdHO0FBQ1UsUUFBQSxNQUFNLEdBQUcsSUFBSSx3QkFBZSxFQUFFLENBQUM7QUFFNUM7OztHQUdHO0FBQ1UsUUFBQSxNQUFNLEdBQUcsSUFBSSx3QkFBZSxFQUFFLENBQUM7QUFFNUM7OztHQUdHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsSUFBSSwwQkFBZ0IsRUFBRSxDQUFDO0FBRTlDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixNQUFNLENBQ2xCLE1BQThCLEVBQzlCLE1BQWdFO0lBRWhFLE9BQU8sSUFBSSx3QkFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUxELHdCQUtDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLE9BQU8sQ0FDbkIsZUFBaUMsRUFDakMsTUFBd0U7SUFFeEUsT0FBTyxJQUFJLHNCQUFjLENBQUMsRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBTEQsMEJBS0M7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLEdBQUcsQ0FDZixXQUFtQixFQUNuQixLQUFrQyxFQUNsQyxNQUFrRjtJQUVsRixPQUFPLElBQUksOEJBQWtCLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQU5ELGtCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMSBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IEFycmF5VmFsaWRhdG9yLCBBcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9hcnJheSc7XG5pbXBvcnQgeyBGaWVsZFZhbGlkYXRvcnMsIE9iamVjdFZhbGlkYXRvciwgT2JqZWN0VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL29iamVjdCc7XG5pbXBvcnQgeyBUeXBlR3VhcmRWYWxpZGF0b3IsIFR5cGVHdWFyZFZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi90eXBlR3VhcmQnO1xuXG5pbXBvcnQgeyBCb29sZWFuVmFsaWRhdG9yIH0gZnJvbSAnLi9ib29sZWFuJztcbmltcG9ydCB7IE51bWJlclZhbGlkYXRvciB9IGZyb20gJy4vbnVtYmVyJztcbmltcG9ydCB7IFN0cmluZ1ZhbGlkYXRvciB9IGZyb20gJy4vc3RyaW5nJztcbmltcG9ydCB7IFR5cGVHdWFyZFdpdGhDb250ZXh0IH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3InO1xuXG4vKipcbiAqIEEge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5TdHJpbmdWYWxpZGF0b3IgfCBTdHJpbmdWYWxpZGF0b3J9IHdoaWNoIHZhbGlkYXRlcyBhIHN0cmluZyBpbiBwbGFjZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZyA9IG5ldyBTdHJpbmdWYWxpZGF0b3IoKTtcblxuLyoqXG4gKiBBIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuTnVtYmVyVmFsaWRhdG9yIHwgTnVtYmVyVmFsaWRhdG9yfSB3aGljaCB2YWxpZGF0ZXMgYSBudW1iZXIgaW4gcGxhY2UuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBudW1iZXIgPSBuZXcgTnVtYmVyVmFsaWRhdG9yKCk7XG5cbi8qKlxuICogQSB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkJvb2xlYW5WYWxpZGF0b3IgfCBCb29sZWFuVmFsaWRhdG9yfSB3aGljaCB2YWxpZGF0ZXMgYSBib29sZWFuIGluIHBsYWNlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgYm9vbGVhbiA9IG5ldyBCb29sZWFuVmFsaWRhdG9yKCk7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuT2JqZWN0VmFsaWRhdG9yIHwgT2JqZWN0VmFsaWRhdG9yfSB3aGljaCB2YWxpZGF0ZXNcbiAqIGFuIG9iamVjdCBpbiBwbGFjZS5cbiAqIEBwYXJhbSBmaWVsZHMgLSBBIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuRmllbGRWYWxpZGF0b3JzIHwgZmllbGQgdmFsaWRhdG9yIGRlZmluaXRpb259XG4gKiBkZXNjcmliaW5nIHRoZSB2YWxpZGF0aW9ucyB0byBiZSBhcHBsaWVkLlxuICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuT2JqZWN0VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfCBwYXJhbWV0ZXJzfVxuICogdG8gcmVmaW5lIHRoZSBiZWhhdmlvciBvZiB0aGUgcmVzdWx0aW5nIHtAbGluayBWYWxpZGF0aW9uLlZhbGlkYXRvciB8IHZhbGlkYXRvcn0uXG4gKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgVmFsaWRhdGlvbi5WYWxpZGF0b3IgfCBWYWxpZGF0b3J9IHdoaWNoIHZhbGlkYXRlcyB0aGUgZGVzaXJlZFxuICogb2JqZWN0IGluIHBsYWNlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0PFQsIFRDID0gdW5rbm93bj4oXG4gICAgZmllbGRzOiBGaWVsZFZhbGlkYXRvcnM8VCwgVEM+LFxuICAgIHBhcmFtcz86IE9taXQ8T2JqZWN0VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXM8VCwgVEM+LCAnZmllbGRzJz4sXG4pOiBPYmplY3RWYWxpZGF0b3I8VCwgVEM+IHtcbiAgICByZXR1cm4gbmV3IE9iamVjdFZhbGlkYXRvcih7IGZpZWxkcywgLi4uKHBhcmFtcyA/PyB7fSkgfSk7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuQXJyYXlWYWxpZGF0b3IgfCBBcnJheVZhbGlkYXRvcn0gd2hpY2hcbiAqIHZhbGlkYXRlcyBhbiBhcnJheSBpbiBwbGFjZS5cbiAqIEBwYXJhbSB2YWxpZGF0ZUVsZW1lbnQgLSBBIHtAbGluayBWYWxpZGF0aW9uLlZhbGlkYXRvciB8IHZhbGlkYXRvcn0gd2hpY2ggdmFsaWRhdGVzIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgbmV3IHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuQXJyYXlWYWxpZGF0b3IgfCBBcnJheVZhbGlkYXRvciB9IHdoaWNoIHZhbGlkYXRlcyB0aGUgZGVzaXJlZFxuICogYXJyYXkgaW4gcGxhY2UuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheU9mPFQsIFRDPihcbiAgICB2YWxpZGF0ZUVsZW1lbnQ6IFZhbGlkYXRvcjxULCBUQz4sXG4gICAgcGFyYW1zPzogT21pdDxBcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiwgJ3ZhbGlkYXRlRWxlbWVudCc+XG4pOiBBcnJheVZhbGlkYXRvcjxULCBUQz4ge1xuICAgIHJldHVybiBuZXcgQXJyYXlWYWxpZGF0b3IoeyB2YWxpZGF0ZUVsZW1lbnQsIC4uLihwYXJhbXMgPz8ge30pIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLlR5cGVHdWFyZFZhbGlkYXRvciB8IFR5cGVHdWFyZFZhbGlkYXRvcn0gd2hpY2hcbiAqIHZhbGlkYXRlcyBhIHZhbHVlIG9yIG9iamVjdCBpbiBwbGFjZS5cbiAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIGEgZGVzY3JpcHRpb24gb2YgdGhlIHRoaW5nIHRvIGJlIHZhbGlkYXRlZCBmb3IgdXNlIGluIGVycm9yIG1lc3NhZ2VzXG4gKiBAcGFyYW0gZ3VhcmQgLSBhIHtAbGluayBWYWxpZGF0aW9uLlR5cGVHdWFyZFdpdGhDb250ZXh0fSB3aGljaCBwZXJmb3JtcyB0aGUgdmFsaWRhdGlvbi5cbiAqIEByZXR1cm5zIEEgbmV3IHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuVHlwZUd1YXJkVmFsaWRhdG9yIHwgVHlwZUd1YXJkVmFsaWRhdG9yIH0gd2hpY2ggdmFsaWRhdGVzXG4gKiB0aGUgdmFsdWVzIHVzaW5nIHRoZSBzdXBwbGllZCB0eXBlIGd1YXJkLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBPFQsIFRDPihcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGd1YXJkOiBUeXBlR3VhcmRXaXRoQ29udGV4dDxULCBUQz4sXG4gICAgcGFyYW1zPzogT21pdDxUeXBlR3VhcmRWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4sICdkZXNjcmlwdGlvbicgfCAnZ3VhcmQnPlxuKTogVHlwZUd1YXJkVmFsaWRhdG9yPFQsIFRDPiB7XG4gICAgcmV0dXJuIG5ldyBUeXBlR3VhcmRWYWxpZGF0b3IoeyBkZXNjcmlwdGlvbiwgZ3VhcmQsIC4uLihwYXJhbXMgPz8ge30pIH0pO1xufVxuIl19

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc