You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			7138 lines
		
	
	
		
			267 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			7138 lines
		
	
	
		
			267 KiB
		
	
	
	
		
			JavaScript
		
	
(self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([[131],{
 | 
						|
 | 
						|
/***/ 70131:
 | 
						|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
// ESM COMPAT FLAG
 | 
						|
__webpack_require__.r(__webpack_exports__);
 | 
						|
 | 
						|
// EXPORTS
 | 
						|
__webpack_require__.d(__webpack_exports__, {
 | 
						|
  createPrecompiledValidator: () => (/* reexport */ createPrecompiledValidator),
 | 
						|
  customizeValidator: () => (/* reexport */ customizeValidator),
 | 
						|
  "default": () => (/* binding */ lib)
 | 
						|
});
 | 
						|
 | 
						|
// EXTERNAL MODULE: consume shared module (default) @rjsf/utils@^5.13.4 (strict) (fallback: ../node_modules/@rjsf/utils/lib/index.js)
 | 
						|
var index_js_ = __webpack_require__(24885);
 | 
						|
// EXTERNAL MODULE: ../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/ajv.js
 | 
						|
var dist_ajv = __webpack_require__(20151);
 | 
						|
var ajv_default = /*#__PURE__*/__webpack_require__.n(dist_ajv);
 | 
						|
// EXTERNAL MODULE: ../node_modules/@rjsf/validator-ajv8/node_modules/ajv-formats/dist/index.js
 | 
						|
var dist = __webpack_require__(58218);
 | 
						|
var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
 | 
						|
// EXTERNAL MODULE: ../node_modules/lodash/isObject.js
 | 
						|
var isObject = __webpack_require__(11611);
 | 
						|
var isObject_default = /*#__PURE__*/__webpack_require__.n(isObject);
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/createAjvInstance.js
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
const AJV_CONFIG = {
 | 
						|
    allErrors: true,
 | 
						|
    multipleOfPrecision: 8,
 | 
						|
    strict: false,
 | 
						|
    verbose: true,
 | 
						|
};
 | 
						|
const COLOR_FORMAT_REGEX = /^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/;
 | 
						|
const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;
 | 
						|
/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.
 | 
						|
 * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the
 | 
						|
 * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If
 | 
						|
 * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing
 | 
						|
 * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By
 | 
						|
 * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`
 | 
						|
 * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of
 | 
						|
 * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.
 | 
						|
 *
 | 
						|
 * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access
 | 
						|
 * @param [customFormats] - The set of additional custom formats that the validator will support
 | 
						|
 * @param [ajvOptionsOverrides={}] - The set of validator config override options
 | 
						|
 * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it
 | 
						|
 * @param [AjvClass] - The `Ajv` class to use when creating the validator instance
 | 
						|
 */
 | 
						|
function createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides = {}, ajvFormatOptions, AjvClass = (ajv_default())) {
 | 
						|
    const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });
 | 
						|
    if (ajvFormatOptions) {
 | 
						|
        dist_default()(ajv, ajvFormatOptions);
 | 
						|
    }
 | 
						|
    else if (ajvFormatOptions !== false) {
 | 
						|
        dist_default()(ajv);
 | 
						|
    }
 | 
						|
    // add custom formats
 | 
						|
    ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);
 | 
						|
    ajv.addFormat('color', COLOR_FORMAT_REGEX);
 | 
						|
    // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.
 | 
						|
    ajv.addKeyword(index_js_.ADDITIONAL_PROPERTY_FLAG);
 | 
						|
    ajv.addKeyword(index_js_.RJSF_ADDITONAL_PROPERTIES_FLAG);
 | 
						|
    // add more schemas to validate against
 | 
						|
    if (Array.isArray(additionalMetaSchemas)) {
 | 
						|
        ajv.addMetaSchema(additionalMetaSchemas);
 | 
						|
    }
 | 
						|
    // add more custom formats to validate against
 | 
						|
    if (isObject_default()(customFormats)) {
 | 
						|
        Object.keys(customFormats).forEach((formatName) => {
 | 
						|
            ajv.addFormat(formatName, customFormats[formatName]);
 | 
						|
        });
 | 
						|
    }
 | 
						|
    return ajv;
 | 
						|
}
 | 
						|
//# sourceMappingURL=createAjvInstance.js.map
 | 
						|
// EXTERNAL MODULE: ../node_modules/lodash/get.js
 | 
						|
var get = __webpack_require__(99729);
 | 
						|
var get_default = /*#__PURE__*/__webpack_require__.n(get);
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/processRawValidationErrors.js
 | 
						|
 | 
						|
 | 
						|
/** Transforming the error output from ajv to format used by @rjsf/utils.
 | 
						|
 * At some point, components should be updated to support ajv.
 | 
						|
 *
 | 
						|
 * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`
 | 
						|
 * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`
 | 
						|
 */
 | 
						|
function transformRJSFValidationErrors(errors = [], uiSchema) {
 | 
						|
    return errors.map((e) => {
 | 
						|
        const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;
 | 
						|
        let { message = '' } = rest;
 | 
						|
        let property = instancePath.replace(/\//g, '.');
 | 
						|
        let stack = `${property} ${message}`.trim();
 | 
						|
        if ('missingProperty' in params) {
 | 
						|
            property = property ? `${property}.${params.missingProperty}` : params.missingProperty;
 | 
						|
            const currentProperty = params.missingProperty;
 | 
						|
            const uiSchemaTitle = (0,index_js_.getUiOptions)(get_default()(uiSchema, `${property.replace(/^\./, '')}`)).title;
 | 
						|
            if (uiSchemaTitle) {
 | 
						|
                message = message.replace(currentProperty, uiSchemaTitle);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                const parentSchemaTitle = get_default()(parentSchema, [index_js_.PROPERTIES_KEY, currentProperty, 'title']);
 | 
						|
                if (parentSchemaTitle) {
 | 
						|
                    message = message.replace(currentProperty, parentSchemaTitle);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            stack = message;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            const uiSchemaTitle = (0,index_js_.getUiOptions)(get_default()(uiSchema, `${property.replace(/^\./, '')}`)).title;
 | 
						|
            if (uiSchemaTitle) {
 | 
						|
                stack = `'${uiSchemaTitle}' ${message}`.trim();
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                const parentSchemaTitle = parentSchema === null || parentSchema === void 0 ? void 0 : parentSchema.title;
 | 
						|
                if (parentSchemaTitle) {
 | 
						|
                    stack = `'${parentSchemaTitle}' ${message}`.trim();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        // put data in expected format
 | 
						|
        return {
 | 
						|
            name: keyword,
 | 
						|
            property,
 | 
						|
            message,
 | 
						|
            params,
 | 
						|
            stack,
 | 
						|
            schemaPath,
 | 
						|
        };
 | 
						|
    });
 | 
						|
}
 | 
						|
/** This function processes the `formData` with an optional user contributed `customValidate` function, which receives
 | 
						|
 * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also
 | 
						|
 * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and
 | 
						|
 * transform them in what ever way it chooses.
 | 
						|
 *
 | 
						|
 * @param validator - The `ValidatorType` implementation used for the `getDefaultFormState()` call
 | 
						|
 * @param rawErrors - The list of raw `ErrorObject`s to process
 | 
						|
 * @param formData - The form data to validate
 | 
						|
 * @param schema - The schema against which to validate the form data
 | 
						|
 * @param [customValidate] - An optional function that is used to perform custom validation
 | 
						|
 * @param [transformErrors] - An optional function that is used to transform errors after AJV validation
 | 
						|
 * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`
 | 
						|
 */
 | 
						|
function processRawValidationErrors(validator, rawErrors, formData, schema, customValidate, transformErrors, uiSchema) {
 | 
						|
    const { validationError: invalidSchemaError } = rawErrors;
 | 
						|
    let errors = transformRJSFValidationErrors(rawErrors.errors, uiSchema);
 | 
						|
    if (invalidSchemaError) {
 | 
						|
        errors = [...errors, { stack: invalidSchemaError.message }];
 | 
						|
    }
 | 
						|
    if (typeof transformErrors === 'function') {
 | 
						|
        errors = transformErrors(errors, uiSchema);
 | 
						|
    }
 | 
						|
    let errorSchema = (0,index_js_.toErrorSchema)(errors);
 | 
						|
    if (invalidSchemaError) {
 | 
						|
        errorSchema = {
 | 
						|
            ...errorSchema,
 | 
						|
            $schema: {
 | 
						|
                __errors: [invalidSchemaError.message],
 | 
						|
            },
 | 
						|
        };
 | 
						|
    }
 | 
						|
    if (typeof customValidate !== 'function') {
 | 
						|
        return { errors, errorSchema };
 | 
						|
    }
 | 
						|
    // Include form data with undefined values, which is required for custom validation.
 | 
						|
    const newFormData = (0,index_js_.getDefaultFormState)(validator, schema, formData, schema, true);
 | 
						|
    const errorHandler = customValidate(newFormData, (0,index_js_.createErrorHandler)(newFormData), uiSchema);
 | 
						|
    const userErrorSchema = (0,index_js_.unwrapErrorHandler)(errorHandler);
 | 
						|
    return (0,index_js_.validationDataMerge)({ errors, errorSchema }, userErrorSchema);
 | 
						|
}
 | 
						|
//# sourceMappingURL=processRawValidationErrors.js.map
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/validator.js
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.
 | 
						|
 */
 | 
						|
class AJV8Validator {
 | 
						|
    /** Constructs an `AJV8Validator` instance using the `options`
 | 
						|
     *
 | 
						|
     * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance
 | 
						|
     * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s
 | 
						|
     */
 | 
						|
    constructor(options, localizer) {
 | 
						|
        const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;
 | 
						|
        this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);
 | 
						|
        this.localizer = localizer;
 | 
						|
    }
 | 
						|
    /** Converts an `errorSchema` into a list of `RJSFValidationErrors`
 | 
						|
     *
 | 
						|
     * @param errorSchema - The `ErrorSchema` instance to convert
 | 
						|
     * @param [fieldPath=[]] - The current field path, defaults to [] if not specified
 | 
						|
     * @deprecated - Use the `toErrorList()` function provided by `@rjsf/utils` instead. This function will be removed in
 | 
						|
     *        the next major release.
 | 
						|
     */
 | 
						|
    toErrorList(errorSchema, fieldPath = []) {
 | 
						|
        return (0,index_js_.toErrorList)(errorSchema, fieldPath);
 | 
						|
    }
 | 
						|
    /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use
 | 
						|
     * by the playground. Returns the `errors` from the validation
 | 
						|
     *
 | 
						|
     * @param schema - The schema against which to validate the form data   * @param schema
 | 
						|
     * @param formData - The form data to validate
 | 
						|
     */
 | 
						|
    rawValidation(schema, formData) {
 | 
						|
        let compilationError = undefined;
 | 
						|
        let compiledValidator;
 | 
						|
        if (schema[index_js_.ID_KEY]) {
 | 
						|
            compiledValidator = this.ajv.getSchema(schema[index_js_.ID_KEY]);
 | 
						|
        }
 | 
						|
        try {
 | 
						|
            if (compiledValidator === undefined) {
 | 
						|
                compiledValidator = this.ajv.compile(schema);
 | 
						|
            }
 | 
						|
            compiledValidator(formData);
 | 
						|
        }
 | 
						|
        catch (err) {
 | 
						|
            compilationError = err;
 | 
						|
        }
 | 
						|
        let errors;
 | 
						|
        if (compiledValidator) {
 | 
						|
            if (typeof this.localizer === 'function') {
 | 
						|
                this.localizer(compiledValidator.errors);
 | 
						|
            }
 | 
						|
            errors = compiledValidator.errors || undefined;
 | 
						|
            // Clear errors to prevent persistent errors, see #1104
 | 
						|
            compiledValidator.errors = null;
 | 
						|
        }
 | 
						|
        return {
 | 
						|
            errors: errors,
 | 
						|
            validationError: compilationError,
 | 
						|
        };
 | 
						|
    }
 | 
						|
    /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives
 | 
						|
     * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also
 | 
						|
     * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and
 | 
						|
     * transform them in what ever way it chooses.
 | 
						|
     *
 | 
						|
     * @param formData - The form data to validate
 | 
						|
     * @param schema - The schema against which to validate the form data
 | 
						|
     * @param [customValidate] - An optional function that is used to perform custom validation
 | 
						|
     * @param [transformErrors] - An optional function that is used to transform errors after AJV validation
 | 
						|
     * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`
 | 
						|
     */
 | 
						|
    validateFormData(formData, schema, customValidate, transformErrors, uiSchema) {
 | 
						|
        const rawErrors = this.rawValidation(schema, formData);
 | 
						|
        return processRawValidationErrors(this, rawErrors, formData, schema, customValidate, transformErrors, uiSchema);
 | 
						|
    }
 | 
						|
    /** Validates data against a schema, returning true if the data is valid, or
 | 
						|
     * false otherwise. If the schema is invalid, then this function will return
 | 
						|
     * false.
 | 
						|
     *
 | 
						|
     * @param schema - The schema against which to validate the form data
 | 
						|
     * @param formData - The form data to validate
 | 
						|
     * @param rootSchema - The root schema used to provide $ref resolutions
 | 
						|
     */
 | 
						|
    isValid(schema, formData, rootSchema) {
 | 
						|
        var _a, _b;
 | 
						|
        const rootSchemaId = (_a = rootSchema[index_js_.ID_KEY]) !== null && _a !== void 0 ? _a : index_js_.ROOT_SCHEMA_PREFIX;
 | 
						|
        try {
 | 
						|
            // add the rootSchema ROOT_SCHEMA_PREFIX as id.
 | 
						|
            // then rewrite the schema ref's to point to the rootSchema
 | 
						|
            // this accounts for the case where schema have references to models
 | 
						|
            // that lives in the rootSchema but not in the schema in question.
 | 
						|
            // if (this.ajv.getSchema(rootSchemaId) === undefined) {
 | 
						|
            // TODO restore the commented out `if` above when the TODO in the `finally` is completed
 | 
						|
            this.ajv.addSchema(rootSchema, rootSchemaId);
 | 
						|
            // }
 | 
						|
            const schemaWithIdRefPrefix = (0,index_js_.withIdRefPrefix)(schema);
 | 
						|
            const schemaId = (_b = schemaWithIdRefPrefix[index_js_.ID_KEY]) !== null && _b !== void 0 ? _b : (0,index_js_.hashForSchema)(schemaWithIdRefPrefix);
 | 
						|
            let compiledValidator;
 | 
						|
            compiledValidator = this.ajv.getSchema(schemaId);
 | 
						|
            if (compiledValidator === undefined) {
 | 
						|
                // Add schema by an explicit ID so it can be fetched later
 | 
						|
                // Fall back to using compile if necessary
 | 
						|
                // https://ajv.js.org/guide/managing-schemas.html#pre-adding-all-schemas-vs-adding-on-demand
 | 
						|
                compiledValidator =
 | 
						|
                    this.ajv.addSchema(schemaWithIdRefPrefix, schemaId).getSchema(schemaId) ||
 | 
						|
                        this.ajv.compile(schemaWithIdRefPrefix);
 | 
						|
            }
 | 
						|
            const result = compiledValidator(formData);
 | 
						|
            return result;
 | 
						|
        }
 | 
						|
        catch (e) {
 | 
						|
            console.warn('Error encountered compiling schema:', e);
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        finally {
 | 
						|
            // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.
 | 
						|
            // make sure we remove the rootSchema from the global ajv instance
 | 
						|
            this.ajv.removeSchema(rootSchemaId);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
//# sourceMappingURL=validator.js.map
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/customizeValidator.js
 | 
						|
 | 
						|
/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if
 | 
						|
 * provided. If a `localizer` is provided, it is used to translate the messages generated by the underlying AJV
 | 
						|
 * validation.
 | 
						|
 *
 | 
						|
 * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance
 | 
						|
 * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s
 | 
						|
 * @returns - The custom validator implementation resulting from the set of parameters provided
 | 
						|
 */
 | 
						|
function customizeValidator(options = {}, localizer) {
 | 
						|
    return new AJV8Validator(options, localizer);
 | 
						|
}
 | 
						|
//# sourceMappingURL=customizeValidator.js.map
 | 
						|
// EXTERNAL MODULE: ../node_modules/lodash/isEqual.js
 | 
						|
var isEqual = __webpack_require__(56141);
 | 
						|
var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/precompiledValidator.js
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/** `ValidatorType` implementation that uses an AJV 8 precompiled validator as created by the
 | 
						|
 * `compileSchemaValidators()` function provided by the `@rjsf/validator-ajv8` library.
 | 
						|
 */
 | 
						|
class AJV8PrecompiledValidator {
 | 
						|
    /** Constructs an `AJV8PrecompiledValidator` instance using the `validateFns` and `rootSchema`
 | 
						|
     *
 | 
						|
     * @param validateFns - The map of the validation functions that are generated by the `schemaCompile()` function
 | 
						|
     * @param rootSchema - The root schema that was used with the `compileSchema()` function
 | 
						|
     * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s
 | 
						|
     * @throws - Error when the base schema of the precompiled validator does not have a matching validator function
 | 
						|
     */
 | 
						|
    constructor(validateFns, rootSchema, localizer) {
 | 
						|
        this.rootSchema = rootSchema;
 | 
						|
        this.validateFns = validateFns;
 | 
						|
        this.localizer = localizer;
 | 
						|
        this.mainValidator = this.getValidator(rootSchema);
 | 
						|
    }
 | 
						|
    /** Returns the precompiled validator associated with the given `schema` from the map of precompiled validator
 | 
						|
     * functions.
 | 
						|
     *
 | 
						|
     * @param schema - The schema for which a precompiled validator function is desired
 | 
						|
     * @returns - The precompiled validator function associated with this schema
 | 
						|
     */
 | 
						|
    getValidator(schema) {
 | 
						|
        const key = get_default()(schema, index_js_.ID_KEY) || (0,index_js_.hashForSchema)(schema);
 | 
						|
        const validator = this.validateFns[key];
 | 
						|
        if (!validator) {
 | 
						|
            throw new Error(`No precompiled validator function was found for the given schema for "${key}"`);
 | 
						|
        }
 | 
						|
        return validator;
 | 
						|
    }
 | 
						|
    /** Ensures that the validator is using the same schema as the root schema used to construct the precompiled
 | 
						|
     * validator. It first compares the given `schema` against the root schema and if they aren't the same, then it
 | 
						|
     * checks against the resolved root schema, on the chance that a resolved version of the root schema was passed in
 | 
						|
     * instead of the raw root schema.
 | 
						|
     *
 | 
						|
     * @param schema - The schema against which to validate the form data
 | 
						|
     * @param [formData] - The form data to validate if any
 | 
						|
     */
 | 
						|
    ensureSameRootSchema(schema, formData) {
 | 
						|
        if (!isEqual_default()(schema, this.rootSchema)) {
 | 
						|
            // Resolve the root schema with the passed in form data since that may affect the resolution
 | 
						|
            const resolvedRootSchema = (0,index_js_.retrieveSchema)(this, this.rootSchema, this.rootSchema, formData);
 | 
						|
            if (!isEqual_default()(schema, resolvedRootSchema)) {
 | 
						|
                throw new Error('The schema associated with the precompiled validator differs from the rootSchema provided for validation');
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
    /** Converts an `errorSchema` into a list of `RJSFValidationErrors`
 | 
						|
     *
 | 
						|
     * @param errorSchema - The `ErrorSchema` instance to convert
 | 
						|
     * @param [fieldPath=[]] - The current field path, defaults to [] if not specified
 | 
						|
     * @deprecated - Use the `toErrorList()` function provided by `@rjsf/utils` instead. This function will be removed in
 | 
						|
     *        the next major release.
 | 
						|
     */
 | 
						|
    toErrorList(errorSchema, fieldPath = []) {
 | 
						|
        return (0,index_js_.toErrorList)(errorSchema, fieldPath);
 | 
						|
    }
 | 
						|
    /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use
 | 
						|
     * by the playground. Returns the `errors` from the validation
 | 
						|
     *
 | 
						|
     * @param schema - The schema against which to validate the form data
 | 
						|
     * @param [formData] - The form data to validate, if any
 | 
						|
     * @throws - Error when the schema provided does not match the base schema of the precompiled validator
 | 
						|
     */
 | 
						|
    rawValidation(schema, formData) {
 | 
						|
        this.ensureSameRootSchema(schema, formData);
 | 
						|
        this.mainValidator(formData);
 | 
						|
        if (typeof this.localizer === 'function') {
 | 
						|
            this.localizer(this.mainValidator.errors);
 | 
						|
        }
 | 
						|
        const errors = this.mainValidator.errors || undefined;
 | 
						|
        // Clear errors to prevent persistent errors, see #1104
 | 
						|
        this.mainValidator.errors = null;
 | 
						|
        return { errors: errors };
 | 
						|
    }
 | 
						|
    /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives
 | 
						|
     * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also
 | 
						|
     * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and
 | 
						|
     * transform them in what ever way it chooses.
 | 
						|
     *
 | 
						|
     * @param formData - The form data to validate
 | 
						|
     * @param schema - The schema against which to validate the form data
 | 
						|
     * @param [customValidate] - An optional function that is used to perform custom validation
 | 
						|
     * @param [transformErrors] - An optional function that is used to transform errors after AJV validation
 | 
						|
     * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`
 | 
						|
     */
 | 
						|
    validateFormData(formData, schema, customValidate, transformErrors, uiSchema) {
 | 
						|
        const rawErrors = this.rawValidation(schema, formData);
 | 
						|
        return processRawValidationErrors(this, rawErrors, formData, schema, customValidate, transformErrors, uiSchema);
 | 
						|
    }
 | 
						|
    /** Validates data against a schema, returning true if the data is valid, or false otherwise. If the schema is
 | 
						|
     * invalid, then this function will return false.
 | 
						|
     *
 | 
						|
     * @param schema - The schema against which to validate the form data
 | 
						|
     * @param formData - The form data to validate
 | 
						|
     * @param rootSchema - The root schema used to provide $ref resolutions
 | 
						|
     * @returns - true if the formData validates against the schema, false otherwise
 | 
						|
     * @throws - Error when the schema provided does not match the base schema of the precompiled validator OR if there
 | 
						|
     *        isn't a precompiled validator function associated with the schema
 | 
						|
     */
 | 
						|
    isValid(schema, formData, rootSchema) {
 | 
						|
        this.ensureSameRootSchema(rootSchema, formData);
 | 
						|
        if (get_default()(schema, index_js_.ID_KEY) === index_js_.JUNK_OPTION_ID) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        const validator = this.getValidator(schema);
 | 
						|
        return validator(formData);
 | 
						|
    }
 | 
						|
}
 | 
						|
//# sourceMappingURL=precompiledValidator.js.map
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/createPrecompiledValidator.js
 | 
						|
 | 
						|
/** Creates and returns a `ValidatorType` interface that is implemented with a precompiled validator. If a `localizer`
 | 
						|
 * is provided, it is used to translate the messages generated by the underlying AJV validation.
 | 
						|
 *
 | 
						|
 * NOTE: The `validateFns` parameter is an object obtained by importing from a precompiled validation file created via
 | 
						|
 * the `compileSchemaValidators()` function.
 | 
						|
 *
 | 
						|
 * @param validateFns - The map of the validation functions that are created by the `compileSchemaValidators()` function
 | 
						|
 * @param rootSchema - The root schema that was used with the `compileSchemaValidators()` function
 | 
						|
 * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s
 | 
						|
 * @returns - The precompiled validator implementation resulting from the set of parameters provided
 | 
						|
 */
 | 
						|
function createPrecompiledValidator(validateFns, rootSchema, localizer) {
 | 
						|
    return new AJV8PrecompiledValidator(validateFns, rootSchema, localizer);
 | 
						|
}
 | 
						|
//# sourceMappingURL=createPrecompiledValidator.js.map
 | 
						|
;// CONCATENATED MODULE: ../node_modules/@rjsf/validator-ajv8/lib/index.js
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* harmony default export */ const lib = (customizeValidator());
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 67796:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
 | 
						|
function fmtDef(validate, compare) {
 | 
						|
    return { validate, compare };
 | 
						|
}
 | 
						|
exports.fullFormats = {
 | 
						|
    // date: http://tools.ietf.org/html/rfc3339#section-5.6
 | 
						|
    date: fmtDef(date, compareDate),
 | 
						|
    // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
 | 
						|
    time: fmtDef(time, compareTime),
 | 
						|
    "date-time": fmtDef(date_time, compareDateTime),
 | 
						|
    // duration: https://tools.ietf.org/html/rfc3339#appendix-A
 | 
						|
    duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,
 | 
						|
    uri,
 | 
						|
    "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,
 | 
						|
    // uri-template: https://tools.ietf.org/html/rfc6570
 | 
						|
    "uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,
 | 
						|
    // For the source: https://gist.github.com/dperini/729294
 | 
						|
    // For test cases: https://mathiasbynens.be/demo/url-regex
 | 
						|
    url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,
 | 
						|
    email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
 | 
						|
    hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,
 | 
						|
    // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
 | 
						|
    ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
 | 
						|
    ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,
 | 
						|
    regex,
 | 
						|
    // uuid: http://tools.ietf.org/html/rfc4122
 | 
						|
    uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,
 | 
						|
    // JSON-pointer: https://tools.ietf.org/html/rfc6901
 | 
						|
    // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
 | 
						|
    "json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/,
 | 
						|
    "json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,
 | 
						|
    // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
 | 
						|
    "relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,
 | 
						|
    // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types
 | 
						|
    // byte: https://github.com/miguelmota/is-base64
 | 
						|
    byte,
 | 
						|
    // signed 32 bit integer
 | 
						|
    int32: { type: "number", validate: validateInt32 },
 | 
						|
    // signed 64 bit integer
 | 
						|
    int64: { type: "number", validate: validateInt64 },
 | 
						|
    // C-type float
 | 
						|
    float: { type: "number", validate: validateNumber },
 | 
						|
    // C-type double
 | 
						|
    double: { type: "number", validate: validateNumber },
 | 
						|
    // hint to the UI to hide input strings
 | 
						|
    password: true,
 | 
						|
    // unchecked string payload
 | 
						|
    binary: true,
 | 
						|
};
 | 
						|
exports.fastFormats = {
 | 
						|
    ...exports.fullFormats,
 | 
						|
    date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate),
 | 
						|
    time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareTime),
 | 
						|
    "date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime),
 | 
						|
    // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
 | 
						|
    uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
 | 
						|
    "uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
 | 
						|
    // email (sources from jsen validator):
 | 
						|
    // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
 | 
						|
    // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')
 | 
						|
    email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
 | 
						|
};
 | 
						|
exports.formatNames = Object.keys(exports.fullFormats);
 | 
						|
function isLeapYear(year) {
 | 
						|
    // https://tools.ietf.org/html/rfc3339#appendix-C
 | 
						|
    return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
 | 
						|
}
 | 
						|
const DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
 | 
						|
const DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
 | 
						|
function date(str) {
 | 
						|
    // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
 | 
						|
    const matches = DATE.exec(str);
 | 
						|
    if (!matches)
 | 
						|
        return false;
 | 
						|
    const year = +matches[1];
 | 
						|
    const month = +matches[2];
 | 
						|
    const day = +matches[3];
 | 
						|
    return (month >= 1 &&
 | 
						|
        month <= 12 &&
 | 
						|
        day >= 1 &&
 | 
						|
        day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));
 | 
						|
}
 | 
						|
function compareDate(d1, d2) {
 | 
						|
    if (!(d1 && d2))
 | 
						|
        return undefined;
 | 
						|
    if (d1 > d2)
 | 
						|
        return 1;
 | 
						|
    if (d1 < d2)
 | 
						|
        return -1;
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
const TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;
 | 
						|
function time(str, withTimeZone) {
 | 
						|
    const matches = TIME.exec(str);
 | 
						|
    if (!matches)
 | 
						|
        return false;
 | 
						|
    const hour = +matches[1];
 | 
						|
    const minute = +matches[2];
 | 
						|
    const second = +matches[3];
 | 
						|
    const timeZone = matches[5];
 | 
						|
    return (((hour <= 23 && minute <= 59 && second <= 59) ||
 | 
						|
        (hour === 23 && minute === 59 && second === 60)) &&
 | 
						|
        (!withTimeZone || timeZone !== ""));
 | 
						|
}
 | 
						|
function compareTime(t1, t2) {
 | 
						|
    if (!(t1 && t2))
 | 
						|
        return undefined;
 | 
						|
    const a1 = TIME.exec(t1);
 | 
						|
    const a2 = TIME.exec(t2);
 | 
						|
    if (!(a1 && a2))
 | 
						|
        return undefined;
 | 
						|
    t1 = a1[1] + a1[2] + a1[3] + (a1[4] || "");
 | 
						|
    t2 = a2[1] + a2[2] + a2[3] + (a2[4] || "");
 | 
						|
    if (t1 > t2)
 | 
						|
        return 1;
 | 
						|
    if (t1 < t2)
 | 
						|
        return -1;
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
const DATE_TIME_SEPARATOR = /t|\s/i;
 | 
						|
function date_time(str) {
 | 
						|
    // http://tools.ietf.org/html/rfc3339#section-5.6
 | 
						|
    const dateTime = str.split(DATE_TIME_SEPARATOR);
 | 
						|
    return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);
 | 
						|
}
 | 
						|
function compareDateTime(dt1, dt2) {
 | 
						|
    if (!(dt1 && dt2))
 | 
						|
        return undefined;
 | 
						|
    const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);
 | 
						|
    const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);
 | 
						|
    const res = compareDate(d1, d2);
 | 
						|
    if (res === undefined)
 | 
						|
        return undefined;
 | 
						|
    return res || compareTime(t1, t2);
 | 
						|
}
 | 
						|
const NOT_URI_FRAGMENT = /\/|:/;
 | 
						|
const URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
 | 
						|
function uri(str) {
 | 
						|
    // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
 | 
						|
    return NOT_URI_FRAGMENT.test(str) && URI.test(str);
 | 
						|
}
 | 
						|
const BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;
 | 
						|
function byte(str) {
 | 
						|
    BYTE.lastIndex = 0;
 | 
						|
    return BYTE.test(str);
 | 
						|
}
 | 
						|
const MIN_INT32 = -(2 ** 31);
 | 
						|
const MAX_INT32 = 2 ** 31 - 1;
 | 
						|
function validateInt32(value) {
 | 
						|
    return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;
 | 
						|
}
 | 
						|
function validateInt64(value) {
 | 
						|
    // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64
 | 
						|
    return Number.isInteger(value);
 | 
						|
}
 | 
						|
function validateNumber() {
 | 
						|
    return true;
 | 
						|
}
 | 
						|
const Z_ANCHOR = /[^\\]\\Z/;
 | 
						|
function regex(str) {
 | 
						|
    if (Z_ANCHOR.test(str))
 | 
						|
        return false;
 | 
						|
    try {
 | 
						|
        new RegExp(str);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
    catch (e) {
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
}
 | 
						|
//# sourceMappingURL=formats.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 58218:
 | 
						|
/***/ ((module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const formats_1 = __webpack_require__(67796);
 | 
						|
const limit_1 = __webpack_require__(60891);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const fullName = new codegen_1.Name("fullFormats");
 | 
						|
const fastName = new codegen_1.Name("fastFormats");
 | 
						|
const formatsPlugin = (ajv, opts = { keywords: true }) => {
 | 
						|
    if (Array.isArray(opts)) {
 | 
						|
        addFormats(ajv, opts, formats_1.fullFormats, fullName);
 | 
						|
        return ajv;
 | 
						|
    }
 | 
						|
    const [formats, exportName] = opts.mode === "fast" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];
 | 
						|
    const list = opts.formats || formats_1.formatNames;
 | 
						|
    addFormats(ajv, list, formats, exportName);
 | 
						|
    if (opts.keywords)
 | 
						|
        limit_1.default(ajv);
 | 
						|
    return ajv;
 | 
						|
};
 | 
						|
formatsPlugin.get = (name, mode = "full") => {
 | 
						|
    const formats = mode === "fast" ? formats_1.fastFormats : formats_1.fullFormats;
 | 
						|
    const f = formats[name];
 | 
						|
    if (!f)
 | 
						|
        throw new Error(`Unknown format "${name}"`);
 | 
						|
    return f;
 | 
						|
};
 | 
						|
function addFormats(ajv, list, fs, exportName) {
 | 
						|
    var _a;
 | 
						|
    var _b;
 | 
						|
    (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = codegen_1._ `require("ajv-formats/dist/formats").${exportName}`);
 | 
						|
    for (const f of list)
 | 
						|
        ajv.addFormat(f, fs[f]);
 | 
						|
}
 | 
						|
module.exports = exports = formatsPlugin;
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports["default"] = formatsPlugin;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 60891:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.formatLimitDefinition = void 0;
 | 
						|
const ajv_1 = __webpack_require__(20151);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const ops = codegen_1.operators;
 | 
						|
const KWDs = {
 | 
						|
    formatMaximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
 | 
						|
    formatMinimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
 | 
						|
    formatExclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
 | 
						|
    formatExclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE },
 | 
						|
};
 | 
						|
const error = {
 | 
						|
    message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,
 | 
						|
    params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,
 | 
						|
};
 | 
						|
exports.formatLimitDefinition = {
 | 
						|
    keyword: Object.keys(KWDs),
 | 
						|
    type: "string",
 | 
						|
    schemaType: "string",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, data, schemaCode, keyword, it } = cxt;
 | 
						|
        const { opts, self } = it;
 | 
						|
        if (!opts.validateFormats)
 | 
						|
            return;
 | 
						|
        const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format");
 | 
						|
        if (fCxt.$data)
 | 
						|
            validate$DataFormat();
 | 
						|
        else
 | 
						|
            validateFormat();
 | 
						|
        function validate$DataFormat() {
 | 
						|
            const fmts = gen.scopeValue("formats", {
 | 
						|
                ref: self.formats,
 | 
						|
                code: opts.code.formats,
 | 
						|
            });
 | 
						|
            const fmt = gen.const("fmt", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);
 | 
						|
            cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != "object"`, codegen_1._ `${fmt} instanceof RegExp`, codegen_1._ `typeof ${fmt}.compare != "function"`, compareCode(fmt)));
 | 
						|
        }
 | 
						|
        function validateFormat() {
 | 
						|
            const format = fCxt.schema;
 | 
						|
            const fmtDef = self.formats[format];
 | 
						|
            if (!fmtDef || fmtDef === true)
 | 
						|
                return;
 | 
						|
            if (typeof fmtDef != "object" ||
 | 
						|
                fmtDef instanceof RegExp ||
 | 
						|
                typeof fmtDef.compare != "function") {
 | 
						|
                throw new Error(`"${keyword}": format "${format}" does not define "compare" function`);
 | 
						|
            }
 | 
						|
            const fmt = gen.scopeValue("formats", {
 | 
						|
                key: format,
 | 
						|
                ref: fmtDef,
 | 
						|
                code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,
 | 
						|
            });
 | 
						|
            cxt.fail$data(compareCode(fmt));
 | 
						|
        }
 | 
						|
        function compareCode(fmt) {
 | 
						|
            return codegen_1._ `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
 | 
						|
        }
 | 
						|
    },
 | 
						|
    dependencies: ["format"],
 | 
						|
};
 | 
						|
const formatLimitPlugin = (ajv) => {
 | 
						|
    ajv.addKeyword(exports.formatLimitDefinition);
 | 
						|
    return ajv;
 | 
						|
};
 | 
						|
exports["default"] = formatLimitPlugin;
 | 
						|
//# sourceMappingURL=limit.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 20151:
 | 
						|
/***/ ((module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;
 | 
						|
const core_1 = __webpack_require__(98955);
 | 
						|
const draft7_1 = __webpack_require__(87213);
 | 
						|
const discriminator_1 = __webpack_require__(30648);
 | 
						|
const draft7MetaSchema = __webpack_require__(60172);
 | 
						|
const META_SUPPORT_DATA = ["/properties"];
 | 
						|
const META_SCHEMA_ID = "http://json-schema.org/draft-07/schema";
 | 
						|
class Ajv extends core_1.default {
 | 
						|
    _addVocabularies() {
 | 
						|
        super._addVocabularies();
 | 
						|
        draft7_1.default.forEach((v) => this.addVocabulary(v));
 | 
						|
        if (this.opts.discriminator)
 | 
						|
            this.addKeyword(discriminator_1.default);
 | 
						|
    }
 | 
						|
    _addDefaultMetaSchema() {
 | 
						|
        super._addDefaultMetaSchema();
 | 
						|
        if (!this.opts.meta)
 | 
						|
            return;
 | 
						|
        const metaSchema = this.opts.$data
 | 
						|
            ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)
 | 
						|
            : draft7MetaSchema;
 | 
						|
        this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);
 | 
						|
        this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID;
 | 
						|
    }
 | 
						|
    defaultMeta() {
 | 
						|
        return (this.opts.defaultMeta =
 | 
						|
            super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.Ajv = Ajv;
 | 
						|
module.exports = exports = Ajv;
 | 
						|
module.exports.Ajv = Ajv;
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports["default"] = Ajv;
 | 
						|
var validate_1 = __webpack_require__(40764);
 | 
						|
Object.defineProperty(exports, "KeywordCxt", ({ enumerable: true, get: function () { return validate_1.KeywordCxt; } }));
 | 
						|
var codegen_1 = __webpack_require__(17231);
 | 
						|
Object.defineProperty(exports, "_", ({ enumerable: true, get: function () { return codegen_1._; } }));
 | 
						|
Object.defineProperty(exports, "str", ({ enumerable: true, get: function () { return codegen_1.str; } }));
 | 
						|
Object.defineProperty(exports, "stringify", ({ enumerable: true, get: function () { return codegen_1.stringify; } }));
 | 
						|
Object.defineProperty(exports, "nil", ({ enumerable: true, get: function () { return codegen_1.nil; } }));
 | 
						|
Object.defineProperty(exports, "Name", ({ enumerable: true, get: function () { return codegen_1.Name; } }));
 | 
						|
Object.defineProperty(exports, "CodeGen", ({ enumerable: true, get: function () { return codegen_1.CodeGen; } }));
 | 
						|
var validation_error_1 = __webpack_require__(17766);
 | 
						|
Object.defineProperty(exports, "ValidationError", ({ enumerable: true, get: function () { return validation_error_1.default; } }));
 | 
						|
var ref_error_1 = __webpack_require__(26317);
 | 
						|
Object.defineProperty(exports, "MissingRefError", ({ enumerable: true, get: function () { return ref_error_1.default; } }));
 | 
						|
//# sourceMappingURL=ajv.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 28115:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;
 | 
						|
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
 | 
						|
class _CodeOrName {
 | 
						|
}
 | 
						|
exports._CodeOrName = _CodeOrName;
 | 
						|
exports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
 | 
						|
class Name extends _CodeOrName {
 | 
						|
    constructor(s) {
 | 
						|
        super();
 | 
						|
        if (!exports.IDENTIFIER.test(s))
 | 
						|
            throw new Error("CodeGen: name must be a valid identifier");
 | 
						|
        this.str = s;
 | 
						|
    }
 | 
						|
    toString() {
 | 
						|
        return this.str;
 | 
						|
    }
 | 
						|
    emptyStr() {
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return { [this.str]: 1 };
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.Name = Name;
 | 
						|
class _Code extends _CodeOrName {
 | 
						|
    constructor(code) {
 | 
						|
        super();
 | 
						|
        this._items = typeof code === "string" ? [code] : code;
 | 
						|
    }
 | 
						|
    toString() {
 | 
						|
        return this.str;
 | 
						|
    }
 | 
						|
    emptyStr() {
 | 
						|
        if (this._items.length > 1)
 | 
						|
            return false;
 | 
						|
        const item = this._items[0];
 | 
						|
        return item === "" || item === '""';
 | 
						|
    }
 | 
						|
    get str() {
 | 
						|
        var _a;
 | 
						|
        return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, "")));
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        var _a;
 | 
						|
        return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {
 | 
						|
            if (c instanceof Name)
 | 
						|
                names[c.str] = (names[c.str] || 0) + 1;
 | 
						|
            return names;
 | 
						|
        }, {})));
 | 
						|
    }
 | 
						|
}
 | 
						|
exports._Code = _Code;
 | 
						|
exports.nil = new _Code("");
 | 
						|
function _(strs, ...args) {
 | 
						|
    const code = [strs[0]];
 | 
						|
    let i = 0;
 | 
						|
    while (i < args.length) {
 | 
						|
        addCodeArg(code, args[i]);
 | 
						|
        code.push(strs[++i]);
 | 
						|
    }
 | 
						|
    return new _Code(code);
 | 
						|
}
 | 
						|
exports._ = _;
 | 
						|
const plus = new _Code("+");
 | 
						|
function str(strs, ...args) {
 | 
						|
    const expr = [safeStringify(strs[0])];
 | 
						|
    let i = 0;
 | 
						|
    while (i < args.length) {
 | 
						|
        expr.push(plus);
 | 
						|
        addCodeArg(expr, args[i]);
 | 
						|
        expr.push(plus, safeStringify(strs[++i]));
 | 
						|
    }
 | 
						|
    optimize(expr);
 | 
						|
    return new _Code(expr);
 | 
						|
}
 | 
						|
exports.str = str;
 | 
						|
function addCodeArg(code, arg) {
 | 
						|
    if (arg instanceof _Code)
 | 
						|
        code.push(...arg._items);
 | 
						|
    else if (arg instanceof Name)
 | 
						|
        code.push(arg);
 | 
						|
    else
 | 
						|
        code.push(interpolate(arg));
 | 
						|
}
 | 
						|
exports.addCodeArg = addCodeArg;
 | 
						|
function optimize(expr) {
 | 
						|
    let i = 1;
 | 
						|
    while (i < expr.length - 1) {
 | 
						|
        if (expr[i] === plus) {
 | 
						|
            const res = mergeExprItems(expr[i - 1], expr[i + 1]);
 | 
						|
            if (res !== undefined) {
 | 
						|
                expr.splice(i - 1, 3, res);
 | 
						|
                continue;
 | 
						|
            }
 | 
						|
            expr[i++] = "+";
 | 
						|
        }
 | 
						|
        i++;
 | 
						|
    }
 | 
						|
}
 | 
						|
function mergeExprItems(a, b) {
 | 
						|
    if (b === '""')
 | 
						|
        return a;
 | 
						|
    if (a === '""')
 | 
						|
        return b;
 | 
						|
    if (typeof a == "string") {
 | 
						|
        if (b instanceof Name || a[a.length - 1] !== '"')
 | 
						|
            return;
 | 
						|
        if (typeof b != "string")
 | 
						|
            return `${a.slice(0, -1)}${b}"`;
 | 
						|
        if (b[0] === '"')
 | 
						|
            return a.slice(0, -1) + b.slice(1);
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    if (typeof b == "string" && b[0] === '"' && !(a instanceof Name))
 | 
						|
        return `"${a}${b.slice(1)}`;
 | 
						|
    return;
 | 
						|
}
 | 
						|
function strConcat(c1, c2) {
 | 
						|
    return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;
 | 
						|
}
 | 
						|
exports.strConcat = strConcat;
 | 
						|
// TODO do not allow arrays here
 | 
						|
function interpolate(x) {
 | 
						|
    return typeof x == "number" || typeof x == "boolean" || x === null
 | 
						|
        ? x
 | 
						|
        : safeStringify(Array.isArray(x) ? x.join(",") : x);
 | 
						|
}
 | 
						|
function stringify(x) {
 | 
						|
    return new _Code(safeStringify(x));
 | 
						|
}
 | 
						|
exports.stringify = stringify;
 | 
						|
function safeStringify(x) {
 | 
						|
    return JSON.stringify(x)
 | 
						|
        .replace(/\u2028/g, "\\u2028")
 | 
						|
        .replace(/\u2029/g, "\\u2029");
 | 
						|
}
 | 
						|
exports.safeStringify = safeStringify;
 | 
						|
function getProperty(key) {
 | 
						|
    return typeof key == "string" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;
 | 
						|
}
 | 
						|
exports.getProperty = getProperty;
 | 
						|
//Does best effort to format the name properly
 | 
						|
function getEsmExportName(key) {
 | 
						|
    if (typeof key == "string" && exports.IDENTIFIER.test(key)) {
 | 
						|
        return new _Code(`${key}`);
 | 
						|
    }
 | 
						|
    throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);
 | 
						|
}
 | 
						|
exports.getEsmExportName = getEsmExportName;
 | 
						|
function regexpCode(rx) {
 | 
						|
    return new _Code(rx.toString());
 | 
						|
}
 | 
						|
exports.regexpCode = regexpCode;
 | 
						|
//# sourceMappingURL=code.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 17231:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;
 | 
						|
const code_1 = __webpack_require__(28115);
 | 
						|
const scope_1 = __webpack_require__(99131);
 | 
						|
var code_2 = __webpack_require__(28115);
 | 
						|
Object.defineProperty(exports, "_", ({ enumerable: true, get: function () { return code_2._; } }));
 | 
						|
Object.defineProperty(exports, "str", ({ enumerable: true, get: function () { return code_2.str; } }));
 | 
						|
Object.defineProperty(exports, "strConcat", ({ enumerable: true, get: function () { return code_2.strConcat; } }));
 | 
						|
Object.defineProperty(exports, "nil", ({ enumerable: true, get: function () { return code_2.nil; } }));
 | 
						|
Object.defineProperty(exports, "getProperty", ({ enumerable: true, get: function () { return code_2.getProperty; } }));
 | 
						|
Object.defineProperty(exports, "stringify", ({ enumerable: true, get: function () { return code_2.stringify; } }));
 | 
						|
Object.defineProperty(exports, "regexpCode", ({ enumerable: true, get: function () { return code_2.regexpCode; } }));
 | 
						|
Object.defineProperty(exports, "Name", ({ enumerable: true, get: function () { return code_2.Name; } }));
 | 
						|
var scope_2 = __webpack_require__(99131);
 | 
						|
Object.defineProperty(exports, "Scope", ({ enumerable: true, get: function () { return scope_2.Scope; } }));
 | 
						|
Object.defineProperty(exports, "ValueScope", ({ enumerable: true, get: function () { return scope_2.ValueScope; } }));
 | 
						|
Object.defineProperty(exports, "ValueScopeName", ({ enumerable: true, get: function () { return scope_2.ValueScopeName; } }));
 | 
						|
Object.defineProperty(exports, "varKinds", ({ enumerable: true, get: function () { return scope_2.varKinds; } }));
 | 
						|
exports.operators = {
 | 
						|
    GT: new code_1._Code(">"),
 | 
						|
    GTE: new code_1._Code(">="),
 | 
						|
    LT: new code_1._Code("<"),
 | 
						|
    LTE: new code_1._Code("<="),
 | 
						|
    EQ: new code_1._Code("==="),
 | 
						|
    NEQ: new code_1._Code("!=="),
 | 
						|
    NOT: new code_1._Code("!"),
 | 
						|
    OR: new code_1._Code("||"),
 | 
						|
    AND: new code_1._Code("&&"),
 | 
						|
    ADD: new code_1._Code("+"),
 | 
						|
};
 | 
						|
class Node {
 | 
						|
    optimizeNodes() {
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    optimizeNames(_names, _constants) {
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
}
 | 
						|
class Def extends Node {
 | 
						|
    constructor(varKind, name, rhs) {
 | 
						|
        super();
 | 
						|
        this.varKind = varKind;
 | 
						|
        this.name = name;
 | 
						|
        this.rhs = rhs;
 | 
						|
    }
 | 
						|
    render({ es5, _n }) {
 | 
						|
        const varKind = es5 ? scope_1.varKinds.var : this.varKind;
 | 
						|
        const rhs = this.rhs === undefined ? "" : ` = ${this.rhs}`;
 | 
						|
        return `${varKind} ${this.name}${rhs};` + _n;
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        if (!names[this.name.str])
 | 
						|
            return;
 | 
						|
        if (this.rhs)
 | 
						|
            this.rhs = optimizeExpr(this.rhs, names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};
 | 
						|
    }
 | 
						|
}
 | 
						|
class Assign extends Node {
 | 
						|
    constructor(lhs, rhs, sideEffects) {
 | 
						|
        super();
 | 
						|
        this.lhs = lhs;
 | 
						|
        this.rhs = rhs;
 | 
						|
        this.sideEffects = sideEffects;
 | 
						|
    }
 | 
						|
    render({ _n }) {
 | 
						|
        return `${this.lhs} = ${this.rhs};` + _n;
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)
 | 
						|
            return;
 | 
						|
        this.rhs = optimizeExpr(this.rhs, names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };
 | 
						|
        return addExprNames(names, this.rhs);
 | 
						|
    }
 | 
						|
}
 | 
						|
class AssignOp extends Assign {
 | 
						|
    constructor(lhs, op, rhs, sideEffects) {
 | 
						|
        super(lhs, rhs, sideEffects);
 | 
						|
        this.op = op;
 | 
						|
    }
 | 
						|
    render({ _n }) {
 | 
						|
        return `${this.lhs} ${this.op}= ${this.rhs};` + _n;
 | 
						|
    }
 | 
						|
}
 | 
						|
class Label extends Node {
 | 
						|
    constructor(label) {
 | 
						|
        super();
 | 
						|
        this.label = label;
 | 
						|
        this.names = {};
 | 
						|
    }
 | 
						|
    render({ _n }) {
 | 
						|
        return `${this.label}:` + _n;
 | 
						|
    }
 | 
						|
}
 | 
						|
class Break extends Node {
 | 
						|
    constructor(label) {
 | 
						|
        super();
 | 
						|
        this.label = label;
 | 
						|
        this.names = {};
 | 
						|
    }
 | 
						|
    render({ _n }) {
 | 
						|
        const label = this.label ? ` ${this.label}` : "";
 | 
						|
        return `break${label};` + _n;
 | 
						|
    }
 | 
						|
}
 | 
						|
class Throw extends Node {
 | 
						|
    constructor(error) {
 | 
						|
        super();
 | 
						|
        this.error = error;
 | 
						|
    }
 | 
						|
    render({ _n }) {
 | 
						|
        return `throw ${this.error};` + _n;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return this.error.names;
 | 
						|
    }
 | 
						|
}
 | 
						|
class AnyCode extends Node {
 | 
						|
    constructor(code) {
 | 
						|
        super();
 | 
						|
        this.code = code;
 | 
						|
    }
 | 
						|
    render({ _n }) {
 | 
						|
        return `${this.code};` + _n;
 | 
						|
    }
 | 
						|
    optimizeNodes() {
 | 
						|
        return `${this.code}` ? this : undefined;
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        this.code = optimizeExpr(this.code, names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return this.code instanceof code_1._CodeOrName ? this.code.names : {};
 | 
						|
    }
 | 
						|
}
 | 
						|
class ParentNode extends Node {
 | 
						|
    constructor(nodes = []) {
 | 
						|
        super();
 | 
						|
        this.nodes = nodes;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        return this.nodes.reduce((code, n) => code + n.render(opts), "");
 | 
						|
    }
 | 
						|
    optimizeNodes() {
 | 
						|
        const { nodes } = this;
 | 
						|
        let i = nodes.length;
 | 
						|
        while (i--) {
 | 
						|
            const n = nodes[i].optimizeNodes();
 | 
						|
            if (Array.isArray(n))
 | 
						|
                nodes.splice(i, 1, ...n);
 | 
						|
            else if (n)
 | 
						|
                nodes[i] = n;
 | 
						|
            else
 | 
						|
                nodes.splice(i, 1);
 | 
						|
        }
 | 
						|
        return nodes.length > 0 ? this : undefined;
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        const { nodes } = this;
 | 
						|
        let i = nodes.length;
 | 
						|
        while (i--) {
 | 
						|
            // iterating backwards improves 1-pass optimization
 | 
						|
            const n = nodes[i];
 | 
						|
            if (n.optimizeNames(names, constants))
 | 
						|
                continue;
 | 
						|
            subtractNames(names, n.names);
 | 
						|
            nodes.splice(i, 1);
 | 
						|
        }
 | 
						|
        return nodes.length > 0 ? this : undefined;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return this.nodes.reduce((names, n) => addNames(names, n.names), {});
 | 
						|
    }
 | 
						|
}
 | 
						|
class BlockNode extends ParentNode {
 | 
						|
    render(opts) {
 | 
						|
        return "{" + opts._n + super.render(opts) + "}" + opts._n;
 | 
						|
    }
 | 
						|
}
 | 
						|
class Root extends ParentNode {
 | 
						|
}
 | 
						|
class Else extends BlockNode {
 | 
						|
}
 | 
						|
Else.kind = "else";
 | 
						|
class If extends BlockNode {
 | 
						|
    constructor(condition, nodes) {
 | 
						|
        super(nodes);
 | 
						|
        this.condition = condition;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        let code = `if(${this.condition})` + super.render(opts);
 | 
						|
        if (this.else)
 | 
						|
            code += "else " + this.else.render(opts);
 | 
						|
        return code;
 | 
						|
    }
 | 
						|
    optimizeNodes() {
 | 
						|
        super.optimizeNodes();
 | 
						|
        const cond = this.condition;
 | 
						|
        if (cond === true)
 | 
						|
            return this.nodes; // else is ignored here
 | 
						|
        let e = this.else;
 | 
						|
        if (e) {
 | 
						|
            const ns = e.optimizeNodes();
 | 
						|
            e = this.else = Array.isArray(ns) ? new Else(ns) : ns;
 | 
						|
        }
 | 
						|
        if (e) {
 | 
						|
            if (cond === false)
 | 
						|
                return e instanceof If ? e : e.nodes;
 | 
						|
            if (this.nodes.length)
 | 
						|
                return this;
 | 
						|
            return new If(not(cond), e instanceof If ? [e] : e.nodes);
 | 
						|
        }
 | 
						|
        if (cond === false || !this.nodes.length)
 | 
						|
            return undefined;
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        var _a;
 | 
						|
        this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);
 | 
						|
        if (!(super.optimizeNames(names, constants) || this.else))
 | 
						|
            return;
 | 
						|
        this.condition = optimizeExpr(this.condition, names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        const names = super.names;
 | 
						|
        addExprNames(names, this.condition);
 | 
						|
        if (this.else)
 | 
						|
            addNames(names, this.else.names);
 | 
						|
        return names;
 | 
						|
    }
 | 
						|
}
 | 
						|
If.kind = "if";
 | 
						|
class For extends BlockNode {
 | 
						|
}
 | 
						|
For.kind = "for";
 | 
						|
class ForLoop extends For {
 | 
						|
    constructor(iteration) {
 | 
						|
        super();
 | 
						|
        this.iteration = iteration;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        return `for(${this.iteration})` + super.render(opts);
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        if (!super.optimizeNames(names, constants))
 | 
						|
            return;
 | 
						|
        this.iteration = optimizeExpr(this.iteration, names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return addNames(super.names, this.iteration.names);
 | 
						|
    }
 | 
						|
}
 | 
						|
class ForRange extends For {
 | 
						|
    constructor(varKind, name, from, to) {
 | 
						|
        super();
 | 
						|
        this.varKind = varKind;
 | 
						|
        this.name = name;
 | 
						|
        this.from = from;
 | 
						|
        this.to = to;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;
 | 
						|
        const { name, from, to } = this;
 | 
						|
        return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        const names = addExprNames(super.names, this.from);
 | 
						|
        return addExprNames(names, this.to);
 | 
						|
    }
 | 
						|
}
 | 
						|
class ForIter extends For {
 | 
						|
    constructor(loop, varKind, name, iterable) {
 | 
						|
        super();
 | 
						|
        this.loop = loop;
 | 
						|
        this.varKind = varKind;
 | 
						|
        this.name = name;
 | 
						|
        this.iterable = iterable;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        if (!super.optimizeNames(names, constants))
 | 
						|
            return;
 | 
						|
        this.iterable = optimizeExpr(this.iterable, names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        return addNames(super.names, this.iterable.names);
 | 
						|
    }
 | 
						|
}
 | 
						|
class Func extends BlockNode {
 | 
						|
    constructor(name, args, async) {
 | 
						|
        super();
 | 
						|
        this.name = name;
 | 
						|
        this.args = args;
 | 
						|
        this.async = async;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        const _async = this.async ? "async " : "";
 | 
						|
        return `${_async}function ${this.name}(${this.args})` + super.render(opts);
 | 
						|
    }
 | 
						|
}
 | 
						|
Func.kind = "func";
 | 
						|
class Return extends ParentNode {
 | 
						|
    render(opts) {
 | 
						|
        return "return " + super.render(opts);
 | 
						|
    }
 | 
						|
}
 | 
						|
Return.kind = "return";
 | 
						|
class Try extends BlockNode {
 | 
						|
    render(opts) {
 | 
						|
        let code = "try" + super.render(opts);
 | 
						|
        if (this.catch)
 | 
						|
            code += this.catch.render(opts);
 | 
						|
        if (this.finally)
 | 
						|
            code += this.finally.render(opts);
 | 
						|
        return code;
 | 
						|
    }
 | 
						|
    optimizeNodes() {
 | 
						|
        var _a, _b;
 | 
						|
        super.optimizeNodes();
 | 
						|
        (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();
 | 
						|
        (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    optimizeNames(names, constants) {
 | 
						|
        var _a, _b;
 | 
						|
        super.optimizeNames(names, constants);
 | 
						|
        (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);
 | 
						|
        (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get names() {
 | 
						|
        const names = super.names;
 | 
						|
        if (this.catch)
 | 
						|
            addNames(names, this.catch.names);
 | 
						|
        if (this.finally)
 | 
						|
            addNames(names, this.finally.names);
 | 
						|
        return names;
 | 
						|
    }
 | 
						|
}
 | 
						|
class Catch extends BlockNode {
 | 
						|
    constructor(error) {
 | 
						|
        super();
 | 
						|
        this.error = error;
 | 
						|
    }
 | 
						|
    render(opts) {
 | 
						|
        return `catch(${this.error})` + super.render(opts);
 | 
						|
    }
 | 
						|
}
 | 
						|
Catch.kind = "catch";
 | 
						|
class Finally extends BlockNode {
 | 
						|
    render(opts) {
 | 
						|
        return "finally" + super.render(opts);
 | 
						|
    }
 | 
						|
}
 | 
						|
Finally.kind = "finally";
 | 
						|
class CodeGen {
 | 
						|
    constructor(extScope, opts = {}) {
 | 
						|
        this._values = {};
 | 
						|
        this._blockStarts = [];
 | 
						|
        this._constants = {};
 | 
						|
        this.opts = { ...opts, _n: opts.lines ? "\n" : "" };
 | 
						|
        this._extScope = extScope;
 | 
						|
        this._scope = new scope_1.Scope({ parent: extScope });
 | 
						|
        this._nodes = [new Root()];
 | 
						|
    }
 | 
						|
    toString() {
 | 
						|
        return this._root.render(this.opts);
 | 
						|
    }
 | 
						|
    // returns unique name in the internal scope
 | 
						|
    name(prefix) {
 | 
						|
        return this._scope.name(prefix);
 | 
						|
    }
 | 
						|
    // reserves unique name in the external scope
 | 
						|
    scopeName(prefix) {
 | 
						|
        return this._extScope.name(prefix);
 | 
						|
    }
 | 
						|
    // reserves unique name in the external scope and assigns value to it
 | 
						|
    scopeValue(prefixOrName, value) {
 | 
						|
        const name = this._extScope.value(prefixOrName, value);
 | 
						|
        const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());
 | 
						|
        vs.add(name);
 | 
						|
        return name;
 | 
						|
    }
 | 
						|
    getScopeValue(prefix, keyOrRef) {
 | 
						|
        return this._extScope.getValue(prefix, keyOrRef);
 | 
						|
    }
 | 
						|
    // return code that assigns values in the external scope to the names that are used internally
 | 
						|
    // (same names that were returned by gen.scopeName or gen.scopeValue)
 | 
						|
    scopeRefs(scopeName) {
 | 
						|
        return this._extScope.scopeRefs(scopeName, this._values);
 | 
						|
    }
 | 
						|
    scopeCode() {
 | 
						|
        return this._extScope.scopeCode(this._values);
 | 
						|
    }
 | 
						|
    _def(varKind, nameOrPrefix, rhs, constant) {
 | 
						|
        const name = this._scope.toName(nameOrPrefix);
 | 
						|
        if (rhs !== undefined && constant)
 | 
						|
            this._constants[name.str] = rhs;
 | 
						|
        this._leafNode(new Def(varKind, name, rhs));
 | 
						|
        return name;
 | 
						|
    }
 | 
						|
    // `const` declaration (`var` in es5 mode)
 | 
						|
    const(nameOrPrefix, rhs, _constant) {
 | 
						|
        return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);
 | 
						|
    }
 | 
						|
    // `let` declaration with optional assignment (`var` in es5 mode)
 | 
						|
    let(nameOrPrefix, rhs, _constant) {
 | 
						|
        return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);
 | 
						|
    }
 | 
						|
    // `var` declaration with optional assignment
 | 
						|
    var(nameOrPrefix, rhs, _constant) {
 | 
						|
        return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);
 | 
						|
    }
 | 
						|
    // assignment code
 | 
						|
    assign(lhs, rhs, sideEffects) {
 | 
						|
        return this._leafNode(new Assign(lhs, rhs, sideEffects));
 | 
						|
    }
 | 
						|
    // `+=` code
 | 
						|
    add(lhs, rhs) {
 | 
						|
        return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));
 | 
						|
    }
 | 
						|
    // appends passed SafeExpr to code or executes Block
 | 
						|
    code(c) {
 | 
						|
        if (typeof c == "function")
 | 
						|
            c();
 | 
						|
        else if (c !== code_1.nil)
 | 
						|
            this._leafNode(new AnyCode(c));
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // returns code for object literal for the passed argument list of key-value pairs
 | 
						|
    object(...keyValues) {
 | 
						|
        const code = ["{"];
 | 
						|
        for (const [key, value] of keyValues) {
 | 
						|
            if (code.length > 1)
 | 
						|
                code.push(",");
 | 
						|
            code.push(key);
 | 
						|
            if (key !== value || this.opts.es5) {
 | 
						|
                code.push(":");
 | 
						|
                (0, code_1.addCodeArg)(code, value);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        code.push("}");
 | 
						|
        return new code_1._Code(code);
 | 
						|
    }
 | 
						|
    // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)
 | 
						|
    if(condition, thenBody, elseBody) {
 | 
						|
        this._blockNode(new If(condition));
 | 
						|
        if (thenBody && elseBody) {
 | 
						|
            this.code(thenBody).else().code(elseBody).endIf();
 | 
						|
        }
 | 
						|
        else if (thenBody) {
 | 
						|
            this.code(thenBody).endIf();
 | 
						|
        }
 | 
						|
        else if (elseBody) {
 | 
						|
            throw new Error('CodeGen: "else" body without "then" body');
 | 
						|
        }
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // `else if` clause - invalid without `if` or after `else` clauses
 | 
						|
    elseIf(condition) {
 | 
						|
        return this._elseNode(new If(condition));
 | 
						|
    }
 | 
						|
    // `else` clause - only valid after `if` or `else if` clauses
 | 
						|
    else() {
 | 
						|
        return this._elseNode(new Else());
 | 
						|
    }
 | 
						|
    // end `if` statement (needed if gen.if was used only with condition)
 | 
						|
    endIf() {
 | 
						|
        return this._endBlockNode(If, Else);
 | 
						|
    }
 | 
						|
    _for(node, forBody) {
 | 
						|
        this._blockNode(node);
 | 
						|
        if (forBody)
 | 
						|
            this.code(forBody).endFor();
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // a generic `for` clause (or statement if `forBody` is passed)
 | 
						|
    for(iteration, forBody) {
 | 
						|
        return this._for(new ForLoop(iteration), forBody);
 | 
						|
    }
 | 
						|
    // `for` statement for a range of values
 | 
						|
    forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {
 | 
						|
        const name = this._scope.toName(nameOrPrefix);
 | 
						|
        return this._for(new ForRange(varKind, name, from, to), () => forBody(name));
 | 
						|
    }
 | 
						|
    // `for-of` statement (in es5 mode replace with a normal for loop)
 | 
						|
    forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {
 | 
						|
        const name = this._scope.toName(nameOrPrefix);
 | 
						|
        if (this.opts.es5) {
 | 
						|
            const arr = iterable instanceof code_1.Name ? iterable : this.var("_arr", iterable);
 | 
						|
            return this.forRange("_i", 0, (0, code_1._) `${arr}.length`, (i) => {
 | 
						|
                this.var(name, (0, code_1._) `${arr}[${i}]`);
 | 
						|
                forBody(name);
 | 
						|
            });
 | 
						|
        }
 | 
						|
        return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name));
 | 
						|
    }
 | 
						|
    // `for-in` statement.
 | 
						|
    // With option `ownProperties` replaced with a `for-of` loop for object keys
 | 
						|
    forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {
 | 
						|
        if (this.opts.ownProperties) {
 | 
						|
            return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);
 | 
						|
        }
 | 
						|
        const name = this._scope.toName(nameOrPrefix);
 | 
						|
        return this._for(new ForIter("in", varKind, name, obj), () => forBody(name));
 | 
						|
    }
 | 
						|
    // end `for` loop
 | 
						|
    endFor() {
 | 
						|
        return this._endBlockNode(For);
 | 
						|
    }
 | 
						|
    // `label` statement
 | 
						|
    label(label) {
 | 
						|
        return this._leafNode(new Label(label));
 | 
						|
    }
 | 
						|
    // `break` statement
 | 
						|
    break(label) {
 | 
						|
        return this._leafNode(new Break(label));
 | 
						|
    }
 | 
						|
    // `return` statement
 | 
						|
    return(value) {
 | 
						|
        const node = new Return();
 | 
						|
        this._blockNode(node);
 | 
						|
        this.code(value);
 | 
						|
        if (node.nodes.length !== 1)
 | 
						|
            throw new Error('CodeGen: "return" should have one node');
 | 
						|
        return this._endBlockNode(Return);
 | 
						|
    }
 | 
						|
    // `try` statement
 | 
						|
    try(tryBody, catchCode, finallyCode) {
 | 
						|
        if (!catchCode && !finallyCode)
 | 
						|
            throw new Error('CodeGen: "try" without "catch" and "finally"');
 | 
						|
        const node = new Try();
 | 
						|
        this._blockNode(node);
 | 
						|
        this.code(tryBody);
 | 
						|
        if (catchCode) {
 | 
						|
            const error = this.name("e");
 | 
						|
            this._currNode = node.catch = new Catch(error);
 | 
						|
            catchCode(error);
 | 
						|
        }
 | 
						|
        if (finallyCode) {
 | 
						|
            this._currNode = node.finally = new Finally();
 | 
						|
            this.code(finallyCode);
 | 
						|
        }
 | 
						|
        return this._endBlockNode(Catch, Finally);
 | 
						|
    }
 | 
						|
    // `throw` statement
 | 
						|
    throw(error) {
 | 
						|
        return this._leafNode(new Throw(error));
 | 
						|
    }
 | 
						|
    // start self-balancing block
 | 
						|
    block(body, nodeCount) {
 | 
						|
        this._blockStarts.push(this._nodes.length);
 | 
						|
        if (body)
 | 
						|
            this.code(body).endBlock(nodeCount);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // end the current self-balancing block
 | 
						|
    endBlock(nodeCount) {
 | 
						|
        const len = this._blockStarts.pop();
 | 
						|
        if (len === undefined)
 | 
						|
            throw new Error("CodeGen: not in self-balancing block");
 | 
						|
        const toClose = this._nodes.length - len;
 | 
						|
        if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {
 | 
						|
            throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);
 | 
						|
        }
 | 
						|
        this._nodes.length = len;
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // `function` heading (or definition if funcBody is passed)
 | 
						|
    func(name, args = code_1.nil, async, funcBody) {
 | 
						|
        this._blockNode(new Func(name, args, async));
 | 
						|
        if (funcBody)
 | 
						|
            this.code(funcBody).endFunc();
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // end function definition
 | 
						|
    endFunc() {
 | 
						|
        return this._endBlockNode(Func);
 | 
						|
    }
 | 
						|
    optimize(n = 1) {
 | 
						|
        while (n-- > 0) {
 | 
						|
            this._root.optimizeNodes();
 | 
						|
            this._root.optimizeNames(this._root.names, this._constants);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    _leafNode(node) {
 | 
						|
        this._currNode.nodes.push(node);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    _blockNode(node) {
 | 
						|
        this._currNode.nodes.push(node);
 | 
						|
        this._nodes.push(node);
 | 
						|
    }
 | 
						|
    _endBlockNode(N1, N2) {
 | 
						|
        const n = this._currNode;
 | 
						|
        if (n instanceof N1 || (N2 && n instanceof N2)) {
 | 
						|
            this._nodes.pop();
 | 
						|
            return this;
 | 
						|
        }
 | 
						|
        throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`);
 | 
						|
    }
 | 
						|
    _elseNode(node) {
 | 
						|
        const n = this._currNode;
 | 
						|
        if (!(n instanceof If)) {
 | 
						|
            throw new Error('CodeGen: "else" without "if"');
 | 
						|
        }
 | 
						|
        this._currNode = n.else = node;
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    get _root() {
 | 
						|
        return this._nodes[0];
 | 
						|
    }
 | 
						|
    get _currNode() {
 | 
						|
        const ns = this._nodes;
 | 
						|
        return ns[ns.length - 1];
 | 
						|
    }
 | 
						|
    set _currNode(node) {
 | 
						|
        const ns = this._nodes;
 | 
						|
        ns[ns.length - 1] = node;
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.CodeGen = CodeGen;
 | 
						|
function addNames(names, from) {
 | 
						|
    for (const n in from)
 | 
						|
        names[n] = (names[n] || 0) + (from[n] || 0);
 | 
						|
    return names;
 | 
						|
}
 | 
						|
function addExprNames(names, from) {
 | 
						|
    return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;
 | 
						|
}
 | 
						|
function optimizeExpr(expr, names, constants) {
 | 
						|
    if (expr instanceof code_1.Name)
 | 
						|
        return replaceName(expr);
 | 
						|
    if (!canOptimize(expr))
 | 
						|
        return expr;
 | 
						|
    return new code_1._Code(expr._items.reduce((items, c) => {
 | 
						|
        if (c instanceof code_1.Name)
 | 
						|
            c = replaceName(c);
 | 
						|
        if (c instanceof code_1._Code)
 | 
						|
            items.push(...c._items);
 | 
						|
        else
 | 
						|
            items.push(c);
 | 
						|
        return items;
 | 
						|
    }, []));
 | 
						|
    function replaceName(n) {
 | 
						|
        const c = constants[n.str];
 | 
						|
        if (c === undefined || names[n.str] !== 1)
 | 
						|
            return n;
 | 
						|
        delete names[n.str];
 | 
						|
        return c;
 | 
						|
    }
 | 
						|
    function canOptimize(e) {
 | 
						|
        return (e instanceof code_1._Code &&
 | 
						|
            e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));
 | 
						|
    }
 | 
						|
}
 | 
						|
function subtractNames(names, from) {
 | 
						|
    for (const n in from)
 | 
						|
        names[n] = (names[n] || 0) - (from[n] || 0);
 | 
						|
}
 | 
						|
function not(x) {
 | 
						|
    return typeof x == "boolean" || typeof x == "number" || x === null ? !x : (0, code_1._) `!${par(x)}`;
 | 
						|
}
 | 
						|
exports.not = not;
 | 
						|
const andCode = mappend(exports.operators.AND);
 | 
						|
// boolean AND (&&) expression with the passed arguments
 | 
						|
function and(...args) {
 | 
						|
    return args.reduce(andCode);
 | 
						|
}
 | 
						|
exports.and = and;
 | 
						|
const orCode = mappend(exports.operators.OR);
 | 
						|
// boolean OR (||) expression with the passed arguments
 | 
						|
function or(...args) {
 | 
						|
    return args.reduce(orCode);
 | 
						|
}
 | 
						|
exports.or = or;
 | 
						|
function mappend(op) {
 | 
						|
    return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);
 | 
						|
}
 | 
						|
function par(x) {
 | 
						|
    return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;
 | 
						|
}
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 99131:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;
 | 
						|
const code_1 = __webpack_require__(28115);
 | 
						|
class ValueError extends Error {
 | 
						|
    constructor(name) {
 | 
						|
        super(`CodeGen: "code" for ${name} not defined`);
 | 
						|
        this.value = name.value;
 | 
						|
    }
 | 
						|
}
 | 
						|
var UsedValueState;
 | 
						|
(function (UsedValueState) {
 | 
						|
    UsedValueState[UsedValueState["Started"] = 0] = "Started";
 | 
						|
    UsedValueState[UsedValueState["Completed"] = 1] = "Completed";
 | 
						|
})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));
 | 
						|
exports.varKinds = {
 | 
						|
    const: new code_1.Name("const"),
 | 
						|
    let: new code_1.Name("let"),
 | 
						|
    var: new code_1.Name("var"),
 | 
						|
};
 | 
						|
class Scope {
 | 
						|
    constructor({ prefixes, parent } = {}) {
 | 
						|
        this._names = {};
 | 
						|
        this._prefixes = prefixes;
 | 
						|
        this._parent = parent;
 | 
						|
    }
 | 
						|
    toName(nameOrPrefix) {
 | 
						|
        return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);
 | 
						|
    }
 | 
						|
    name(prefix) {
 | 
						|
        return new code_1.Name(this._newName(prefix));
 | 
						|
    }
 | 
						|
    _newName(prefix) {
 | 
						|
        const ng = this._names[prefix] || this._nameGroup(prefix);
 | 
						|
        return `${prefix}${ng.index++}`;
 | 
						|
    }
 | 
						|
    _nameGroup(prefix) {
 | 
						|
        var _a, _b;
 | 
						|
        if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {
 | 
						|
            throw new Error(`CodeGen: prefix "${prefix}" is not allowed in this scope`);
 | 
						|
        }
 | 
						|
        return (this._names[prefix] = { prefix, index: 0 });
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.Scope = Scope;
 | 
						|
class ValueScopeName extends code_1.Name {
 | 
						|
    constructor(prefix, nameStr) {
 | 
						|
        super(nameStr);
 | 
						|
        this.prefix = prefix;
 | 
						|
    }
 | 
						|
    setValue(value, { property, itemIndex }) {
 | 
						|
        this.value = value;
 | 
						|
        this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.ValueScopeName = ValueScopeName;
 | 
						|
const line = (0, code_1._) `\n`;
 | 
						|
class ValueScope extends Scope {
 | 
						|
    constructor(opts) {
 | 
						|
        super(opts);
 | 
						|
        this._values = {};
 | 
						|
        this._scope = opts.scope;
 | 
						|
        this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };
 | 
						|
    }
 | 
						|
    get() {
 | 
						|
        return this._scope;
 | 
						|
    }
 | 
						|
    name(prefix) {
 | 
						|
        return new ValueScopeName(prefix, this._newName(prefix));
 | 
						|
    }
 | 
						|
    value(nameOrPrefix, value) {
 | 
						|
        var _a;
 | 
						|
        if (value.ref === undefined)
 | 
						|
            throw new Error("CodeGen: ref must be passed in value");
 | 
						|
        const name = this.toName(nameOrPrefix);
 | 
						|
        const { prefix } = name;
 | 
						|
        const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;
 | 
						|
        let vs = this._values[prefix];
 | 
						|
        if (vs) {
 | 
						|
            const _name = vs.get(valueKey);
 | 
						|
            if (_name)
 | 
						|
                return _name;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            vs = this._values[prefix] = new Map();
 | 
						|
        }
 | 
						|
        vs.set(valueKey, name);
 | 
						|
        const s = this._scope[prefix] || (this._scope[prefix] = []);
 | 
						|
        const itemIndex = s.length;
 | 
						|
        s[itemIndex] = value.ref;
 | 
						|
        name.setValue(value, { property: prefix, itemIndex });
 | 
						|
        return name;
 | 
						|
    }
 | 
						|
    getValue(prefix, keyOrRef) {
 | 
						|
        const vs = this._values[prefix];
 | 
						|
        if (!vs)
 | 
						|
            return;
 | 
						|
        return vs.get(keyOrRef);
 | 
						|
    }
 | 
						|
    scopeRefs(scopeName, values = this._values) {
 | 
						|
        return this._reduceValues(values, (name) => {
 | 
						|
            if (name.scopePath === undefined)
 | 
						|
                throw new Error(`CodeGen: name "${name}" has no value`);
 | 
						|
            return (0, code_1._) `${scopeName}${name.scopePath}`;
 | 
						|
        });
 | 
						|
    }
 | 
						|
    scopeCode(values = this._values, usedValues, getCode) {
 | 
						|
        return this._reduceValues(values, (name) => {
 | 
						|
            if (name.value === undefined)
 | 
						|
                throw new Error(`CodeGen: name "${name}" has no value`);
 | 
						|
            return name.value.code;
 | 
						|
        }, usedValues, getCode);
 | 
						|
    }
 | 
						|
    _reduceValues(values, valueCode, usedValues = {}, getCode) {
 | 
						|
        let code = code_1.nil;
 | 
						|
        for (const prefix in values) {
 | 
						|
            const vs = values[prefix];
 | 
						|
            if (!vs)
 | 
						|
                continue;
 | 
						|
            const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());
 | 
						|
            vs.forEach((name) => {
 | 
						|
                if (nameSet.has(name))
 | 
						|
                    return;
 | 
						|
                nameSet.set(name, UsedValueState.Started);
 | 
						|
                let c = valueCode(name);
 | 
						|
                if (c) {
 | 
						|
                    const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;
 | 
						|
                    code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;
 | 
						|
                }
 | 
						|
                else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {
 | 
						|
                    code = (0, code_1._) `${code}${c}${this.opts._n}`;
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    throw new ValueError(name);
 | 
						|
                }
 | 
						|
                nameSet.set(name, UsedValueState.Completed);
 | 
						|
            });
 | 
						|
        }
 | 
						|
        return code;
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.ValueScope = ValueScope;
 | 
						|
//# sourceMappingURL=scope.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 82263:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
exports.keywordError = {
 | 
						|
    message: ({ keyword }) => (0, codegen_1.str) `must pass "${keyword}" keyword validation`,
 | 
						|
};
 | 
						|
exports.keyword$DataError = {
 | 
						|
    message: ({ keyword, schemaType }) => schemaType
 | 
						|
        ? (0, codegen_1.str) `"${keyword}" keyword must be ${schemaType} ($data)`
 | 
						|
        : (0, codegen_1.str) `"${keyword}" keyword is invalid ($data)`,
 | 
						|
};
 | 
						|
function reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {
 | 
						|
    const { it } = cxt;
 | 
						|
    const { gen, compositeRule, allErrors } = it;
 | 
						|
    const errObj = errorObjectCode(cxt, error, errorPaths);
 | 
						|
    if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {
 | 
						|
        addError(gen, errObj);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        returnErrors(it, (0, codegen_1._) `[${errObj}]`);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.reportError = reportError;
 | 
						|
function reportExtraError(cxt, error = exports.keywordError, errorPaths) {
 | 
						|
    const { it } = cxt;
 | 
						|
    const { gen, compositeRule, allErrors } = it;
 | 
						|
    const errObj = errorObjectCode(cxt, error, errorPaths);
 | 
						|
    addError(gen, errObj);
 | 
						|
    if (!(compositeRule || allErrors)) {
 | 
						|
        returnErrors(it, names_1.default.vErrors);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.reportExtraError = reportExtraError;
 | 
						|
function resetErrorsCount(gen, errsCount) {
 | 
						|
    gen.assign(names_1.default.errors, errsCount);
 | 
						|
    gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));
 | 
						|
}
 | 
						|
exports.resetErrorsCount = resetErrorsCount;
 | 
						|
function extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {
 | 
						|
    /* istanbul ignore if */
 | 
						|
    if (errsCount === undefined)
 | 
						|
        throw new Error("ajv implementation error");
 | 
						|
    const err = gen.name("err");
 | 
						|
    gen.forRange("i", errsCount, names_1.default.errors, (i) => {
 | 
						|
        gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);
 | 
						|
        gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));
 | 
						|
        gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);
 | 
						|
        if (it.opts.verbose) {
 | 
						|
            gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);
 | 
						|
            gen.assign((0, codegen_1._) `${err}.data`, data);
 | 
						|
        }
 | 
						|
    });
 | 
						|
}
 | 
						|
exports.extendErrors = extendErrors;
 | 
						|
function addError(gen, errObj) {
 | 
						|
    const err = gen.const("err", errObj);
 | 
						|
    gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);
 | 
						|
    gen.code((0, codegen_1._) `${names_1.default.errors}++`);
 | 
						|
}
 | 
						|
function returnErrors(it, errs) {
 | 
						|
    const { gen, validateName, schemaEnv } = it;
 | 
						|
    if (schemaEnv.$async) {
 | 
						|
        gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        gen.assign((0, codegen_1._) `${validateName}.errors`, errs);
 | 
						|
        gen.return(false);
 | 
						|
    }
 | 
						|
}
 | 
						|
const E = {
 | 
						|
    keyword: new codegen_1.Name("keyword"),
 | 
						|
    schemaPath: new codegen_1.Name("schemaPath"), // also used in JTD errors
 | 
						|
    params: new codegen_1.Name("params"),
 | 
						|
    propertyName: new codegen_1.Name("propertyName"),
 | 
						|
    message: new codegen_1.Name("message"),
 | 
						|
    schema: new codegen_1.Name("schema"),
 | 
						|
    parentSchema: new codegen_1.Name("parentSchema"),
 | 
						|
};
 | 
						|
function errorObjectCode(cxt, error, errorPaths) {
 | 
						|
    const { createErrors } = cxt.it;
 | 
						|
    if (createErrors === false)
 | 
						|
        return (0, codegen_1._) `{}`;
 | 
						|
    return errorObject(cxt, error, errorPaths);
 | 
						|
}
 | 
						|
function errorObject(cxt, error, errorPaths = {}) {
 | 
						|
    const { gen, it } = cxt;
 | 
						|
    const keyValues = [
 | 
						|
        errorInstancePath(it, errorPaths),
 | 
						|
        errorSchemaPath(cxt, errorPaths),
 | 
						|
    ];
 | 
						|
    extraErrorProps(cxt, error, keyValues);
 | 
						|
    return gen.object(...keyValues);
 | 
						|
}
 | 
						|
function errorInstancePath({ errorPath }, { instancePath }) {
 | 
						|
    const instPath = instancePath
 | 
						|
        ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`
 | 
						|
        : errorPath;
 | 
						|
    return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];
 | 
						|
}
 | 
						|
function errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {
 | 
						|
    let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;
 | 
						|
    if (schemaPath) {
 | 
						|
        schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;
 | 
						|
    }
 | 
						|
    return [E.schemaPath, schPath];
 | 
						|
}
 | 
						|
function extraErrorProps(cxt, { params, message }, keyValues) {
 | 
						|
    const { keyword, data, schemaValue, it } = cxt;
 | 
						|
    const { opts, propertyName, topSchemaRef, schemaPath } = it;
 | 
						|
    keyValues.push([E.keyword, keyword], [E.params, typeof params == "function" ? params(cxt) : params || (0, codegen_1._) `{}`]);
 | 
						|
    if (opts.messages) {
 | 
						|
        keyValues.push([E.message, typeof message == "function" ? message(cxt) : message]);
 | 
						|
    }
 | 
						|
    if (opts.verbose) {
 | 
						|
        keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);
 | 
						|
    }
 | 
						|
    if (propertyName)
 | 
						|
        keyValues.push([E.propertyName, propertyName]);
 | 
						|
}
 | 
						|
//# sourceMappingURL=errors.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 50052:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const validation_error_1 = __webpack_require__(17766);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const resolve_1 = __webpack_require__(33761);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const validate_1 = __webpack_require__(40764);
 | 
						|
class SchemaEnv {
 | 
						|
    constructor(env) {
 | 
						|
        var _a;
 | 
						|
        this.refs = {};
 | 
						|
        this.dynamicAnchors = {};
 | 
						|
        let schema;
 | 
						|
        if (typeof env.schema == "object")
 | 
						|
            schema = env.schema;
 | 
						|
        this.schema = env.schema;
 | 
						|
        this.schemaId = env.schemaId;
 | 
						|
        this.root = env.root || this;
 | 
						|
        this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || "$id"]);
 | 
						|
        this.schemaPath = env.schemaPath;
 | 
						|
        this.localRefs = env.localRefs;
 | 
						|
        this.meta = env.meta;
 | 
						|
        this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;
 | 
						|
        this.refs = {};
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.SchemaEnv = SchemaEnv;
 | 
						|
// let codeSize = 0
 | 
						|
// let nodeCount = 0
 | 
						|
// Compiles schema in SchemaEnv
 | 
						|
function compileSchema(sch) {
 | 
						|
    // TODO refactor - remove compilations
 | 
						|
    const _sch = getCompilingSchema.call(this, sch);
 | 
						|
    if (_sch)
 | 
						|
        return _sch;
 | 
						|
    const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails
 | 
						|
    const { es5, lines } = this.opts.code;
 | 
						|
    const { ownProperties } = this.opts;
 | 
						|
    const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });
 | 
						|
    let _ValidationError;
 | 
						|
    if (sch.$async) {
 | 
						|
        _ValidationError = gen.scopeValue("Error", {
 | 
						|
            ref: validation_error_1.default,
 | 
						|
            code: (0, codegen_1._) `require("ajv/dist/runtime/validation_error").default`,
 | 
						|
        });
 | 
						|
    }
 | 
						|
    const validateName = gen.scopeName("validate");
 | 
						|
    sch.validateName = validateName;
 | 
						|
    const schemaCxt = {
 | 
						|
        gen,
 | 
						|
        allErrors: this.opts.allErrors,
 | 
						|
        data: names_1.default.data,
 | 
						|
        parentData: names_1.default.parentData,
 | 
						|
        parentDataProperty: names_1.default.parentDataProperty,
 | 
						|
        dataNames: [names_1.default.data],
 | 
						|
        dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?
 | 
						|
        dataLevel: 0,
 | 
						|
        dataTypes: [],
 | 
						|
        definedProperties: new Set(),
 | 
						|
        topSchemaRef: gen.scopeValue("schema", this.opts.code.source === true
 | 
						|
            ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }
 | 
						|
            : { ref: sch.schema }),
 | 
						|
        validateName,
 | 
						|
        ValidationError: _ValidationError,
 | 
						|
        schema: sch.schema,
 | 
						|
        schemaEnv: sch,
 | 
						|
        rootId,
 | 
						|
        baseId: sch.baseId || rootId,
 | 
						|
        schemaPath: codegen_1.nil,
 | 
						|
        errSchemaPath: sch.schemaPath || (this.opts.jtd ? "" : "#"),
 | 
						|
        errorPath: (0, codegen_1._) `""`,
 | 
						|
        opts: this.opts,
 | 
						|
        self: this,
 | 
						|
    };
 | 
						|
    let sourceCode;
 | 
						|
    try {
 | 
						|
        this._compilations.add(sch);
 | 
						|
        (0, validate_1.validateFunctionCode)(schemaCxt);
 | 
						|
        gen.optimize(this.opts.code.optimize);
 | 
						|
        // gen.optimize(1)
 | 
						|
        const validateCode = gen.toString();
 | 
						|
        sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;
 | 
						|
        // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))
 | 
						|
        if (this.opts.code.process)
 | 
						|
            sourceCode = this.opts.code.process(sourceCode, sch);
 | 
						|
        // console.log("\n\n\n *** \n", sourceCode)
 | 
						|
        const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);
 | 
						|
        const validate = makeValidate(this, this.scope.get());
 | 
						|
        this.scope.value(validateName, { ref: validate });
 | 
						|
        validate.errors = null;
 | 
						|
        validate.schema = sch.schema;
 | 
						|
        validate.schemaEnv = sch;
 | 
						|
        if (sch.$async)
 | 
						|
            validate.$async = true;
 | 
						|
        if (this.opts.code.source === true) {
 | 
						|
            validate.source = { validateName, validateCode, scopeValues: gen._values };
 | 
						|
        }
 | 
						|
        if (this.opts.unevaluated) {
 | 
						|
            const { props, items } = schemaCxt;
 | 
						|
            validate.evaluated = {
 | 
						|
                props: props instanceof codegen_1.Name ? undefined : props,
 | 
						|
                items: items instanceof codegen_1.Name ? undefined : items,
 | 
						|
                dynamicProps: props instanceof codegen_1.Name,
 | 
						|
                dynamicItems: items instanceof codegen_1.Name,
 | 
						|
            };
 | 
						|
            if (validate.source)
 | 
						|
                validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);
 | 
						|
        }
 | 
						|
        sch.validate = validate;
 | 
						|
        return sch;
 | 
						|
    }
 | 
						|
    catch (e) {
 | 
						|
        delete sch.validate;
 | 
						|
        delete sch.validateName;
 | 
						|
        if (sourceCode)
 | 
						|
            this.logger.error("Error compiling schema, function code:", sourceCode);
 | 
						|
        // console.log("\n\n\n *** \n", sourceCode, this.opts)
 | 
						|
        throw e;
 | 
						|
    }
 | 
						|
    finally {
 | 
						|
        this._compilations.delete(sch);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.compileSchema = compileSchema;
 | 
						|
function resolveRef(root, baseId, ref) {
 | 
						|
    var _a;
 | 
						|
    ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);
 | 
						|
    const schOrFunc = root.refs[ref];
 | 
						|
    if (schOrFunc)
 | 
						|
        return schOrFunc;
 | 
						|
    let _sch = resolve.call(this, root, ref);
 | 
						|
    if (_sch === undefined) {
 | 
						|
        const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv
 | 
						|
        const { schemaId } = this.opts;
 | 
						|
        if (schema)
 | 
						|
            _sch = new SchemaEnv({ schema, schemaId, root, baseId });
 | 
						|
    }
 | 
						|
    if (_sch === undefined)
 | 
						|
        return;
 | 
						|
    return (root.refs[ref] = inlineOrCompile.call(this, _sch));
 | 
						|
}
 | 
						|
exports.resolveRef = resolveRef;
 | 
						|
function inlineOrCompile(sch) {
 | 
						|
    if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))
 | 
						|
        return sch.schema;
 | 
						|
    return sch.validate ? sch : compileSchema.call(this, sch);
 | 
						|
}
 | 
						|
// Index of schema compilation in the currently compiled list
 | 
						|
function getCompilingSchema(schEnv) {
 | 
						|
    for (const sch of this._compilations) {
 | 
						|
        if (sameSchemaEnv(sch, schEnv))
 | 
						|
            return sch;
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.getCompilingSchema = getCompilingSchema;
 | 
						|
function sameSchemaEnv(s1, s2) {
 | 
						|
    return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
 | 
						|
}
 | 
						|
// resolve and compile the references ($ref)
 | 
						|
// TODO returns AnySchemaObject (if the schema can be inlined) or validation function
 | 
						|
function resolve(root, // information about the root schema for the current schema
 | 
						|
ref // reference to resolve
 | 
						|
) {
 | 
						|
    let sch;
 | 
						|
    while (typeof (sch = this.refs[ref]) == "string")
 | 
						|
        ref = sch;
 | 
						|
    return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);
 | 
						|
}
 | 
						|
// Resolve schema, its root and baseId
 | 
						|
function resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it
 | 
						|
ref // reference to resolve
 | 
						|
) {
 | 
						|
    const p = this.opts.uriResolver.parse(ref);
 | 
						|
    const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);
 | 
						|
    let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);
 | 
						|
    // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests
 | 
						|
    if (Object.keys(root.schema).length > 0 && refPath === baseId) {
 | 
						|
        return getJsonPointer.call(this, p, root);
 | 
						|
    }
 | 
						|
    const id = (0, resolve_1.normalizeId)(refPath);
 | 
						|
    const schOrRef = this.refs[id] || this.schemas[id];
 | 
						|
    if (typeof schOrRef == "string") {
 | 
						|
        const sch = resolveSchema.call(this, root, schOrRef);
 | 
						|
        if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== "object")
 | 
						|
            return;
 | 
						|
        return getJsonPointer.call(this, p, sch);
 | 
						|
    }
 | 
						|
    if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== "object")
 | 
						|
        return;
 | 
						|
    if (!schOrRef.validate)
 | 
						|
        compileSchema.call(this, schOrRef);
 | 
						|
    if (id === (0, resolve_1.normalizeId)(ref)) {
 | 
						|
        const { schema } = schOrRef;
 | 
						|
        const { schemaId } = this.opts;
 | 
						|
        const schId = schema[schemaId];
 | 
						|
        if (schId)
 | 
						|
            baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
 | 
						|
        return new SchemaEnv({ schema, schemaId, root, baseId });
 | 
						|
    }
 | 
						|
    return getJsonPointer.call(this, p, schOrRef);
 | 
						|
}
 | 
						|
exports.resolveSchema = resolveSchema;
 | 
						|
const PREVENT_SCOPE_CHANGE = new Set([
 | 
						|
    "properties",
 | 
						|
    "patternProperties",
 | 
						|
    "enum",
 | 
						|
    "dependencies",
 | 
						|
    "definitions",
 | 
						|
]);
 | 
						|
function getJsonPointer(parsedRef, { baseId, schema, root }) {
 | 
						|
    var _a;
 | 
						|
    if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== "/")
 | 
						|
        return;
 | 
						|
    for (const part of parsedRef.fragment.slice(1).split("/")) {
 | 
						|
        if (typeof schema === "boolean")
 | 
						|
            return;
 | 
						|
        const partSchema = schema[(0, util_1.unescapeFragment)(part)];
 | 
						|
        if (partSchema === undefined)
 | 
						|
            return;
 | 
						|
        schema = partSchema;
 | 
						|
        // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?
 | 
						|
        const schId = typeof schema === "object" && schema[this.opts.schemaId];
 | 
						|
        if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {
 | 
						|
            baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    let env;
 | 
						|
    if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {
 | 
						|
        const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);
 | 
						|
        env = resolveSchema.call(this, root, $ref);
 | 
						|
    }
 | 
						|
    // even though resolution failed we need to return SchemaEnv to throw exception
 | 
						|
    // so that compileAsync loads missing schema.
 | 
						|
    const { schemaId } = this.opts;
 | 
						|
    env = env || new SchemaEnv({ schema, schemaId, root, baseId });
 | 
						|
    if (env.schema !== env.root.schema)
 | 
						|
        return env;
 | 
						|
    return undefined;
 | 
						|
}
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 3948:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const names = {
 | 
						|
    // validation function arguments
 | 
						|
    data: new codegen_1.Name("data"), // data passed to validation function
 | 
						|
    // args passed from referencing schema
 | 
						|
    valCxt: new codegen_1.Name("valCxt"), // validation/data context - should not be used directly, it is destructured to the names below
 | 
						|
    instancePath: new codegen_1.Name("instancePath"),
 | 
						|
    parentData: new codegen_1.Name("parentData"),
 | 
						|
    parentDataProperty: new codegen_1.Name("parentDataProperty"),
 | 
						|
    rootData: new codegen_1.Name("rootData"), // root data - same as the data passed to the first/top validation function
 | 
						|
    dynamicAnchors: new codegen_1.Name("dynamicAnchors"), // used to support recursiveRef and dynamicRef
 | 
						|
    // function scoped variables
 | 
						|
    vErrors: new codegen_1.Name("vErrors"), // null or array of validation errors
 | 
						|
    errors: new codegen_1.Name("errors"), // counter of validation errors
 | 
						|
    this: new codegen_1.Name("this"),
 | 
						|
    // "globals"
 | 
						|
    self: new codegen_1.Name("self"),
 | 
						|
    scope: new codegen_1.Name("scope"),
 | 
						|
    // JTD serialize/parse name for JSON string and position
 | 
						|
    json: new codegen_1.Name("json"),
 | 
						|
    jsonPos: new codegen_1.Name("jsonPos"),
 | 
						|
    jsonLen: new codegen_1.Name("jsonLen"),
 | 
						|
    jsonPart: new codegen_1.Name("jsonPart"),
 | 
						|
};
 | 
						|
exports["default"] = names;
 | 
						|
//# sourceMappingURL=names.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 26317:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const resolve_1 = __webpack_require__(33761);
 | 
						|
class MissingRefError extends Error {
 | 
						|
    constructor(resolver, baseId, ref, msg) {
 | 
						|
        super(msg || `can't resolve reference ${ref} from id ${baseId}`);
 | 
						|
        this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);
 | 
						|
        this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));
 | 
						|
    }
 | 
						|
}
 | 
						|
exports["default"] = MissingRefError;
 | 
						|
//# sourceMappingURL=ref_error.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 33761:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const equal = __webpack_require__(66471);
 | 
						|
const traverse = __webpack_require__(25127);
 | 
						|
// TODO refactor to use keyword definitions
 | 
						|
const SIMPLE_INLINED = new Set([
 | 
						|
    "type",
 | 
						|
    "format",
 | 
						|
    "pattern",
 | 
						|
    "maxLength",
 | 
						|
    "minLength",
 | 
						|
    "maxProperties",
 | 
						|
    "minProperties",
 | 
						|
    "maxItems",
 | 
						|
    "minItems",
 | 
						|
    "maximum",
 | 
						|
    "minimum",
 | 
						|
    "uniqueItems",
 | 
						|
    "multipleOf",
 | 
						|
    "required",
 | 
						|
    "enum",
 | 
						|
    "const",
 | 
						|
]);
 | 
						|
function inlineRef(schema, limit = true) {
 | 
						|
    if (typeof schema == "boolean")
 | 
						|
        return true;
 | 
						|
    if (limit === true)
 | 
						|
        return !hasRef(schema);
 | 
						|
    if (!limit)
 | 
						|
        return false;
 | 
						|
    return countKeys(schema) <= limit;
 | 
						|
}
 | 
						|
exports.inlineRef = inlineRef;
 | 
						|
const REF_KEYWORDS = new Set([
 | 
						|
    "$ref",
 | 
						|
    "$recursiveRef",
 | 
						|
    "$recursiveAnchor",
 | 
						|
    "$dynamicRef",
 | 
						|
    "$dynamicAnchor",
 | 
						|
]);
 | 
						|
function hasRef(schema) {
 | 
						|
    for (const key in schema) {
 | 
						|
        if (REF_KEYWORDS.has(key))
 | 
						|
            return true;
 | 
						|
        const sch = schema[key];
 | 
						|
        if (Array.isArray(sch) && sch.some(hasRef))
 | 
						|
            return true;
 | 
						|
        if (typeof sch == "object" && hasRef(sch))
 | 
						|
            return true;
 | 
						|
    }
 | 
						|
    return false;
 | 
						|
}
 | 
						|
function countKeys(schema) {
 | 
						|
    let count = 0;
 | 
						|
    for (const key in schema) {
 | 
						|
        if (key === "$ref")
 | 
						|
            return Infinity;
 | 
						|
        count++;
 | 
						|
        if (SIMPLE_INLINED.has(key))
 | 
						|
            continue;
 | 
						|
        if (typeof schema[key] == "object") {
 | 
						|
            (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));
 | 
						|
        }
 | 
						|
        if (count === Infinity)
 | 
						|
            return Infinity;
 | 
						|
    }
 | 
						|
    return count;
 | 
						|
}
 | 
						|
function getFullPath(resolver, id = "", normalize) {
 | 
						|
    if (normalize !== false)
 | 
						|
        id = normalizeId(id);
 | 
						|
    const p = resolver.parse(id);
 | 
						|
    return _getFullPath(resolver, p);
 | 
						|
}
 | 
						|
exports.getFullPath = getFullPath;
 | 
						|
function _getFullPath(resolver, p) {
 | 
						|
    const serialized = resolver.serialize(p);
 | 
						|
    return serialized.split("#")[0] + "#";
 | 
						|
}
 | 
						|
exports._getFullPath = _getFullPath;
 | 
						|
const TRAILING_SLASH_HASH = /#\/?$/;
 | 
						|
function normalizeId(id) {
 | 
						|
    return id ? id.replace(TRAILING_SLASH_HASH, "") : "";
 | 
						|
}
 | 
						|
exports.normalizeId = normalizeId;
 | 
						|
function resolveUrl(resolver, baseId, id) {
 | 
						|
    id = normalizeId(id);
 | 
						|
    return resolver.resolve(baseId, id);
 | 
						|
}
 | 
						|
exports.resolveUrl = resolveUrl;
 | 
						|
const ANCHOR = /^[a-z_][-a-z0-9._]*$/i;
 | 
						|
function getSchemaRefs(schema, baseId) {
 | 
						|
    if (typeof schema == "boolean")
 | 
						|
        return {};
 | 
						|
    const { schemaId, uriResolver } = this.opts;
 | 
						|
    const schId = normalizeId(schema[schemaId] || baseId);
 | 
						|
    const baseIds = { "": schId };
 | 
						|
    const pathPrefix = getFullPath(uriResolver, schId, false);
 | 
						|
    const localRefs = {};
 | 
						|
    const schemaRefs = new Set();
 | 
						|
    traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {
 | 
						|
        if (parentJsonPtr === undefined)
 | 
						|
            return;
 | 
						|
        const fullPath = pathPrefix + jsonPtr;
 | 
						|
        let innerBaseId = baseIds[parentJsonPtr];
 | 
						|
        if (typeof sch[schemaId] == "string")
 | 
						|
            innerBaseId = addRef.call(this, sch[schemaId]);
 | 
						|
        addAnchor.call(this, sch.$anchor);
 | 
						|
        addAnchor.call(this, sch.$dynamicAnchor);
 | 
						|
        baseIds[jsonPtr] = innerBaseId;
 | 
						|
        function addRef(ref) {
 | 
						|
            // eslint-disable-next-line @typescript-eslint/unbound-method
 | 
						|
            const _resolve = this.opts.uriResolver.resolve;
 | 
						|
            ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);
 | 
						|
            if (schemaRefs.has(ref))
 | 
						|
                throw ambiguos(ref);
 | 
						|
            schemaRefs.add(ref);
 | 
						|
            let schOrRef = this.refs[ref];
 | 
						|
            if (typeof schOrRef == "string")
 | 
						|
                schOrRef = this.refs[schOrRef];
 | 
						|
            if (typeof schOrRef == "object") {
 | 
						|
                checkAmbiguosRef(sch, schOrRef.schema, ref);
 | 
						|
            }
 | 
						|
            else if (ref !== normalizeId(fullPath)) {
 | 
						|
                if (ref[0] === "#") {
 | 
						|
                    checkAmbiguosRef(sch, localRefs[ref], ref);
 | 
						|
                    localRefs[ref] = sch;
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    this.refs[ref] = fullPath;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return ref;
 | 
						|
        }
 | 
						|
        function addAnchor(anchor) {
 | 
						|
            if (typeof anchor == "string") {
 | 
						|
                if (!ANCHOR.test(anchor))
 | 
						|
                    throw new Error(`invalid anchor "${anchor}"`);
 | 
						|
                addRef.call(this, `#${anchor}`);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    });
 | 
						|
    return localRefs;
 | 
						|
    function checkAmbiguosRef(sch1, sch2, ref) {
 | 
						|
        if (sch2 !== undefined && !equal(sch1, sch2))
 | 
						|
            throw ambiguos(ref);
 | 
						|
    }
 | 
						|
    function ambiguos(ref) {
 | 
						|
        return new Error(`reference "${ref}" resolves to more than one schema`);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.getSchemaRefs = getSchemaRefs;
 | 
						|
//# sourceMappingURL=resolve.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 24623:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.getRules = exports.isJSONType = void 0;
 | 
						|
const _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"];
 | 
						|
const jsonTypes = new Set(_jsonTypes);
 | 
						|
function isJSONType(x) {
 | 
						|
    return typeof x == "string" && jsonTypes.has(x);
 | 
						|
}
 | 
						|
exports.isJSONType = isJSONType;
 | 
						|
function getRules() {
 | 
						|
    const groups = {
 | 
						|
        number: { type: "number", rules: [] },
 | 
						|
        string: { type: "string", rules: [] },
 | 
						|
        array: { type: "array", rules: [] },
 | 
						|
        object: { type: "object", rules: [] },
 | 
						|
    };
 | 
						|
    return {
 | 
						|
        types: { ...groups, integer: true, boolean: true, null: true },
 | 
						|
        rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],
 | 
						|
        post: { rules: [] },
 | 
						|
        all: {},
 | 
						|
        keywords: {},
 | 
						|
    };
 | 
						|
}
 | 
						|
exports.getRules = getRules;
 | 
						|
//# sourceMappingURL=rules.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 20679:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const code_1 = __webpack_require__(28115);
 | 
						|
// TODO refactor to use Set
 | 
						|
function toHash(arr) {
 | 
						|
    const hash = {};
 | 
						|
    for (const item of arr)
 | 
						|
        hash[item] = true;
 | 
						|
    return hash;
 | 
						|
}
 | 
						|
exports.toHash = toHash;
 | 
						|
function alwaysValidSchema(it, schema) {
 | 
						|
    if (typeof schema == "boolean")
 | 
						|
        return schema;
 | 
						|
    if (Object.keys(schema).length === 0)
 | 
						|
        return true;
 | 
						|
    checkUnknownRules(it, schema);
 | 
						|
    return !schemaHasRules(schema, it.self.RULES.all);
 | 
						|
}
 | 
						|
exports.alwaysValidSchema = alwaysValidSchema;
 | 
						|
function checkUnknownRules(it, schema = it.schema) {
 | 
						|
    const { opts, self } = it;
 | 
						|
    if (!opts.strictSchema)
 | 
						|
        return;
 | 
						|
    if (typeof schema === "boolean")
 | 
						|
        return;
 | 
						|
    const rules = self.RULES.keywords;
 | 
						|
    for (const key in schema) {
 | 
						|
        if (!rules[key])
 | 
						|
            checkStrictMode(it, `unknown keyword: "${key}"`);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.checkUnknownRules = checkUnknownRules;
 | 
						|
function schemaHasRules(schema, rules) {
 | 
						|
    if (typeof schema == "boolean")
 | 
						|
        return !schema;
 | 
						|
    for (const key in schema)
 | 
						|
        if (rules[key])
 | 
						|
            return true;
 | 
						|
    return false;
 | 
						|
}
 | 
						|
exports.schemaHasRules = schemaHasRules;
 | 
						|
function schemaHasRulesButRef(schema, RULES) {
 | 
						|
    if (typeof schema == "boolean")
 | 
						|
        return !schema;
 | 
						|
    for (const key in schema)
 | 
						|
        if (key !== "$ref" && RULES.all[key])
 | 
						|
            return true;
 | 
						|
    return false;
 | 
						|
}
 | 
						|
exports.schemaHasRulesButRef = schemaHasRulesButRef;
 | 
						|
function schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {
 | 
						|
    if (!$data) {
 | 
						|
        if (typeof schema == "number" || typeof schema == "boolean")
 | 
						|
            return schema;
 | 
						|
        if (typeof schema == "string")
 | 
						|
            return (0, codegen_1._) `${schema}`;
 | 
						|
    }
 | 
						|
    return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;
 | 
						|
}
 | 
						|
exports.schemaRefOrVal = schemaRefOrVal;
 | 
						|
function unescapeFragment(str) {
 | 
						|
    return unescapeJsonPointer(decodeURIComponent(str));
 | 
						|
}
 | 
						|
exports.unescapeFragment = unescapeFragment;
 | 
						|
function escapeFragment(str) {
 | 
						|
    return encodeURIComponent(escapeJsonPointer(str));
 | 
						|
}
 | 
						|
exports.escapeFragment = escapeFragment;
 | 
						|
function escapeJsonPointer(str) {
 | 
						|
    if (typeof str == "number")
 | 
						|
        return `${str}`;
 | 
						|
    return str.replace(/~/g, "~0").replace(/\//g, "~1");
 | 
						|
}
 | 
						|
exports.escapeJsonPointer = escapeJsonPointer;
 | 
						|
function unescapeJsonPointer(str) {
 | 
						|
    return str.replace(/~1/g, "/").replace(/~0/g, "~");
 | 
						|
}
 | 
						|
exports.unescapeJsonPointer = unescapeJsonPointer;
 | 
						|
function eachItem(xs, f) {
 | 
						|
    if (Array.isArray(xs)) {
 | 
						|
        for (const x of xs)
 | 
						|
            f(x);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        f(xs);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.eachItem = eachItem;
 | 
						|
function makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {
 | 
						|
    return (gen, from, to, toName) => {
 | 
						|
        const res = to === undefined
 | 
						|
            ? from
 | 
						|
            : to instanceof codegen_1.Name
 | 
						|
                ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)
 | 
						|
                : from instanceof codegen_1.Name
 | 
						|
                    ? (mergeToName(gen, to, from), from)
 | 
						|
                    : mergeValues(from, to);
 | 
						|
        return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;
 | 
						|
    };
 | 
						|
}
 | 
						|
exports.mergeEvaluated = {
 | 
						|
    props: makeMergeEvaluated({
 | 
						|
        mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {
 | 
						|
            gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));
 | 
						|
        }),
 | 
						|
        mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {
 | 
						|
            if (from === true) {
 | 
						|
                gen.assign(to, true);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                gen.assign(to, (0, codegen_1._) `${to} || {}`);
 | 
						|
                setEvaluated(gen, to, from);
 | 
						|
            }
 | 
						|
        }),
 | 
						|
        mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),
 | 
						|
        resultToName: evaluatedPropsToName,
 | 
						|
    }),
 | 
						|
    items: makeMergeEvaluated({
 | 
						|
        mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),
 | 
						|
        mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),
 | 
						|
        mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),
 | 
						|
        resultToName: (gen, items) => gen.var("items", items),
 | 
						|
    }),
 | 
						|
};
 | 
						|
function evaluatedPropsToName(gen, ps) {
 | 
						|
    if (ps === true)
 | 
						|
        return gen.var("props", true);
 | 
						|
    const props = gen.var("props", (0, codegen_1._) `{}`);
 | 
						|
    if (ps !== undefined)
 | 
						|
        setEvaluated(gen, props, ps);
 | 
						|
    return props;
 | 
						|
}
 | 
						|
exports.evaluatedPropsToName = evaluatedPropsToName;
 | 
						|
function setEvaluated(gen, props, ps) {
 | 
						|
    Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));
 | 
						|
}
 | 
						|
exports.setEvaluated = setEvaluated;
 | 
						|
const snippets = {};
 | 
						|
function useFunc(gen, f) {
 | 
						|
    return gen.scopeValue("func", {
 | 
						|
        ref: f,
 | 
						|
        code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),
 | 
						|
    });
 | 
						|
}
 | 
						|
exports.useFunc = useFunc;
 | 
						|
var Type;
 | 
						|
(function (Type) {
 | 
						|
    Type[Type["Num"] = 0] = "Num";
 | 
						|
    Type[Type["Str"] = 1] = "Str";
 | 
						|
})(Type || (exports.Type = Type = {}));
 | 
						|
function getErrorPath(dataProp, dataPropType, jsPropertySyntax) {
 | 
						|
    // let path
 | 
						|
    if (dataProp instanceof codegen_1.Name) {
 | 
						|
        const isNumber = dataPropType === Type.Num;
 | 
						|
        return jsPropertySyntax
 | 
						|
            ? isNumber
 | 
						|
                ? (0, codegen_1._) `"[" + ${dataProp} + "]"`
 | 
						|
                : (0, codegen_1._) `"['" + ${dataProp} + "']"`
 | 
						|
            : isNumber
 | 
						|
                ? (0, codegen_1._) `"/" + ${dataProp}`
 | 
						|
                : (0, codegen_1._) `"/" + ${dataProp}.replace(/~/g, "~0").replace(/\\//g, "~1")`; // TODO maybe use global escapePointer
 | 
						|
    }
 | 
						|
    return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp);
 | 
						|
}
 | 
						|
exports.getErrorPath = getErrorPath;
 | 
						|
function checkStrictMode(it, msg, mode = it.opts.strictSchema) {
 | 
						|
    if (!mode)
 | 
						|
        return;
 | 
						|
    msg = `strict mode: ${msg}`;
 | 
						|
    if (mode === true)
 | 
						|
        throw new Error(msg);
 | 
						|
    it.self.logger.warn(msg);
 | 
						|
}
 | 
						|
exports.checkStrictMode = checkStrictMode;
 | 
						|
//# sourceMappingURL=util.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 54782:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;
 | 
						|
function schemaHasRulesForType({ schema, self }, type) {
 | 
						|
    const group = self.RULES.types[type];
 | 
						|
    return group && group !== true && shouldUseGroup(schema, group);
 | 
						|
}
 | 
						|
exports.schemaHasRulesForType = schemaHasRulesForType;
 | 
						|
function shouldUseGroup(schema, group) {
 | 
						|
    return group.rules.some((rule) => shouldUseRule(schema, rule));
 | 
						|
}
 | 
						|
exports.shouldUseGroup = shouldUseGroup;
 | 
						|
function shouldUseRule(schema, rule) {
 | 
						|
    var _a;
 | 
						|
    return (schema[rule.keyword] !== undefined ||
 | 
						|
        ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));
 | 
						|
}
 | 
						|
exports.shouldUseRule = shouldUseRule;
 | 
						|
//# sourceMappingURL=applicability.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 64168:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;
 | 
						|
const errors_1 = __webpack_require__(82263);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const boolError = {
 | 
						|
    message: "boolean schema is false",
 | 
						|
};
 | 
						|
function topBoolOrEmptySchema(it) {
 | 
						|
    const { gen, schema, validateName } = it;
 | 
						|
    if (schema === false) {
 | 
						|
        falseSchemaError(it, false);
 | 
						|
    }
 | 
						|
    else if (typeof schema == "object" && schema.$async === true) {
 | 
						|
        gen.return(names_1.default.data);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        gen.assign((0, codegen_1._) `${validateName}.errors`, null);
 | 
						|
        gen.return(true);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.topBoolOrEmptySchema = topBoolOrEmptySchema;
 | 
						|
function boolOrEmptySchema(it, valid) {
 | 
						|
    const { gen, schema } = it;
 | 
						|
    if (schema === false) {
 | 
						|
        gen.var(valid, false); // TODO var
 | 
						|
        falseSchemaError(it);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        gen.var(valid, true); // TODO var
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.boolOrEmptySchema = boolOrEmptySchema;
 | 
						|
function falseSchemaError(it, overrideAllErrors) {
 | 
						|
    const { gen, data } = it;
 | 
						|
    // TODO maybe some other interface should be used for non-keyword validation errors...
 | 
						|
    const cxt = {
 | 
						|
        gen,
 | 
						|
        keyword: "false schema",
 | 
						|
        data,
 | 
						|
        schema: false,
 | 
						|
        schemaCode: false,
 | 
						|
        schemaValue: false,
 | 
						|
        params: {},
 | 
						|
        it,
 | 
						|
    };
 | 
						|
    (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);
 | 
						|
}
 | 
						|
//# sourceMappingURL=boolSchema.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 85077:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;
 | 
						|
const rules_1 = __webpack_require__(24623);
 | 
						|
const applicability_1 = __webpack_require__(54782);
 | 
						|
const errors_1 = __webpack_require__(82263);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
var DataType;
 | 
						|
(function (DataType) {
 | 
						|
    DataType[DataType["Correct"] = 0] = "Correct";
 | 
						|
    DataType[DataType["Wrong"] = 1] = "Wrong";
 | 
						|
})(DataType || (exports.DataType = DataType = {}));
 | 
						|
function getSchemaTypes(schema) {
 | 
						|
    const types = getJSONTypes(schema.type);
 | 
						|
    const hasNull = types.includes("null");
 | 
						|
    if (hasNull) {
 | 
						|
        if (schema.nullable === false)
 | 
						|
            throw new Error("type: null contradicts nullable: false");
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        if (!types.length && schema.nullable !== undefined) {
 | 
						|
            throw new Error('"nullable" cannot be used without "type"');
 | 
						|
        }
 | 
						|
        if (schema.nullable === true)
 | 
						|
            types.push("null");
 | 
						|
    }
 | 
						|
    return types;
 | 
						|
}
 | 
						|
exports.getSchemaTypes = getSchemaTypes;
 | 
						|
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
 | 
						|
function getJSONTypes(ts) {
 | 
						|
    const types = Array.isArray(ts) ? ts : ts ? [ts] : [];
 | 
						|
    if (types.every(rules_1.isJSONType))
 | 
						|
        return types;
 | 
						|
    throw new Error("type must be JSONType or JSONType[]: " + types.join(","));
 | 
						|
}
 | 
						|
exports.getJSONTypes = getJSONTypes;
 | 
						|
function coerceAndCheckDataType(it, types) {
 | 
						|
    const { gen, data, opts } = it;
 | 
						|
    const coerceTo = coerceToTypes(types, opts.coerceTypes);
 | 
						|
    const checkTypes = types.length > 0 &&
 | 
						|
        !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));
 | 
						|
    if (checkTypes) {
 | 
						|
        const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);
 | 
						|
        gen.if(wrongType, () => {
 | 
						|
            if (coerceTo.length)
 | 
						|
                coerceData(it, types, coerceTo);
 | 
						|
            else
 | 
						|
                reportTypeError(it);
 | 
						|
        });
 | 
						|
    }
 | 
						|
    return checkTypes;
 | 
						|
}
 | 
						|
exports.coerceAndCheckDataType = coerceAndCheckDataType;
 | 
						|
const COERCIBLE = new Set(["string", "number", "integer", "boolean", "null"]);
 | 
						|
function coerceToTypes(types, coerceTypes) {
 | 
						|
    return coerceTypes
 | 
						|
        ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === "array" && t === "array"))
 | 
						|
        : [];
 | 
						|
}
 | 
						|
function coerceData(it, types, coerceTo) {
 | 
						|
    const { gen, data, opts } = it;
 | 
						|
    const dataType = gen.let("dataType", (0, codegen_1._) `typeof ${data}`);
 | 
						|
    const coerced = gen.let("coerced", (0, codegen_1._) `undefined`);
 | 
						|
    if (opts.coerceTypes === "array") {
 | 
						|
        gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen
 | 
						|
            .assign(data, (0, codegen_1._) `${data}[0]`)
 | 
						|
            .assign(dataType, (0, codegen_1._) `typeof ${data}`)
 | 
						|
            .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));
 | 
						|
    }
 | 
						|
    gen.if((0, codegen_1._) `${coerced} !== undefined`);
 | 
						|
    for (const t of coerceTo) {
 | 
						|
        if (COERCIBLE.has(t) || (t === "array" && opts.coerceTypes === "array")) {
 | 
						|
            coerceSpecificType(t);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    gen.else();
 | 
						|
    reportTypeError(it);
 | 
						|
    gen.endIf();
 | 
						|
    gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {
 | 
						|
        gen.assign(data, coerced);
 | 
						|
        assignParentData(it, coerced);
 | 
						|
    });
 | 
						|
    function coerceSpecificType(t) {
 | 
						|
        switch (t) {
 | 
						|
            case "string":
 | 
						|
                gen
 | 
						|
                    .elseIf((0, codegen_1._) `${dataType} == "number" || ${dataType} == "boolean"`)
 | 
						|
                    .assign(coerced, (0, codegen_1._) `"" + ${data}`)
 | 
						|
                    .elseIf((0, codegen_1._) `${data} === null`)
 | 
						|
                    .assign(coerced, (0, codegen_1._) `""`);
 | 
						|
                return;
 | 
						|
            case "number":
 | 
						|
                gen
 | 
						|
                    .elseIf((0, codegen_1._) `${dataType} == "boolean" || ${data} === null
 | 
						|
              || (${dataType} == "string" && ${data} && ${data} == +${data})`)
 | 
						|
                    .assign(coerced, (0, codegen_1._) `+${data}`);
 | 
						|
                return;
 | 
						|
            case "integer":
 | 
						|
                gen
 | 
						|
                    .elseIf((0, codegen_1._) `${dataType} === "boolean" || ${data} === null
 | 
						|
              || (${dataType} === "string" && ${data} && ${data} == +${data} && !(${data} % 1))`)
 | 
						|
                    .assign(coerced, (0, codegen_1._) `+${data}`);
 | 
						|
                return;
 | 
						|
            case "boolean":
 | 
						|
                gen
 | 
						|
                    .elseIf((0, codegen_1._) `${data} === "false" || ${data} === 0 || ${data} === null`)
 | 
						|
                    .assign(coerced, false)
 | 
						|
                    .elseIf((0, codegen_1._) `${data} === "true" || ${data} === 1`)
 | 
						|
                    .assign(coerced, true);
 | 
						|
                return;
 | 
						|
            case "null":
 | 
						|
                gen.elseIf((0, codegen_1._) `${data} === "" || ${data} === 0 || ${data} === false`);
 | 
						|
                gen.assign(coerced, null);
 | 
						|
                return;
 | 
						|
            case "array":
 | 
						|
                gen
 | 
						|
                    .elseIf((0, codegen_1._) `${dataType} === "string" || ${dataType} === "number"
 | 
						|
              || ${dataType} === "boolean" || ${data} === null`)
 | 
						|
                    .assign(coerced, (0, codegen_1._) `[${data}]`);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
function assignParentData({ gen, parentData, parentDataProperty }, expr) {
 | 
						|
    // TODO use gen.property
 | 
						|
    gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));
 | 
						|
}
 | 
						|
function checkDataType(dataType, data, strictNums, correct = DataType.Correct) {
 | 
						|
    const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;
 | 
						|
    let cond;
 | 
						|
    switch (dataType) {
 | 
						|
        case "null":
 | 
						|
            return (0, codegen_1._) `${data} ${EQ} null`;
 | 
						|
        case "array":
 | 
						|
            cond = (0, codegen_1._) `Array.isArray(${data})`;
 | 
						|
            break;
 | 
						|
        case "object":
 | 
						|
            cond = (0, codegen_1._) `${data} && typeof ${data} == "object" && !Array.isArray(${data})`;
 | 
						|
            break;
 | 
						|
        case "integer":
 | 
						|
            cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);
 | 
						|
            break;
 | 
						|
        case "number":
 | 
						|
            cond = numCond();
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;
 | 
						|
    }
 | 
						|
    return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);
 | 
						|
    function numCond(_cond = codegen_1.nil) {
 | 
						|
        return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == "number"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.checkDataType = checkDataType;
 | 
						|
function checkDataTypes(dataTypes, data, strictNums, correct) {
 | 
						|
    if (dataTypes.length === 1) {
 | 
						|
        return checkDataType(dataTypes[0], data, strictNums, correct);
 | 
						|
    }
 | 
						|
    let cond;
 | 
						|
    const types = (0, util_1.toHash)(dataTypes);
 | 
						|
    if (types.array && types.object) {
 | 
						|
        const notObj = (0, codegen_1._) `typeof ${data} != "object"`;
 | 
						|
        cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;
 | 
						|
        delete types.null;
 | 
						|
        delete types.array;
 | 
						|
        delete types.object;
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        cond = codegen_1.nil;
 | 
						|
    }
 | 
						|
    if (types.number)
 | 
						|
        delete types.integer;
 | 
						|
    for (const t in types)
 | 
						|
        cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));
 | 
						|
    return cond;
 | 
						|
}
 | 
						|
exports.checkDataTypes = checkDataTypes;
 | 
						|
const typeError = {
 | 
						|
    message: ({ schema }) => `must be ${schema}`,
 | 
						|
    params: ({ schema, schemaValue }) => typeof schema == "string" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,
 | 
						|
};
 | 
						|
function reportTypeError(it) {
 | 
						|
    const cxt = getTypeErrorContext(it);
 | 
						|
    (0, errors_1.reportError)(cxt, typeError);
 | 
						|
}
 | 
						|
exports.reportTypeError = reportTypeError;
 | 
						|
function getTypeErrorContext(it) {
 | 
						|
    const { gen, data, schema } = it;
 | 
						|
    const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, "type");
 | 
						|
    return {
 | 
						|
        gen,
 | 
						|
        keyword: "type",
 | 
						|
        data,
 | 
						|
        schema: schema.type,
 | 
						|
        schemaCode,
 | 
						|
        schemaValue: schemaCode,
 | 
						|
        parentSchema: schema,
 | 
						|
        params: {},
 | 
						|
        it,
 | 
						|
    };
 | 
						|
}
 | 
						|
//# sourceMappingURL=dataType.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 3862:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.assignDefaults = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
function assignDefaults(it, ty) {
 | 
						|
    const { properties, items } = it.schema;
 | 
						|
    if (ty === "object" && properties) {
 | 
						|
        for (const key in properties) {
 | 
						|
            assignDefault(it, key, properties[key].default);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    else if (ty === "array" && Array.isArray(items)) {
 | 
						|
        items.forEach((sch, i) => assignDefault(it, i, sch.default));
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.assignDefaults = assignDefaults;
 | 
						|
function assignDefault(it, prop, defaultValue) {
 | 
						|
    const { gen, compositeRule, data, opts } = it;
 | 
						|
    if (defaultValue === undefined)
 | 
						|
        return;
 | 
						|
    const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;
 | 
						|
    if (compositeRule) {
 | 
						|
        (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    let condition = (0, codegen_1._) `${childData} === undefined`;
 | 
						|
    if (opts.useDefaults === "empty") {
 | 
						|
        condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === ""`;
 | 
						|
    }
 | 
						|
    // `${childData} === undefined` +
 | 
						|
    // (opts.useDefaults === "empty" ? ` || ${childData} === null || ${childData} === ""` : "")
 | 
						|
    gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);
 | 
						|
}
 | 
						|
//# sourceMappingURL=defaults.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 40764:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;
 | 
						|
const boolSchema_1 = __webpack_require__(64168);
 | 
						|
const dataType_1 = __webpack_require__(85077);
 | 
						|
const applicability_1 = __webpack_require__(54782);
 | 
						|
const dataType_2 = __webpack_require__(85077);
 | 
						|
const defaults_1 = __webpack_require__(3862);
 | 
						|
const keyword_1 = __webpack_require__(62591);
 | 
						|
const subschema_1 = __webpack_require__(87218);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const resolve_1 = __webpack_require__(33761);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const errors_1 = __webpack_require__(82263);
 | 
						|
// schema compilation - generates validation function, subschemaCode (below) is used for subschemas
 | 
						|
function validateFunctionCode(it) {
 | 
						|
    if (isSchemaObj(it)) {
 | 
						|
        checkKeywords(it);
 | 
						|
        if (schemaCxtHasRules(it)) {
 | 
						|
            topSchemaObjCode(it);
 | 
						|
            return;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));
 | 
						|
}
 | 
						|
exports.validateFunctionCode = validateFunctionCode;
 | 
						|
function validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {
 | 
						|
    if (opts.code.es5) {
 | 
						|
        gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {
 | 
						|
            gen.code((0, codegen_1._) `"use strict"; ${funcSourceUrl(schema, opts)}`);
 | 
						|
            destructureValCxtES5(gen, opts);
 | 
						|
            gen.code(body);
 | 
						|
        });
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));
 | 
						|
    }
 | 
						|
}
 | 
						|
function destructureValCxt(opts) {
 | 
						|
    return (0, codegen_1._) `{${names_1.default.instancePath}="", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;
 | 
						|
}
 | 
						|
function destructureValCxtES5(gen, opts) {
 | 
						|
    gen.if(names_1.default.valCxt, () => {
 | 
						|
        gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);
 | 
						|
        gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);
 | 
						|
        gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);
 | 
						|
        gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);
 | 
						|
        if (opts.dynamicRef)
 | 
						|
            gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);
 | 
						|
    }, () => {
 | 
						|
        gen.var(names_1.default.instancePath, (0, codegen_1._) `""`);
 | 
						|
        gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);
 | 
						|
        gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);
 | 
						|
        gen.var(names_1.default.rootData, names_1.default.data);
 | 
						|
        if (opts.dynamicRef)
 | 
						|
            gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);
 | 
						|
    });
 | 
						|
}
 | 
						|
function topSchemaObjCode(it) {
 | 
						|
    const { schema, opts, gen } = it;
 | 
						|
    validateFunction(it, () => {
 | 
						|
        if (opts.$comment && schema.$comment)
 | 
						|
            commentKeyword(it);
 | 
						|
        checkNoDefault(it);
 | 
						|
        gen.let(names_1.default.vErrors, null);
 | 
						|
        gen.let(names_1.default.errors, 0);
 | 
						|
        if (opts.unevaluated)
 | 
						|
            resetEvaluated(it);
 | 
						|
        typeAndKeywords(it);
 | 
						|
        returnResults(it);
 | 
						|
    });
 | 
						|
    return;
 | 
						|
}
 | 
						|
function resetEvaluated(it) {
 | 
						|
    // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated
 | 
						|
    const { gen, validateName } = it;
 | 
						|
    it.evaluated = gen.const("evaluated", (0, codegen_1._) `${validateName}.evaluated`);
 | 
						|
    gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));
 | 
						|
    gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));
 | 
						|
}
 | 
						|
function funcSourceUrl(schema, opts) {
 | 
						|
    const schId = typeof schema == "object" && schema[opts.schemaId];
 | 
						|
    return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;
 | 
						|
}
 | 
						|
// schema compilation - this function is used recursively to generate code for sub-schemas
 | 
						|
function subschemaCode(it, valid) {
 | 
						|
    if (isSchemaObj(it)) {
 | 
						|
        checkKeywords(it);
 | 
						|
        if (schemaCxtHasRules(it)) {
 | 
						|
            subSchemaObjCode(it, valid);
 | 
						|
            return;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    (0, boolSchema_1.boolOrEmptySchema)(it, valid);
 | 
						|
}
 | 
						|
function schemaCxtHasRules({ schema, self }) {
 | 
						|
    if (typeof schema == "boolean")
 | 
						|
        return !schema;
 | 
						|
    for (const key in schema)
 | 
						|
        if (self.RULES.all[key])
 | 
						|
            return true;
 | 
						|
    return false;
 | 
						|
}
 | 
						|
function isSchemaObj(it) {
 | 
						|
    return typeof it.schema != "boolean";
 | 
						|
}
 | 
						|
function subSchemaObjCode(it, valid) {
 | 
						|
    const { schema, gen, opts } = it;
 | 
						|
    if (opts.$comment && schema.$comment)
 | 
						|
        commentKeyword(it);
 | 
						|
    updateContext(it);
 | 
						|
    checkAsyncSchema(it);
 | 
						|
    const errsCount = gen.const("_errs", names_1.default.errors);
 | 
						|
    typeAndKeywords(it, errsCount);
 | 
						|
    // TODO var
 | 
						|
    gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);
 | 
						|
}
 | 
						|
function checkKeywords(it) {
 | 
						|
    (0, util_1.checkUnknownRules)(it);
 | 
						|
    checkRefsAndKeywords(it);
 | 
						|
}
 | 
						|
function typeAndKeywords(it, errsCount) {
 | 
						|
    if (it.opts.jtd)
 | 
						|
        return schemaKeywords(it, [], false, errsCount);
 | 
						|
    const types = (0, dataType_1.getSchemaTypes)(it.schema);
 | 
						|
    const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);
 | 
						|
    schemaKeywords(it, types, !checkedTypes, errsCount);
 | 
						|
}
 | 
						|
function checkRefsAndKeywords(it) {
 | 
						|
    const { schema, errSchemaPath, opts, self } = it;
 | 
						|
    if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {
 | 
						|
        self.logger.warn(`$ref: keywords ignored in schema at path "${errSchemaPath}"`);
 | 
						|
    }
 | 
						|
}
 | 
						|
function checkNoDefault(it) {
 | 
						|
    const { schema, opts } = it;
 | 
						|
    if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {
 | 
						|
        (0, util_1.checkStrictMode)(it, "default is ignored in the schema root");
 | 
						|
    }
 | 
						|
}
 | 
						|
function updateContext(it) {
 | 
						|
    const schId = it.schema[it.opts.schemaId];
 | 
						|
    if (schId)
 | 
						|
        it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);
 | 
						|
}
 | 
						|
function checkAsyncSchema(it) {
 | 
						|
    if (it.schema.$async && !it.schemaEnv.$async)
 | 
						|
        throw new Error("async schema in sync schema");
 | 
						|
}
 | 
						|
function commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {
 | 
						|
    const msg = schema.$comment;
 | 
						|
    if (opts.$comment === true) {
 | 
						|
        gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);
 | 
						|
    }
 | 
						|
    else if (typeof opts.$comment == "function") {
 | 
						|
        const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;
 | 
						|
        const rootName = gen.scopeValue("root", { ref: schemaEnv.root });
 | 
						|
        gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);
 | 
						|
    }
 | 
						|
}
 | 
						|
function returnResults(it) {
 | 
						|
    const { gen, schemaEnv, validateName, ValidationError, opts } = it;
 | 
						|
    if (schemaEnv.$async) {
 | 
						|
        // TODO assign unevaluated
 | 
						|
        gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);
 | 
						|
        if (opts.unevaluated)
 | 
						|
            assignEvaluated(it);
 | 
						|
        gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);
 | 
						|
    }
 | 
						|
}
 | 
						|
function assignEvaluated({ gen, evaluated, props, items }) {
 | 
						|
    if (props instanceof codegen_1.Name)
 | 
						|
        gen.assign((0, codegen_1._) `${evaluated}.props`, props);
 | 
						|
    if (items instanceof codegen_1.Name)
 | 
						|
        gen.assign((0, codegen_1._) `${evaluated}.items`, items);
 | 
						|
}
 | 
						|
function schemaKeywords(it, types, typeErrors, errsCount) {
 | 
						|
    const { gen, schema, data, allErrors, opts, self } = it;
 | 
						|
    const { RULES } = self;
 | 
						|
    if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {
 | 
						|
        gen.block(() => keywordCode(it, "$ref", RULES.all.$ref.definition)); // TODO typecast
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    if (!opts.jtd)
 | 
						|
        checkStrictTypes(it, types);
 | 
						|
    gen.block(() => {
 | 
						|
        for (const group of RULES.rules)
 | 
						|
            groupKeywords(group);
 | 
						|
        groupKeywords(RULES.post);
 | 
						|
    });
 | 
						|
    function groupKeywords(group) {
 | 
						|
        if (!(0, applicability_1.shouldUseGroup)(schema, group))
 | 
						|
            return;
 | 
						|
        if (group.type) {
 | 
						|
            gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));
 | 
						|
            iterateKeywords(it, group);
 | 
						|
            if (types.length === 1 && types[0] === group.type && typeErrors) {
 | 
						|
                gen.else();
 | 
						|
                (0, dataType_2.reportTypeError)(it);
 | 
						|
            }
 | 
						|
            gen.endIf();
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            iterateKeywords(it, group);
 | 
						|
        }
 | 
						|
        // TODO make it "ok" call?
 | 
						|
        if (!allErrors)
 | 
						|
            gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);
 | 
						|
    }
 | 
						|
}
 | 
						|
function iterateKeywords(it, group) {
 | 
						|
    const { gen, schema, opts: { useDefaults }, } = it;
 | 
						|
    if (useDefaults)
 | 
						|
        (0, defaults_1.assignDefaults)(it, group.type);
 | 
						|
    gen.block(() => {
 | 
						|
        for (const rule of group.rules) {
 | 
						|
            if ((0, applicability_1.shouldUseRule)(schema, rule)) {
 | 
						|
                keywordCode(it, rule.keyword, rule.definition, group.type);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    });
 | 
						|
}
 | 
						|
function checkStrictTypes(it, types) {
 | 
						|
    if (it.schemaEnv.meta || !it.opts.strictTypes)
 | 
						|
        return;
 | 
						|
    checkContextTypes(it, types);
 | 
						|
    if (!it.opts.allowUnionTypes)
 | 
						|
        checkMultipleTypes(it, types);
 | 
						|
    checkKeywordTypes(it, it.dataTypes);
 | 
						|
}
 | 
						|
function checkContextTypes(it, types) {
 | 
						|
    if (!types.length)
 | 
						|
        return;
 | 
						|
    if (!it.dataTypes.length) {
 | 
						|
        it.dataTypes = types;
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    types.forEach((t) => {
 | 
						|
        if (!includesType(it.dataTypes, t)) {
 | 
						|
            strictTypesError(it, `type "${t}" not allowed by context "${it.dataTypes.join(",")}"`);
 | 
						|
        }
 | 
						|
    });
 | 
						|
    narrowSchemaTypes(it, types);
 | 
						|
}
 | 
						|
function checkMultipleTypes(it, ts) {
 | 
						|
    if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) {
 | 
						|
        strictTypesError(it, "use allowUnionTypes to allow union type keyword");
 | 
						|
    }
 | 
						|
}
 | 
						|
function checkKeywordTypes(it, ts) {
 | 
						|
    const rules = it.self.RULES.all;
 | 
						|
    for (const keyword in rules) {
 | 
						|
        const rule = rules[keyword];
 | 
						|
        if (typeof rule == "object" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {
 | 
						|
            const { type } = rule.definition;
 | 
						|
            if (type.length && !type.some((t) => hasApplicableType(ts, t))) {
 | 
						|
                strictTypesError(it, `missing type "${type.join(",")}" for keyword "${keyword}"`);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
function hasApplicableType(schTs, kwdT) {
 | 
						|
    return schTs.includes(kwdT) || (kwdT === "number" && schTs.includes("integer"));
 | 
						|
}
 | 
						|
function includesType(ts, t) {
 | 
						|
    return ts.includes(t) || (t === "integer" && ts.includes("number"));
 | 
						|
}
 | 
						|
function narrowSchemaTypes(it, withTypes) {
 | 
						|
    const ts = [];
 | 
						|
    for (const t of it.dataTypes) {
 | 
						|
        if (includesType(withTypes, t))
 | 
						|
            ts.push(t);
 | 
						|
        else if (withTypes.includes("integer") && t === "number")
 | 
						|
            ts.push("integer");
 | 
						|
    }
 | 
						|
    it.dataTypes = ts;
 | 
						|
}
 | 
						|
function strictTypesError(it, msg) {
 | 
						|
    const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;
 | 
						|
    msg += ` at "${schemaPath}" (strictTypes)`;
 | 
						|
    (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);
 | 
						|
}
 | 
						|
class KeywordCxt {
 | 
						|
    constructor(it, def, keyword) {
 | 
						|
        (0, keyword_1.validateKeywordUsage)(it, def, keyword);
 | 
						|
        this.gen = it.gen;
 | 
						|
        this.allErrors = it.allErrors;
 | 
						|
        this.keyword = keyword;
 | 
						|
        this.data = it.data;
 | 
						|
        this.schema = it.schema[keyword];
 | 
						|
        this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;
 | 
						|
        this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);
 | 
						|
        this.schemaType = def.schemaType;
 | 
						|
        this.parentSchema = it.schema;
 | 
						|
        this.params = {};
 | 
						|
        this.it = it;
 | 
						|
        this.def = def;
 | 
						|
        if (this.$data) {
 | 
						|
            this.schemaCode = it.gen.const("vSchema", getData(this.$data, it));
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            this.schemaCode = this.schemaValue;
 | 
						|
            if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {
 | 
						|
                throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if ("code" in def ? def.trackErrors : def.errors !== false) {
 | 
						|
            this.errsCount = it.gen.const("_errs", names_1.default.errors);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    result(condition, successAction, failAction) {
 | 
						|
        this.failResult((0, codegen_1.not)(condition), successAction, failAction);
 | 
						|
    }
 | 
						|
    failResult(condition, successAction, failAction) {
 | 
						|
        this.gen.if(condition);
 | 
						|
        if (failAction)
 | 
						|
            failAction();
 | 
						|
        else
 | 
						|
            this.error();
 | 
						|
        if (successAction) {
 | 
						|
            this.gen.else();
 | 
						|
            successAction();
 | 
						|
            if (this.allErrors)
 | 
						|
                this.gen.endIf();
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            if (this.allErrors)
 | 
						|
                this.gen.endIf();
 | 
						|
            else
 | 
						|
                this.gen.else();
 | 
						|
        }
 | 
						|
    }
 | 
						|
    pass(condition, failAction) {
 | 
						|
        this.failResult((0, codegen_1.not)(condition), undefined, failAction);
 | 
						|
    }
 | 
						|
    fail(condition) {
 | 
						|
        if (condition === undefined) {
 | 
						|
            this.error();
 | 
						|
            if (!this.allErrors)
 | 
						|
                this.gen.if(false); // this branch will be removed by gen.optimize
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        this.gen.if(condition);
 | 
						|
        this.error();
 | 
						|
        if (this.allErrors)
 | 
						|
            this.gen.endIf();
 | 
						|
        else
 | 
						|
            this.gen.else();
 | 
						|
    }
 | 
						|
    fail$data(condition) {
 | 
						|
        if (!this.$data)
 | 
						|
            return this.fail(condition);
 | 
						|
        const { schemaCode } = this;
 | 
						|
        this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);
 | 
						|
    }
 | 
						|
    error(append, errorParams, errorPaths) {
 | 
						|
        if (errorParams) {
 | 
						|
            this.setParams(errorParams);
 | 
						|
            this._error(append, errorPaths);
 | 
						|
            this.setParams({});
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        this._error(append, errorPaths);
 | 
						|
    }
 | 
						|
    _error(append, errorPaths) {
 | 
						|
        ;
 | 
						|
        (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);
 | 
						|
    }
 | 
						|
    $dataError() {
 | 
						|
        (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);
 | 
						|
    }
 | 
						|
    reset() {
 | 
						|
        if (this.errsCount === undefined)
 | 
						|
            throw new Error('add "trackErrors" to keyword definition');
 | 
						|
        (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);
 | 
						|
    }
 | 
						|
    ok(cond) {
 | 
						|
        if (!this.allErrors)
 | 
						|
            this.gen.if(cond);
 | 
						|
    }
 | 
						|
    setParams(obj, assign) {
 | 
						|
        if (assign)
 | 
						|
            Object.assign(this.params, obj);
 | 
						|
        else
 | 
						|
            this.params = obj;
 | 
						|
    }
 | 
						|
    block$data(valid, codeBlock, $dataValid = codegen_1.nil) {
 | 
						|
        this.gen.block(() => {
 | 
						|
            this.check$data(valid, $dataValid);
 | 
						|
            codeBlock();
 | 
						|
        });
 | 
						|
    }
 | 
						|
    check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {
 | 
						|
        if (!this.$data)
 | 
						|
            return;
 | 
						|
        const { gen, schemaCode, schemaType, def } = this;
 | 
						|
        gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));
 | 
						|
        if (valid !== codegen_1.nil)
 | 
						|
            gen.assign(valid, true);
 | 
						|
        if (schemaType.length || def.validateSchema) {
 | 
						|
            gen.elseIf(this.invalid$data());
 | 
						|
            this.$dataError();
 | 
						|
            if (valid !== codegen_1.nil)
 | 
						|
                gen.assign(valid, false);
 | 
						|
        }
 | 
						|
        gen.else();
 | 
						|
    }
 | 
						|
    invalid$data() {
 | 
						|
        const { gen, schemaCode, schemaType, def, it } = this;
 | 
						|
        return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());
 | 
						|
        function wrong$DataType() {
 | 
						|
            if (schemaType.length) {
 | 
						|
                /* istanbul ignore if */
 | 
						|
                if (!(schemaCode instanceof codegen_1.Name))
 | 
						|
                    throw new Error("ajv implementation error");
 | 
						|
                const st = Array.isArray(schemaType) ? schemaType : [schemaType];
 | 
						|
                return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;
 | 
						|
            }
 | 
						|
            return codegen_1.nil;
 | 
						|
        }
 | 
						|
        function invalid$DataSchema() {
 | 
						|
            if (def.validateSchema) {
 | 
						|
                const validateSchemaRef = gen.scopeValue("validate$data", { ref: def.validateSchema }); // TODO value.code for standalone
 | 
						|
                return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;
 | 
						|
            }
 | 
						|
            return codegen_1.nil;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    subschema(appl, valid) {
 | 
						|
        const subschema = (0, subschema_1.getSubschema)(this.it, appl);
 | 
						|
        (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);
 | 
						|
        (0, subschema_1.extendSubschemaMode)(subschema, appl);
 | 
						|
        const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };
 | 
						|
        subschemaCode(nextContext, valid);
 | 
						|
        return nextContext;
 | 
						|
    }
 | 
						|
    mergeEvaluated(schemaCxt, toName) {
 | 
						|
        const { it, gen } = this;
 | 
						|
        if (!it.opts.unevaluated)
 | 
						|
            return;
 | 
						|
        if (it.props !== true && schemaCxt.props !== undefined) {
 | 
						|
            it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);
 | 
						|
        }
 | 
						|
        if (it.items !== true && schemaCxt.items !== undefined) {
 | 
						|
            it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    mergeValidEvaluated(schemaCxt, valid) {
 | 
						|
        const { it, gen } = this;
 | 
						|
        if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {
 | 
						|
            gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.KeywordCxt = KeywordCxt;
 | 
						|
function keywordCode(it, keyword, def, ruleType) {
 | 
						|
    const cxt = new KeywordCxt(it, def, keyword);
 | 
						|
    if ("code" in def) {
 | 
						|
        def.code(cxt, ruleType);
 | 
						|
    }
 | 
						|
    else if (cxt.$data && def.validate) {
 | 
						|
        (0, keyword_1.funcKeywordCode)(cxt, def);
 | 
						|
    }
 | 
						|
    else if ("macro" in def) {
 | 
						|
        (0, keyword_1.macroKeywordCode)(cxt, def);
 | 
						|
    }
 | 
						|
    else if (def.compile || def.validate) {
 | 
						|
        (0, keyword_1.funcKeywordCode)(cxt, def);
 | 
						|
    }
 | 
						|
}
 | 
						|
const JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
 | 
						|
const RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
 | 
						|
function getData($data, { dataLevel, dataNames, dataPathArr }) {
 | 
						|
    let jsonPointer;
 | 
						|
    let data;
 | 
						|
    if ($data === "")
 | 
						|
        return names_1.default.rootData;
 | 
						|
    if ($data[0] === "/") {
 | 
						|
        if (!JSON_POINTER.test($data))
 | 
						|
            throw new Error(`Invalid JSON-pointer: ${$data}`);
 | 
						|
        jsonPointer = $data;
 | 
						|
        data = names_1.default.rootData;
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        const matches = RELATIVE_JSON_POINTER.exec($data);
 | 
						|
        if (!matches)
 | 
						|
            throw new Error(`Invalid JSON-pointer: ${$data}`);
 | 
						|
        const up = +matches[1];
 | 
						|
        jsonPointer = matches[2];
 | 
						|
        if (jsonPointer === "#") {
 | 
						|
            if (up >= dataLevel)
 | 
						|
                throw new Error(errorMsg("property/index", up));
 | 
						|
            return dataPathArr[dataLevel - up];
 | 
						|
        }
 | 
						|
        if (up > dataLevel)
 | 
						|
            throw new Error(errorMsg("data", up));
 | 
						|
        data = dataNames[dataLevel - up];
 | 
						|
        if (!jsonPointer)
 | 
						|
            return data;
 | 
						|
    }
 | 
						|
    let expr = data;
 | 
						|
    const segments = jsonPointer.split("/");
 | 
						|
    for (const segment of segments) {
 | 
						|
        if (segment) {
 | 
						|
            data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;
 | 
						|
            expr = (0, codegen_1._) `${expr} && ${data}`;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return expr;
 | 
						|
    function errorMsg(pointerType, up) {
 | 
						|
        return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.getData = getData;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 62591:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const errors_1 = __webpack_require__(82263);
 | 
						|
function macroKeywordCode(cxt, def) {
 | 
						|
    const { gen, keyword, schema, parentSchema, it } = cxt;
 | 
						|
    const macroSchema = def.macro.call(it.self, schema, parentSchema, it);
 | 
						|
    const schemaRef = useKeyword(gen, keyword, macroSchema);
 | 
						|
    if (it.opts.validateSchema !== false)
 | 
						|
        it.self.validateSchema(macroSchema, true);
 | 
						|
    const valid = gen.name("valid");
 | 
						|
    cxt.subschema({
 | 
						|
        schema: macroSchema,
 | 
						|
        schemaPath: codegen_1.nil,
 | 
						|
        errSchemaPath: `${it.errSchemaPath}/${keyword}`,
 | 
						|
        topSchemaRef: schemaRef,
 | 
						|
        compositeRule: true,
 | 
						|
    }, valid);
 | 
						|
    cxt.pass(valid, () => cxt.error(true));
 | 
						|
}
 | 
						|
exports.macroKeywordCode = macroKeywordCode;
 | 
						|
function funcKeywordCode(cxt, def) {
 | 
						|
    var _a;
 | 
						|
    const { gen, keyword, schema, parentSchema, $data, it } = cxt;
 | 
						|
    checkAsyncKeyword(it, def);
 | 
						|
    const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;
 | 
						|
    const validateRef = useKeyword(gen, keyword, validate);
 | 
						|
    const valid = gen.let("valid");
 | 
						|
    cxt.block$data(valid, validateKeyword);
 | 
						|
    cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);
 | 
						|
    function validateKeyword() {
 | 
						|
        if (def.errors === false) {
 | 
						|
            assignValid();
 | 
						|
            if (def.modifying)
 | 
						|
                modifyData(cxt);
 | 
						|
            reportErrs(() => cxt.error());
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            const ruleErrs = def.async ? validateAsync() : validateSync();
 | 
						|
            if (def.modifying)
 | 
						|
                modifyData(cxt);
 | 
						|
            reportErrs(() => addErrs(cxt, ruleErrs));
 | 
						|
        }
 | 
						|
    }
 | 
						|
    function validateAsync() {
 | 
						|
        const ruleErrs = gen.let("ruleErrs", null);
 | 
						|
        gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));
 | 
						|
        return ruleErrs;
 | 
						|
    }
 | 
						|
    function validateSync() {
 | 
						|
        const validateErrs = (0, codegen_1._) `${validateRef}.errors`;
 | 
						|
        gen.assign(validateErrs, null);
 | 
						|
        assignValid(codegen_1.nil);
 | 
						|
        return validateErrs;
 | 
						|
    }
 | 
						|
    function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {
 | 
						|
        const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;
 | 
						|
        const passSchema = !(("compile" in def && !$data) || def.schema === false);
 | 
						|
        gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);
 | 
						|
    }
 | 
						|
    function reportErrs(errors) {
 | 
						|
        var _a;
 | 
						|
        gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.funcKeywordCode = funcKeywordCode;
 | 
						|
function modifyData(cxt) {
 | 
						|
    const { gen, data, it } = cxt;
 | 
						|
    gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));
 | 
						|
}
 | 
						|
function addErrs(cxt, errs) {
 | 
						|
    const { gen } = cxt;
 | 
						|
    gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {
 | 
						|
        gen
 | 
						|
            .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)
 | 
						|
            .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);
 | 
						|
        (0, errors_1.extendErrors)(cxt);
 | 
						|
    }, () => cxt.error());
 | 
						|
}
 | 
						|
function checkAsyncKeyword({ schemaEnv }, def) {
 | 
						|
    if (def.async && !schemaEnv.$async)
 | 
						|
        throw new Error("async keyword in sync schema");
 | 
						|
}
 | 
						|
function useKeyword(gen, keyword, result) {
 | 
						|
    if (result === undefined)
 | 
						|
        throw new Error(`keyword "${keyword}" failed to compile`);
 | 
						|
    return gen.scopeValue("keyword", typeof result == "function" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });
 | 
						|
}
 | 
						|
function validSchemaType(schema, schemaType, allowUndefined = false) {
 | 
						|
    // TODO add tests
 | 
						|
    return (!schemaType.length ||
 | 
						|
        schemaType.some((st) => st === "array"
 | 
						|
            ? Array.isArray(schema)
 | 
						|
            : st === "object"
 | 
						|
                ? schema && typeof schema == "object" && !Array.isArray(schema)
 | 
						|
                : typeof schema == st || (allowUndefined && typeof schema == "undefined")));
 | 
						|
}
 | 
						|
exports.validSchemaType = validSchemaType;
 | 
						|
function validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {
 | 
						|
    /* istanbul ignore if */
 | 
						|
    if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {
 | 
						|
        throw new Error("ajv implementation error");
 | 
						|
    }
 | 
						|
    const deps = def.dependencies;
 | 
						|
    if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {
 | 
						|
        throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(",")}`);
 | 
						|
    }
 | 
						|
    if (def.validateSchema) {
 | 
						|
        const valid = def.validateSchema(schema[keyword]);
 | 
						|
        if (!valid) {
 | 
						|
            const msg = `keyword "${keyword}" value is invalid at path "${errSchemaPath}": ` +
 | 
						|
                self.errorsText(def.validateSchema.errors);
 | 
						|
            if (opts.validateSchema === "log")
 | 
						|
                self.logger.error(msg);
 | 
						|
            else
 | 
						|
                throw new Error(msg);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.validateKeywordUsage = validateKeywordUsage;
 | 
						|
//# sourceMappingURL=keyword.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 87218:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
function getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {
 | 
						|
    if (keyword !== undefined && schema !== undefined) {
 | 
						|
        throw new Error('both "keyword" and "schema" passed, only one allowed');
 | 
						|
    }
 | 
						|
    if (keyword !== undefined) {
 | 
						|
        const sch = it.schema[keyword];
 | 
						|
        return schemaProp === undefined
 | 
						|
            ? {
 | 
						|
                schema: sch,
 | 
						|
                schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,
 | 
						|
                errSchemaPath: `${it.errSchemaPath}/${keyword}`,
 | 
						|
            }
 | 
						|
            : {
 | 
						|
                schema: sch[schemaProp],
 | 
						|
                schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,
 | 
						|
                errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,
 | 
						|
            };
 | 
						|
    }
 | 
						|
    if (schema !== undefined) {
 | 
						|
        if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {
 | 
						|
            throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');
 | 
						|
        }
 | 
						|
        return {
 | 
						|
            schema,
 | 
						|
            schemaPath,
 | 
						|
            topSchemaRef,
 | 
						|
            errSchemaPath,
 | 
						|
        };
 | 
						|
    }
 | 
						|
    throw new Error('either "keyword" or "schema" must be passed');
 | 
						|
}
 | 
						|
exports.getSubschema = getSubschema;
 | 
						|
function extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {
 | 
						|
    if (data !== undefined && dataProp !== undefined) {
 | 
						|
        throw new Error('both "data" and "dataProp" passed, only one allowed');
 | 
						|
    }
 | 
						|
    const { gen } = it;
 | 
						|
    if (dataProp !== undefined) {
 | 
						|
        const { errorPath, dataPathArr, opts } = it;
 | 
						|
        const nextData = gen.let("data", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);
 | 
						|
        dataContextProps(nextData);
 | 
						|
        subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;
 | 
						|
        subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;
 | 
						|
        subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];
 | 
						|
    }
 | 
						|
    if (data !== undefined) {
 | 
						|
        const nextData = data instanceof codegen_1.Name ? data : gen.let("data", data, true); // replaceable if used once?
 | 
						|
        dataContextProps(nextData);
 | 
						|
        if (propertyName !== undefined)
 | 
						|
            subschema.propertyName = propertyName;
 | 
						|
        // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr
 | 
						|
    }
 | 
						|
    if (dataTypes)
 | 
						|
        subschema.dataTypes = dataTypes;
 | 
						|
    function dataContextProps(_nextData) {
 | 
						|
        subschema.data = _nextData;
 | 
						|
        subschema.dataLevel = it.dataLevel + 1;
 | 
						|
        subschema.dataTypes = [];
 | 
						|
        it.definedProperties = new Set();
 | 
						|
        subschema.parentData = it.data;
 | 
						|
        subschema.dataNames = [...it.dataNames, _nextData];
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.extendSubschemaData = extendSubschemaData;
 | 
						|
function extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {
 | 
						|
    if (compositeRule !== undefined)
 | 
						|
        subschema.compositeRule = compositeRule;
 | 
						|
    if (createErrors !== undefined)
 | 
						|
        subschema.createErrors = createErrors;
 | 
						|
    if (allErrors !== undefined)
 | 
						|
        subschema.allErrors = allErrors;
 | 
						|
    subschema.jtdDiscriminator = jtdDiscriminator; // not inherited
 | 
						|
    subschema.jtdMetadata = jtdMetadata; // not inherited
 | 
						|
}
 | 
						|
exports.extendSubschemaMode = extendSubschemaMode;
 | 
						|
//# sourceMappingURL=subschema.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 98955:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
 | 
						|
var validate_1 = __webpack_require__(40764);
 | 
						|
Object.defineProperty(exports, "KeywordCxt", ({ enumerable: true, get: function () { return validate_1.KeywordCxt; } }));
 | 
						|
var codegen_1 = __webpack_require__(17231);
 | 
						|
Object.defineProperty(exports, "_", ({ enumerable: true, get: function () { return codegen_1._; } }));
 | 
						|
Object.defineProperty(exports, "str", ({ enumerable: true, get: function () { return codegen_1.str; } }));
 | 
						|
Object.defineProperty(exports, "stringify", ({ enumerable: true, get: function () { return codegen_1.stringify; } }));
 | 
						|
Object.defineProperty(exports, "nil", ({ enumerable: true, get: function () { return codegen_1.nil; } }));
 | 
						|
Object.defineProperty(exports, "Name", ({ enumerable: true, get: function () { return codegen_1.Name; } }));
 | 
						|
Object.defineProperty(exports, "CodeGen", ({ enumerable: true, get: function () { return codegen_1.CodeGen; } }));
 | 
						|
const validation_error_1 = __webpack_require__(17766);
 | 
						|
const ref_error_1 = __webpack_require__(26317);
 | 
						|
const rules_1 = __webpack_require__(24623);
 | 
						|
const compile_1 = __webpack_require__(50052);
 | 
						|
const codegen_2 = __webpack_require__(17231);
 | 
						|
const resolve_1 = __webpack_require__(33761);
 | 
						|
const dataType_1 = __webpack_require__(85077);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const $dataRefSchema = __webpack_require__(94801);
 | 
						|
const uri_1 = __webpack_require__(42658);
 | 
						|
const defaultRegExp = (str, flags) => new RegExp(str, flags);
 | 
						|
defaultRegExp.code = "new RegExp";
 | 
						|
const META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes"];
 | 
						|
const EXT_SCOPE_NAMES = new Set([
 | 
						|
    "validate",
 | 
						|
    "serialize",
 | 
						|
    "parse",
 | 
						|
    "wrapper",
 | 
						|
    "root",
 | 
						|
    "schema",
 | 
						|
    "keyword",
 | 
						|
    "pattern",
 | 
						|
    "formats",
 | 
						|
    "validate$data",
 | 
						|
    "func",
 | 
						|
    "obj",
 | 
						|
    "Error",
 | 
						|
]);
 | 
						|
const removedOptions = {
 | 
						|
    errorDataPath: "",
 | 
						|
    format: "`validateFormats: false` can be used instead.",
 | 
						|
    nullable: '"nullable" keyword is supported by default.',
 | 
						|
    jsonPointers: "Deprecated jsPropertySyntax can be used instead.",
 | 
						|
    extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.",
 | 
						|
    missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.",
 | 
						|
    processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`",
 | 
						|
    sourceCode: "Use option `code: {source: true}`",
 | 
						|
    strictDefaults: "It is default now, see option `strict`.",
 | 
						|
    strictKeywords: "It is default now, see option `strict`.",
 | 
						|
    uniqueItems: '"uniqueItems" keyword is always validated.',
 | 
						|
    unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",
 | 
						|
    cache: "Map is used as cache, schema object as key.",
 | 
						|
    serialize: "Map is used as cache, schema object as key.",
 | 
						|
    ajvErrors: "It is default now.",
 | 
						|
};
 | 
						|
const deprecatedOptions = {
 | 
						|
    ignoreKeywordsWithRef: "",
 | 
						|
    jsPropertySyntax: "",
 | 
						|
    unicode: '"minLength"/"maxLength" account for unicode characters by default.',
 | 
						|
};
 | 
						|
const MAX_EXPRESSION = 200;
 | 
						|
// eslint-disable-next-line complexity
 | 
						|
function requiredOptions(o) {
 | 
						|
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
 | 
						|
    const s = o.strict;
 | 
						|
    const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;
 | 
						|
    const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;
 | 
						|
    const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;
 | 
						|
    const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;
 | 
						|
    return {
 | 
						|
        strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,
 | 
						|
        strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,
 | 
						|
        strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log",
 | 
						|
        strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log",
 | 
						|
        strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,
 | 
						|
        code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },
 | 
						|
        loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,
 | 
						|
        loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,
 | 
						|
        meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,
 | 
						|
        messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,
 | 
						|
        inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,
 | 
						|
        schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id",
 | 
						|
        addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,
 | 
						|
        validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,
 | 
						|
        validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,
 | 
						|
        unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,
 | 
						|
        int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,
 | 
						|
        uriResolver: uriResolver,
 | 
						|
    };
 | 
						|
}
 | 
						|
class Ajv {
 | 
						|
    constructor(opts = {}) {
 | 
						|
        this.schemas = {};
 | 
						|
        this.refs = {};
 | 
						|
        this.formats = {};
 | 
						|
        this._compilations = new Set();
 | 
						|
        this._loading = {};
 | 
						|
        this._cache = new Map();
 | 
						|
        opts = this.opts = { ...opts, ...requiredOptions(opts) };
 | 
						|
        const { es5, lines } = this.opts.code;
 | 
						|
        this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });
 | 
						|
        this.logger = getLogger(opts.logger);
 | 
						|
        const formatOpt = opts.validateFormats;
 | 
						|
        opts.validateFormats = false;
 | 
						|
        this.RULES = (0, rules_1.getRules)();
 | 
						|
        checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED");
 | 
						|
        checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn");
 | 
						|
        this._metaOpts = getMetaSchemaOptions.call(this);
 | 
						|
        if (opts.formats)
 | 
						|
            addInitialFormats.call(this);
 | 
						|
        this._addVocabularies();
 | 
						|
        this._addDefaultMetaSchema();
 | 
						|
        if (opts.keywords)
 | 
						|
            addInitialKeywords.call(this, opts.keywords);
 | 
						|
        if (typeof opts.meta == "object")
 | 
						|
            this.addMetaSchema(opts.meta);
 | 
						|
        addInitialSchemas.call(this);
 | 
						|
        opts.validateFormats = formatOpt;
 | 
						|
    }
 | 
						|
    _addVocabularies() {
 | 
						|
        this.addKeyword("$async");
 | 
						|
    }
 | 
						|
    _addDefaultMetaSchema() {
 | 
						|
        const { $data, meta, schemaId } = this.opts;
 | 
						|
        let _dataRefSchema = $dataRefSchema;
 | 
						|
        if (schemaId === "id") {
 | 
						|
            _dataRefSchema = { ...$dataRefSchema };
 | 
						|
            _dataRefSchema.id = _dataRefSchema.$id;
 | 
						|
            delete _dataRefSchema.$id;
 | 
						|
        }
 | 
						|
        if (meta && $data)
 | 
						|
            this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);
 | 
						|
    }
 | 
						|
    defaultMeta() {
 | 
						|
        const { meta, schemaId } = this.opts;
 | 
						|
        return (this.opts.defaultMeta = typeof meta == "object" ? meta[schemaId] || meta : undefined);
 | 
						|
    }
 | 
						|
    validate(schemaKeyRef, // key, ref or schema object
 | 
						|
    // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
 | 
						|
    data // to be validated
 | 
						|
    ) {
 | 
						|
        let v;
 | 
						|
        if (typeof schemaKeyRef == "string") {
 | 
						|
            v = this.getSchema(schemaKeyRef);
 | 
						|
            if (!v)
 | 
						|
                throw new Error(`no schema with key or ref "${schemaKeyRef}"`);
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            v = this.compile(schemaKeyRef);
 | 
						|
        }
 | 
						|
        const valid = v(data);
 | 
						|
        if (!("$async" in v))
 | 
						|
            this.errors = v.errors;
 | 
						|
        return valid;
 | 
						|
    }
 | 
						|
    compile(schema, _meta) {
 | 
						|
        const sch = this._addSchema(schema, _meta);
 | 
						|
        return (sch.validate || this._compileSchemaEnv(sch));
 | 
						|
    }
 | 
						|
    compileAsync(schema, meta) {
 | 
						|
        if (typeof this.opts.loadSchema != "function") {
 | 
						|
            throw new Error("options.loadSchema should be a function");
 | 
						|
        }
 | 
						|
        const { loadSchema } = this.opts;
 | 
						|
        return runCompileAsync.call(this, schema, meta);
 | 
						|
        async function runCompileAsync(_schema, _meta) {
 | 
						|
            await loadMetaSchema.call(this, _schema.$schema);
 | 
						|
            const sch = this._addSchema(_schema, _meta);
 | 
						|
            return sch.validate || _compileAsync.call(this, sch);
 | 
						|
        }
 | 
						|
        async function loadMetaSchema($ref) {
 | 
						|
            if ($ref && !this.getSchema($ref)) {
 | 
						|
                await runCompileAsync.call(this, { $ref }, true);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        async function _compileAsync(sch) {
 | 
						|
            try {
 | 
						|
                return this._compileSchemaEnv(sch);
 | 
						|
            }
 | 
						|
            catch (e) {
 | 
						|
                if (!(e instanceof ref_error_1.default))
 | 
						|
                    throw e;
 | 
						|
                checkLoaded.call(this, e);
 | 
						|
                await loadMissingSchema.call(this, e.missingSchema);
 | 
						|
                return _compileAsync.call(this, sch);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function checkLoaded({ missingSchema: ref, missingRef }) {
 | 
						|
            if (this.refs[ref]) {
 | 
						|
                throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        async function loadMissingSchema(ref) {
 | 
						|
            const _schema = await _loadSchema.call(this, ref);
 | 
						|
            if (!this.refs[ref])
 | 
						|
                await loadMetaSchema.call(this, _schema.$schema);
 | 
						|
            if (!this.refs[ref])
 | 
						|
                this.addSchema(_schema, ref, meta);
 | 
						|
        }
 | 
						|
        async function _loadSchema(ref) {
 | 
						|
            const p = this._loading[ref];
 | 
						|
            if (p)
 | 
						|
                return p;
 | 
						|
            try {
 | 
						|
                return await (this._loading[ref] = loadSchema(ref));
 | 
						|
            }
 | 
						|
            finally {
 | 
						|
                delete this._loading[ref];
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    // Adds schema to the instance
 | 
						|
    addSchema(schema, // If array is passed, `key` will be ignored
 | 
						|
    key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
 | 
						|
    _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
 | 
						|
    _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.
 | 
						|
    ) {
 | 
						|
        if (Array.isArray(schema)) {
 | 
						|
            for (const sch of schema)
 | 
						|
                this.addSchema(sch, undefined, _meta, _validateSchema);
 | 
						|
            return this;
 | 
						|
        }
 | 
						|
        let id;
 | 
						|
        if (typeof schema === "object") {
 | 
						|
            const { schemaId } = this.opts;
 | 
						|
            id = schema[schemaId];
 | 
						|
            if (id !== undefined && typeof id != "string") {
 | 
						|
                throw new Error(`schema ${schemaId} must be string`);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        key = (0, resolve_1.normalizeId)(key || id);
 | 
						|
        this._checkUnique(key);
 | 
						|
        this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // Add schema that will be used to validate other schemas
 | 
						|
    // options in META_IGNORE_OPTIONS are alway set to false
 | 
						|
    addMetaSchema(schema, key, // schema key
 | 
						|
    _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema
 | 
						|
    ) {
 | 
						|
        this.addSchema(schema, key, true, _validateSchema);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    //  Validate schema against its meta-schema
 | 
						|
    validateSchema(schema, throwOrLogError) {
 | 
						|
        if (typeof schema == "boolean")
 | 
						|
            return true;
 | 
						|
        let $schema;
 | 
						|
        $schema = schema.$schema;
 | 
						|
        if ($schema !== undefined && typeof $schema != "string") {
 | 
						|
            throw new Error("$schema must be a string");
 | 
						|
        }
 | 
						|
        $schema = $schema || this.opts.defaultMeta || this.defaultMeta();
 | 
						|
        if (!$schema) {
 | 
						|
            this.logger.warn("meta-schema not available");
 | 
						|
            this.errors = null;
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        const valid = this.validate($schema, schema);
 | 
						|
        if (!valid && throwOrLogError) {
 | 
						|
            const message = "schema is invalid: " + this.errorsText();
 | 
						|
            if (this.opts.validateSchema === "log")
 | 
						|
                this.logger.error(message);
 | 
						|
            else
 | 
						|
                throw new Error(message);
 | 
						|
        }
 | 
						|
        return valid;
 | 
						|
    }
 | 
						|
    // Get compiled schema by `key` or `ref`.
 | 
						|
    // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)
 | 
						|
    getSchema(keyRef) {
 | 
						|
        let sch;
 | 
						|
        while (typeof (sch = getSchEnv.call(this, keyRef)) == "string")
 | 
						|
            keyRef = sch;
 | 
						|
        if (sch === undefined) {
 | 
						|
            const { schemaId } = this.opts;
 | 
						|
            const root = new compile_1.SchemaEnv({ schema: {}, schemaId });
 | 
						|
            sch = compile_1.resolveSchema.call(this, root, keyRef);
 | 
						|
            if (!sch)
 | 
						|
                return;
 | 
						|
            this.refs[keyRef] = sch;
 | 
						|
        }
 | 
						|
        return (sch.validate || this._compileSchemaEnv(sch));
 | 
						|
    }
 | 
						|
    // Remove cached schema(s).
 | 
						|
    // If no parameter is passed all schemas but meta-schemas are removed.
 | 
						|
    // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
 | 
						|
    // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
 | 
						|
    removeSchema(schemaKeyRef) {
 | 
						|
        if (schemaKeyRef instanceof RegExp) {
 | 
						|
            this._removeAllSchemas(this.schemas, schemaKeyRef);
 | 
						|
            this._removeAllSchemas(this.refs, schemaKeyRef);
 | 
						|
            return this;
 | 
						|
        }
 | 
						|
        switch (typeof schemaKeyRef) {
 | 
						|
            case "undefined":
 | 
						|
                this._removeAllSchemas(this.schemas);
 | 
						|
                this._removeAllSchemas(this.refs);
 | 
						|
                this._cache.clear();
 | 
						|
                return this;
 | 
						|
            case "string": {
 | 
						|
                const sch = getSchEnv.call(this, schemaKeyRef);
 | 
						|
                if (typeof sch == "object")
 | 
						|
                    this._cache.delete(sch.schema);
 | 
						|
                delete this.schemas[schemaKeyRef];
 | 
						|
                delete this.refs[schemaKeyRef];
 | 
						|
                return this;
 | 
						|
            }
 | 
						|
            case "object": {
 | 
						|
                const cacheKey = schemaKeyRef;
 | 
						|
                this._cache.delete(cacheKey);
 | 
						|
                let id = schemaKeyRef[this.opts.schemaId];
 | 
						|
                if (id) {
 | 
						|
                    id = (0, resolve_1.normalizeId)(id);
 | 
						|
                    delete this.schemas[id];
 | 
						|
                    delete this.refs[id];
 | 
						|
                }
 | 
						|
                return this;
 | 
						|
            }
 | 
						|
            default:
 | 
						|
                throw new Error("ajv.removeSchema: invalid parameter");
 | 
						|
        }
 | 
						|
    }
 | 
						|
    // add "vocabulary" - a collection of keywords
 | 
						|
    addVocabulary(definitions) {
 | 
						|
        for (const def of definitions)
 | 
						|
            this.addKeyword(def);
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    addKeyword(kwdOrDef, def // deprecated
 | 
						|
    ) {
 | 
						|
        let keyword;
 | 
						|
        if (typeof kwdOrDef == "string") {
 | 
						|
            keyword = kwdOrDef;
 | 
						|
            if (typeof def == "object") {
 | 
						|
                this.logger.warn("these parameters are deprecated, see docs for addKeyword");
 | 
						|
                def.keyword = keyword;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        else if (typeof kwdOrDef == "object" && def === undefined) {
 | 
						|
            def = kwdOrDef;
 | 
						|
            keyword = def.keyword;
 | 
						|
            if (Array.isArray(keyword) && !keyword.length) {
 | 
						|
                throw new Error("addKeywords: keyword must be string or non-empty array");
 | 
						|
            }
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            throw new Error("invalid addKeywords parameters");
 | 
						|
        }
 | 
						|
        checkKeyword.call(this, keyword, def);
 | 
						|
        if (!def) {
 | 
						|
            (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));
 | 
						|
            return this;
 | 
						|
        }
 | 
						|
        keywordMetaschema.call(this, def);
 | 
						|
        const definition = {
 | 
						|
            ...def,
 | 
						|
            type: (0, dataType_1.getJSONTypes)(def.type),
 | 
						|
            schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),
 | 
						|
        };
 | 
						|
        (0, util_1.eachItem)(keyword, definition.type.length === 0
 | 
						|
            ? (k) => addRule.call(this, k, definition)
 | 
						|
            : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    getKeyword(keyword) {
 | 
						|
        const rule = this.RULES.all[keyword];
 | 
						|
        return typeof rule == "object" ? rule.definition : !!rule;
 | 
						|
    }
 | 
						|
    // Remove keyword
 | 
						|
    removeKeyword(keyword) {
 | 
						|
        // TODO return type should be Ajv
 | 
						|
        const { RULES } = this;
 | 
						|
        delete RULES.keywords[keyword];
 | 
						|
        delete RULES.all[keyword];
 | 
						|
        for (const group of RULES.rules) {
 | 
						|
            const i = group.rules.findIndex((rule) => rule.keyword === keyword);
 | 
						|
            if (i >= 0)
 | 
						|
                group.rules.splice(i, 1);
 | 
						|
        }
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    // Add format
 | 
						|
    addFormat(name, format) {
 | 
						|
        if (typeof format == "string")
 | 
						|
            format = new RegExp(format);
 | 
						|
        this.formats[name] = format;
 | 
						|
        return this;
 | 
						|
    }
 | 
						|
    errorsText(errors = this.errors, // optional array of validation errors
 | 
						|
    { separator = ", ", dataVar = "data" } = {} // optional options with properties `separator` and `dataVar`
 | 
						|
    ) {
 | 
						|
        if (!errors || errors.length === 0)
 | 
						|
            return "No errors";
 | 
						|
        return errors
 | 
						|
            .map((e) => `${dataVar}${e.instancePath} ${e.message}`)
 | 
						|
            .reduce((text, msg) => text + separator + msg);
 | 
						|
    }
 | 
						|
    $dataMetaSchema(metaSchema, keywordsJsonPointers) {
 | 
						|
        const rules = this.RULES.all;
 | 
						|
        metaSchema = JSON.parse(JSON.stringify(metaSchema));
 | 
						|
        for (const jsonPointer of keywordsJsonPointers) {
 | 
						|
            const segments = jsonPointer.split("/").slice(1); // first segment is an empty string
 | 
						|
            let keywords = metaSchema;
 | 
						|
            for (const seg of segments)
 | 
						|
                keywords = keywords[seg];
 | 
						|
            for (const key in rules) {
 | 
						|
                const rule = rules[key];
 | 
						|
                if (typeof rule != "object")
 | 
						|
                    continue;
 | 
						|
                const { $data } = rule.definition;
 | 
						|
                const schema = keywords[key];
 | 
						|
                if ($data && schema)
 | 
						|
                    keywords[key] = schemaOrData(schema);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return metaSchema;
 | 
						|
    }
 | 
						|
    _removeAllSchemas(schemas, regex) {
 | 
						|
        for (const keyRef in schemas) {
 | 
						|
            const sch = schemas[keyRef];
 | 
						|
            if (!regex || regex.test(keyRef)) {
 | 
						|
                if (typeof sch == "string") {
 | 
						|
                    delete schemas[keyRef];
 | 
						|
                }
 | 
						|
                else if (sch && !sch.meta) {
 | 
						|
                    this._cache.delete(sch.schema);
 | 
						|
                    delete schemas[keyRef];
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {
 | 
						|
        let id;
 | 
						|
        const { schemaId } = this.opts;
 | 
						|
        if (typeof schema == "object") {
 | 
						|
            id = schema[schemaId];
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            if (this.opts.jtd)
 | 
						|
                throw new Error("schema must be object");
 | 
						|
            else if (typeof schema != "boolean")
 | 
						|
                throw new Error("schema must be object or boolean");
 | 
						|
        }
 | 
						|
        let sch = this._cache.get(schema);
 | 
						|
        if (sch !== undefined)
 | 
						|
            return sch;
 | 
						|
        baseId = (0, resolve_1.normalizeId)(id || baseId);
 | 
						|
        const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);
 | 
						|
        sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });
 | 
						|
        this._cache.set(sch.schema, sch);
 | 
						|
        if (addSchema && !baseId.startsWith("#")) {
 | 
						|
            // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)
 | 
						|
            if (baseId)
 | 
						|
                this._checkUnique(baseId);
 | 
						|
            this.refs[baseId] = sch;
 | 
						|
        }
 | 
						|
        if (validateSchema)
 | 
						|
            this.validateSchema(schema, true);
 | 
						|
        return sch;
 | 
						|
    }
 | 
						|
    _checkUnique(id) {
 | 
						|
        if (this.schemas[id] || this.refs[id]) {
 | 
						|
            throw new Error(`schema with key or id "${id}" already exists`);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    _compileSchemaEnv(sch) {
 | 
						|
        if (sch.meta)
 | 
						|
            this._compileMetaSchema(sch);
 | 
						|
        else
 | 
						|
            compile_1.compileSchema.call(this, sch);
 | 
						|
        /* istanbul ignore if */
 | 
						|
        if (!sch.validate)
 | 
						|
            throw new Error("ajv implementation error");
 | 
						|
        return sch.validate;
 | 
						|
    }
 | 
						|
    _compileMetaSchema(sch) {
 | 
						|
        const currentOpts = this.opts;
 | 
						|
        this.opts = this._metaOpts;
 | 
						|
        try {
 | 
						|
            compile_1.compileSchema.call(this, sch);
 | 
						|
        }
 | 
						|
        finally {
 | 
						|
            this.opts = currentOpts;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
Ajv.ValidationError = validation_error_1.default;
 | 
						|
Ajv.MissingRefError = ref_error_1.default;
 | 
						|
exports["default"] = Ajv;
 | 
						|
function checkOptions(checkOpts, options, msg, log = "error") {
 | 
						|
    for (const key in checkOpts) {
 | 
						|
        const opt = key;
 | 
						|
        if (opt in options)
 | 
						|
            this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);
 | 
						|
    }
 | 
						|
}
 | 
						|
function getSchEnv(keyRef) {
 | 
						|
    keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line
 | 
						|
    return this.schemas[keyRef] || this.refs[keyRef];
 | 
						|
}
 | 
						|
function addInitialSchemas() {
 | 
						|
    const optsSchemas = this.opts.schemas;
 | 
						|
    if (!optsSchemas)
 | 
						|
        return;
 | 
						|
    if (Array.isArray(optsSchemas))
 | 
						|
        this.addSchema(optsSchemas);
 | 
						|
    else
 | 
						|
        for (const key in optsSchemas)
 | 
						|
            this.addSchema(optsSchemas[key], key);
 | 
						|
}
 | 
						|
function addInitialFormats() {
 | 
						|
    for (const name in this.opts.formats) {
 | 
						|
        const format = this.opts.formats[name];
 | 
						|
        if (format)
 | 
						|
            this.addFormat(name, format);
 | 
						|
    }
 | 
						|
}
 | 
						|
function addInitialKeywords(defs) {
 | 
						|
    if (Array.isArray(defs)) {
 | 
						|
        this.addVocabulary(defs);
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    this.logger.warn("keywords option as map is deprecated, pass array");
 | 
						|
    for (const keyword in defs) {
 | 
						|
        const def = defs[keyword];
 | 
						|
        if (!def.keyword)
 | 
						|
            def.keyword = keyword;
 | 
						|
        this.addKeyword(def);
 | 
						|
    }
 | 
						|
}
 | 
						|
function getMetaSchemaOptions() {
 | 
						|
    const metaOpts = { ...this.opts };
 | 
						|
    for (const opt of META_IGNORE_OPTIONS)
 | 
						|
        delete metaOpts[opt];
 | 
						|
    return metaOpts;
 | 
						|
}
 | 
						|
const noLogs = { log() { }, warn() { }, error() { } };
 | 
						|
function getLogger(logger) {
 | 
						|
    if (logger === false)
 | 
						|
        return noLogs;
 | 
						|
    if (logger === undefined)
 | 
						|
        return console;
 | 
						|
    if (logger.log && logger.warn && logger.error)
 | 
						|
        return logger;
 | 
						|
    throw new Error("logger must implement log, warn and error methods");
 | 
						|
}
 | 
						|
const KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;
 | 
						|
function checkKeyword(keyword, def) {
 | 
						|
    const { RULES } = this;
 | 
						|
    (0, util_1.eachItem)(keyword, (kwd) => {
 | 
						|
        if (RULES.keywords[kwd])
 | 
						|
            throw new Error(`Keyword ${kwd} is already defined`);
 | 
						|
        if (!KEYWORD_NAME.test(kwd))
 | 
						|
            throw new Error(`Keyword ${kwd} has invalid name`);
 | 
						|
    });
 | 
						|
    if (!def)
 | 
						|
        return;
 | 
						|
    if (def.$data && !("code" in def || "validate" in def)) {
 | 
						|
        throw new Error('$data keyword must have "code" or "validate" function');
 | 
						|
    }
 | 
						|
}
 | 
						|
function addRule(keyword, definition, dataType) {
 | 
						|
    var _a;
 | 
						|
    const post = definition === null || definition === void 0 ? void 0 : definition.post;
 | 
						|
    if (dataType && post)
 | 
						|
        throw new Error('keyword with "post" flag cannot have "type"');
 | 
						|
    const { RULES } = this;
 | 
						|
    let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);
 | 
						|
    if (!ruleGroup) {
 | 
						|
        ruleGroup = { type: dataType, rules: [] };
 | 
						|
        RULES.rules.push(ruleGroup);
 | 
						|
    }
 | 
						|
    RULES.keywords[keyword] = true;
 | 
						|
    if (!definition)
 | 
						|
        return;
 | 
						|
    const rule = {
 | 
						|
        keyword,
 | 
						|
        definition: {
 | 
						|
            ...definition,
 | 
						|
            type: (0, dataType_1.getJSONTypes)(definition.type),
 | 
						|
            schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),
 | 
						|
        },
 | 
						|
    };
 | 
						|
    if (definition.before)
 | 
						|
        addBeforeRule.call(this, ruleGroup, rule, definition.before);
 | 
						|
    else
 | 
						|
        ruleGroup.rules.push(rule);
 | 
						|
    RULES.all[keyword] = rule;
 | 
						|
    (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));
 | 
						|
}
 | 
						|
function addBeforeRule(ruleGroup, rule, before) {
 | 
						|
    const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);
 | 
						|
    if (i >= 0) {
 | 
						|
        ruleGroup.rules.splice(i, 0, rule);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        ruleGroup.rules.push(rule);
 | 
						|
        this.logger.warn(`rule ${before} is not defined`);
 | 
						|
    }
 | 
						|
}
 | 
						|
function keywordMetaschema(def) {
 | 
						|
    let { metaSchema } = def;
 | 
						|
    if (metaSchema === undefined)
 | 
						|
        return;
 | 
						|
    if (def.$data && this.opts.$data)
 | 
						|
        metaSchema = schemaOrData(metaSchema);
 | 
						|
    def.validateSchema = this.compile(metaSchema, true);
 | 
						|
}
 | 
						|
const $dataRef = {
 | 
						|
    $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
 | 
						|
};
 | 
						|
function schemaOrData(schema) {
 | 
						|
    return { anyOf: [schema, $dataRef] };
 | 
						|
}
 | 
						|
//# sourceMappingURL=core.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 59586:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
// https://github.com/ajv-validator/ajv/issues/889
 | 
						|
const equal = __webpack_require__(66471);
 | 
						|
equal.code = 'require("ajv/dist/runtime/equal").default';
 | 
						|
exports["default"] = equal;
 | 
						|
//# sourceMappingURL=equal.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 20680:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
// https://mathiasbynens.be/notes/javascript-encoding
 | 
						|
// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
 | 
						|
function ucs2length(str) {
 | 
						|
    const len = str.length;
 | 
						|
    let length = 0;
 | 
						|
    let pos = 0;
 | 
						|
    let value;
 | 
						|
    while (pos < len) {
 | 
						|
        length++;
 | 
						|
        value = str.charCodeAt(pos++);
 | 
						|
        if (value >= 0xd800 && value <= 0xdbff && pos < len) {
 | 
						|
            // high surrogate, and there is a next character
 | 
						|
            value = str.charCodeAt(pos);
 | 
						|
            if ((value & 0xfc00) === 0xdc00)
 | 
						|
                pos++; // low surrogate
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return length;
 | 
						|
}
 | 
						|
exports["default"] = ucs2length;
 | 
						|
ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
 | 
						|
//# sourceMappingURL=ucs2length.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 42658:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const uri = __webpack_require__(83745);
 | 
						|
uri.code = 'require("ajv/dist/runtime/uri").default';
 | 
						|
exports["default"] = uri;
 | 
						|
//# sourceMappingURL=uri.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 17766:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
class ValidationError extends Error {
 | 
						|
    constructor(errors) {
 | 
						|
        super("validation failed");
 | 
						|
        this.errors = errors;
 | 
						|
        this.ajv = this.validation = true;
 | 
						|
    }
 | 
						|
}
 | 
						|
exports["default"] = ValidationError;
 | 
						|
//# sourceMappingURL=validation_error.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 28145:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.validateAdditionalItems = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,
 | 
						|
    params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "additionalItems",
 | 
						|
    type: "array",
 | 
						|
    schemaType: ["boolean", "object"],
 | 
						|
    before: "uniqueItems",
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { parentSchema, it } = cxt;
 | 
						|
        const { items } = parentSchema;
 | 
						|
        if (!Array.isArray(items)) {
 | 
						|
            (0, util_1.checkStrictMode)(it, '"additionalItems" is ignored when "items" is not an array of schemas');
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        validateAdditionalItems(cxt, items);
 | 
						|
    },
 | 
						|
};
 | 
						|
function validateAdditionalItems(cxt, items) {
 | 
						|
    const { gen, schema, data, keyword, it } = cxt;
 | 
						|
    it.items = true;
 | 
						|
    const len = gen.const("len", (0, codegen_1._) `${data}.length`);
 | 
						|
    if (schema === false) {
 | 
						|
        cxt.setParams({ len: items.length });
 | 
						|
        cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);
 | 
						|
    }
 | 
						|
    else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
 | 
						|
        const valid = gen.var("valid", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var
 | 
						|
        gen.if((0, codegen_1.not)(valid), () => validateItems(valid));
 | 
						|
        cxt.ok(valid);
 | 
						|
    }
 | 
						|
    function validateItems(valid) {
 | 
						|
        gen.forRange("i", items.length, len, (i) => {
 | 
						|
            cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);
 | 
						|
            if (!it.allErrors)
 | 
						|
                gen.if((0, codegen_1.not)(valid), () => gen.break());
 | 
						|
        });
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.validateAdditionalItems = validateAdditionalItems;
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=additionalItems.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 2888:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: "must NOT have additional properties",
 | 
						|
    params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "additionalProperties",
 | 
						|
    type: ["object"],
 | 
						|
    schemaType: ["boolean", "object"],
 | 
						|
    allowUndefined: true,
 | 
						|
    trackErrors: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, parentSchema, data, errsCount, it } = cxt;
 | 
						|
        /* istanbul ignore if */
 | 
						|
        if (!errsCount)
 | 
						|
            throw new Error("ajv implementation error");
 | 
						|
        const { allErrors, opts } = it;
 | 
						|
        it.props = true;
 | 
						|
        if (opts.removeAdditional !== "all" && (0, util_1.alwaysValidSchema)(it, schema))
 | 
						|
            return;
 | 
						|
        const props = (0, code_1.allSchemaProperties)(parentSchema.properties);
 | 
						|
        const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);
 | 
						|
        checkAdditionalProperties();
 | 
						|
        cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);
 | 
						|
        function checkAdditionalProperties() {
 | 
						|
            gen.forIn("key", data, (key) => {
 | 
						|
                if (!props.length && !patProps.length)
 | 
						|
                    additionalPropertyCode(key);
 | 
						|
                else
 | 
						|
                    gen.if(isAdditional(key), () => additionalPropertyCode(key));
 | 
						|
            });
 | 
						|
        }
 | 
						|
        function isAdditional(key) {
 | 
						|
            let definedProp;
 | 
						|
            if (props.length > 8) {
 | 
						|
                // TODO maybe an option instead of hard-coded 8?
 | 
						|
                const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, "properties");
 | 
						|
                definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);
 | 
						|
            }
 | 
						|
            else if (props.length) {
 | 
						|
                definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                definedProp = codegen_1.nil;
 | 
						|
            }
 | 
						|
            if (patProps.length) {
 | 
						|
                definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));
 | 
						|
            }
 | 
						|
            return (0, codegen_1.not)(definedProp);
 | 
						|
        }
 | 
						|
        function deleteAdditional(key) {
 | 
						|
            gen.code((0, codegen_1._) `delete ${data}[${key}]`);
 | 
						|
        }
 | 
						|
        function additionalPropertyCode(key) {
 | 
						|
            if (opts.removeAdditional === "all" || (opts.removeAdditional && schema === false)) {
 | 
						|
                deleteAdditional(key);
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            if (schema === false) {
 | 
						|
                cxt.setParams({ additionalProperty: key });
 | 
						|
                cxt.error();
 | 
						|
                if (!allErrors)
 | 
						|
                    gen.break();
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
 | 
						|
                const valid = gen.name("valid");
 | 
						|
                if (opts.removeAdditional === "failing") {
 | 
						|
                    applyAdditionalSchema(key, valid, false);
 | 
						|
                    gen.if((0, codegen_1.not)(valid), () => {
 | 
						|
                        cxt.reset();
 | 
						|
                        deleteAdditional(key);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    applyAdditionalSchema(key, valid);
 | 
						|
                    if (!allErrors)
 | 
						|
                        gen.if((0, codegen_1.not)(valid), () => gen.break());
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function applyAdditionalSchema(key, valid, errors) {
 | 
						|
            const subschema = {
 | 
						|
                keyword: "additionalProperties",
 | 
						|
                dataProp: key,
 | 
						|
                dataPropType: util_1.Type.Str,
 | 
						|
            };
 | 
						|
            if (errors === false) {
 | 
						|
                Object.assign(subschema, {
 | 
						|
                    compositeRule: true,
 | 
						|
                    createErrors: false,
 | 
						|
                    allErrors: false,
 | 
						|
                });
 | 
						|
            }
 | 
						|
            cxt.subschema(subschema, valid);
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=additionalProperties.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 48402:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const def = {
 | 
						|
    keyword: "allOf",
 | 
						|
    schemaType: "array",
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, it } = cxt;
 | 
						|
        /* istanbul ignore if */
 | 
						|
        if (!Array.isArray(schema))
 | 
						|
            throw new Error("ajv implementation error");
 | 
						|
        const valid = gen.name("valid");
 | 
						|
        schema.forEach((sch, i) => {
 | 
						|
            if ((0, util_1.alwaysValidSchema)(it, sch))
 | 
						|
                return;
 | 
						|
            const schCxt = cxt.subschema({ keyword: "allOf", schemaProp: i }, valid);
 | 
						|
            cxt.ok(valid);
 | 
						|
            cxt.mergeEvaluated(schCxt);
 | 
						|
        });
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=allOf.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 82709:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const def = {
 | 
						|
    keyword: "anyOf",
 | 
						|
    schemaType: "array",
 | 
						|
    trackErrors: true,
 | 
						|
    code: code_1.validateUnion,
 | 
						|
    error: { message: "must match a schema in anyOf" },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=anyOf.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 54175:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: ({ params: { min, max } }) => max === undefined
 | 
						|
        ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`
 | 
						|
        : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,
 | 
						|
    params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "contains",
 | 
						|
    type: "array",
 | 
						|
    schemaType: ["object", "boolean"],
 | 
						|
    before: "uniqueItems",
 | 
						|
    trackErrors: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, parentSchema, data, it } = cxt;
 | 
						|
        let min;
 | 
						|
        let max;
 | 
						|
        const { minContains, maxContains } = parentSchema;
 | 
						|
        if (it.opts.next) {
 | 
						|
            min = minContains === undefined ? 1 : minContains;
 | 
						|
            max = maxContains;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            min = 1;
 | 
						|
        }
 | 
						|
        const len = gen.const("len", (0, codegen_1._) `${data}.length`);
 | 
						|
        cxt.setParams({ min, max });
 | 
						|
        if (max === undefined && min === 0) {
 | 
						|
            (0, util_1.checkStrictMode)(it, `"minContains" == 0 without "maxContains": "contains" keyword ignored`);
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        if (max !== undefined && min > max) {
 | 
						|
            (0, util_1.checkStrictMode)(it, `"minContains" > "maxContains" is always invalid`);
 | 
						|
            cxt.fail();
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, schema)) {
 | 
						|
            let cond = (0, codegen_1._) `${len} >= ${min}`;
 | 
						|
            if (max !== undefined)
 | 
						|
                cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;
 | 
						|
            cxt.pass(cond);
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        it.items = true;
 | 
						|
        const valid = gen.name("valid");
 | 
						|
        if (max === undefined && min === 1) {
 | 
						|
            validateItems(valid, () => gen.if(valid, () => gen.break()));
 | 
						|
        }
 | 
						|
        else if (min === 0) {
 | 
						|
            gen.let(valid, true);
 | 
						|
            if (max !== undefined)
 | 
						|
                gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            gen.let(valid, false);
 | 
						|
            validateItemsWithCount();
 | 
						|
        }
 | 
						|
        cxt.result(valid, () => cxt.reset());
 | 
						|
        function validateItemsWithCount() {
 | 
						|
            const schValid = gen.name("_valid");
 | 
						|
            const count = gen.let("count", 0);
 | 
						|
            validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));
 | 
						|
        }
 | 
						|
        function validateItems(_valid, block) {
 | 
						|
            gen.forRange("i", 0, len, (i) => {
 | 
						|
                cxt.subschema({
 | 
						|
                    keyword: "contains",
 | 
						|
                    dataProp: i,
 | 
						|
                    dataPropType: util_1.Type.Num,
 | 
						|
                    compositeRule: true,
 | 
						|
                }, _valid);
 | 
						|
                block();
 | 
						|
            });
 | 
						|
        }
 | 
						|
        function checkLimits(count) {
 | 
						|
            gen.code((0, codegen_1._) `${count}++`);
 | 
						|
            if (max === undefined) {
 | 
						|
                gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());
 | 
						|
                if (min === 1)
 | 
						|
                    gen.assign(valid, true);
 | 
						|
                else
 | 
						|
                    gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=contains.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 87747:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
exports.error = {
 | 
						|
    message: ({ params: { property, depsCount, deps } }) => {
 | 
						|
        const property_ies = depsCount === 1 ? "property" : "properties";
 | 
						|
        return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;
 | 
						|
    },
 | 
						|
    params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},
 | 
						|
    missingProperty: ${missingProperty},
 | 
						|
    depsCount: ${depsCount},
 | 
						|
    deps: ${deps}}`, // TODO change to reference
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "dependencies",
 | 
						|
    type: "object",
 | 
						|
    schemaType: "object",
 | 
						|
    error: exports.error,
 | 
						|
    code(cxt) {
 | 
						|
        const [propDeps, schDeps] = splitDependencies(cxt);
 | 
						|
        validatePropertyDeps(cxt, propDeps);
 | 
						|
        validateSchemaDeps(cxt, schDeps);
 | 
						|
    },
 | 
						|
};
 | 
						|
function splitDependencies({ schema }) {
 | 
						|
    const propertyDeps = {};
 | 
						|
    const schemaDeps = {};
 | 
						|
    for (const key in schema) {
 | 
						|
        if (key === "__proto__")
 | 
						|
            continue;
 | 
						|
        const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;
 | 
						|
        deps[key] = schema[key];
 | 
						|
    }
 | 
						|
    return [propertyDeps, schemaDeps];
 | 
						|
}
 | 
						|
function validatePropertyDeps(cxt, propertyDeps = cxt.schema) {
 | 
						|
    const { gen, data, it } = cxt;
 | 
						|
    if (Object.keys(propertyDeps).length === 0)
 | 
						|
        return;
 | 
						|
    const missing = gen.let("missing");
 | 
						|
    for (const prop in propertyDeps) {
 | 
						|
        const deps = propertyDeps[prop];
 | 
						|
        if (deps.length === 0)
 | 
						|
            continue;
 | 
						|
        const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);
 | 
						|
        cxt.setParams({
 | 
						|
            property: prop,
 | 
						|
            depsCount: deps.length,
 | 
						|
            deps: deps.join(", "),
 | 
						|
        });
 | 
						|
        if (it.allErrors) {
 | 
						|
            gen.if(hasProperty, () => {
 | 
						|
                for (const depProp of deps) {
 | 
						|
                    (0, code_1.checkReportMissingProp)(cxt, depProp);
 | 
						|
                }
 | 
						|
            });
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);
 | 
						|
            (0, code_1.reportMissingProp)(cxt, missing);
 | 
						|
            gen.else();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.validatePropertyDeps = validatePropertyDeps;
 | 
						|
function validateSchemaDeps(cxt, schemaDeps = cxt.schema) {
 | 
						|
    const { gen, data, keyword, it } = cxt;
 | 
						|
    const valid = gen.name("valid");
 | 
						|
    for (const prop in schemaDeps) {
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))
 | 
						|
            continue;
 | 
						|
        gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {
 | 
						|
            const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);
 | 
						|
            cxt.mergeValidEvaluated(schCxt, valid);
 | 
						|
        }, () => gen.var(valid, true) // TODO var
 | 
						|
        );
 | 
						|
        cxt.ok(valid);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.validateSchemaDeps = validateSchemaDeps;
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=dependencies.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 76441:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: ({ params }) => (0, codegen_1.str) `must match "${params.ifClause}" schema`,
 | 
						|
    params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "if",
 | 
						|
    schemaType: ["object", "boolean"],
 | 
						|
    trackErrors: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, parentSchema, it } = cxt;
 | 
						|
        if (parentSchema.then === undefined && parentSchema.else === undefined) {
 | 
						|
            (0, util_1.checkStrictMode)(it, '"if" without "then" and "else" is ignored');
 | 
						|
        }
 | 
						|
        const hasThen = hasSchema(it, "then");
 | 
						|
        const hasElse = hasSchema(it, "else");
 | 
						|
        if (!hasThen && !hasElse)
 | 
						|
            return;
 | 
						|
        const valid = gen.let("valid", true);
 | 
						|
        const schValid = gen.name("_valid");
 | 
						|
        validateIf();
 | 
						|
        cxt.reset();
 | 
						|
        if (hasThen && hasElse) {
 | 
						|
            const ifClause = gen.let("ifClause");
 | 
						|
            cxt.setParams({ ifClause });
 | 
						|
            gen.if(schValid, validateClause("then", ifClause), validateClause("else", ifClause));
 | 
						|
        }
 | 
						|
        else if (hasThen) {
 | 
						|
            gen.if(schValid, validateClause("then"));
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            gen.if((0, codegen_1.not)(schValid), validateClause("else"));
 | 
						|
        }
 | 
						|
        cxt.pass(valid, () => cxt.error(true));
 | 
						|
        function validateIf() {
 | 
						|
            const schCxt = cxt.subschema({
 | 
						|
                keyword: "if",
 | 
						|
                compositeRule: true,
 | 
						|
                createErrors: false,
 | 
						|
                allErrors: false,
 | 
						|
            }, schValid);
 | 
						|
            cxt.mergeEvaluated(schCxt);
 | 
						|
        }
 | 
						|
        function validateClause(keyword, ifClause) {
 | 
						|
            return () => {
 | 
						|
                const schCxt = cxt.subschema({ keyword }, schValid);
 | 
						|
                gen.assign(valid, schValid);
 | 
						|
                cxt.mergeValidEvaluated(schCxt, valid);
 | 
						|
                if (ifClause)
 | 
						|
                    gen.assign(ifClause, (0, codegen_1._) `${keyword}`);
 | 
						|
                else
 | 
						|
                    cxt.setParams({ ifClause: keyword });
 | 
						|
            };
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
function hasSchema(it, keyword) {
 | 
						|
    const schema = it.schema[keyword];
 | 
						|
    return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);
 | 
						|
}
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=if.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 75448:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const additionalItems_1 = __webpack_require__(28145);
 | 
						|
const prefixItems_1 = __webpack_require__(97903);
 | 
						|
const items_1 = __webpack_require__(96499);
 | 
						|
const items2020_1 = __webpack_require__(53493);
 | 
						|
const contains_1 = __webpack_require__(54175);
 | 
						|
const dependencies_1 = __webpack_require__(87747);
 | 
						|
const propertyNames_1 = __webpack_require__(28548);
 | 
						|
const additionalProperties_1 = __webpack_require__(2888);
 | 
						|
const properties_1 = __webpack_require__(5245);
 | 
						|
const patternProperties_1 = __webpack_require__(76797);
 | 
						|
const not_1 = __webpack_require__(19136);
 | 
						|
const anyOf_1 = __webpack_require__(82709);
 | 
						|
const oneOf_1 = __webpack_require__(18730);
 | 
						|
const allOf_1 = __webpack_require__(48402);
 | 
						|
const if_1 = __webpack_require__(76441);
 | 
						|
const thenElse_1 = __webpack_require__(95671);
 | 
						|
function getApplicator(draft2020 = false) {
 | 
						|
    const applicator = [
 | 
						|
        // any
 | 
						|
        not_1.default,
 | 
						|
        anyOf_1.default,
 | 
						|
        oneOf_1.default,
 | 
						|
        allOf_1.default,
 | 
						|
        if_1.default,
 | 
						|
        thenElse_1.default,
 | 
						|
        // object
 | 
						|
        propertyNames_1.default,
 | 
						|
        additionalProperties_1.default,
 | 
						|
        dependencies_1.default,
 | 
						|
        properties_1.default,
 | 
						|
        patternProperties_1.default,
 | 
						|
    ];
 | 
						|
    // array
 | 
						|
    if (draft2020)
 | 
						|
        applicator.push(prefixItems_1.default, items2020_1.default);
 | 
						|
    else
 | 
						|
        applicator.push(additionalItems_1.default, items_1.default);
 | 
						|
    applicator.push(contains_1.default);
 | 
						|
    return applicator;
 | 
						|
}
 | 
						|
exports["default"] = getApplicator;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 96499:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.validateTuple = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const def = {
 | 
						|
    keyword: "items",
 | 
						|
    type: "array",
 | 
						|
    schemaType: ["object", "array", "boolean"],
 | 
						|
    before: "uniqueItems",
 | 
						|
    code(cxt) {
 | 
						|
        const { schema, it } = cxt;
 | 
						|
        if (Array.isArray(schema))
 | 
						|
            return validateTuple(cxt, "additionalItems", schema);
 | 
						|
        it.items = true;
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, schema))
 | 
						|
            return;
 | 
						|
        cxt.ok((0, code_1.validateArray)(cxt));
 | 
						|
    },
 | 
						|
};
 | 
						|
function validateTuple(cxt, extraItems, schArr = cxt.schema) {
 | 
						|
    const { gen, parentSchema, data, keyword, it } = cxt;
 | 
						|
    checkStrictTuple(parentSchema);
 | 
						|
    if (it.opts.unevaluated && schArr.length && it.items !== true) {
 | 
						|
        it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);
 | 
						|
    }
 | 
						|
    const valid = gen.name("valid");
 | 
						|
    const len = gen.const("len", (0, codegen_1._) `${data}.length`);
 | 
						|
    schArr.forEach((sch, i) => {
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, sch))
 | 
						|
            return;
 | 
						|
        gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({
 | 
						|
            keyword,
 | 
						|
            schemaProp: i,
 | 
						|
            dataProp: i,
 | 
						|
        }, valid));
 | 
						|
        cxt.ok(valid);
 | 
						|
    });
 | 
						|
    function checkStrictTuple(sch) {
 | 
						|
        const { opts, errSchemaPath } = it;
 | 
						|
        const l = schArr.length;
 | 
						|
        const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);
 | 
						|
        if (opts.strictTuples && !fullTuple) {
 | 
						|
            const msg = `"${keyword}" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path "${errSchemaPath}"`;
 | 
						|
            (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.validateTuple = validateTuple;
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=items.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 53493:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const additionalItems_1 = __webpack_require__(28145);
 | 
						|
const error = {
 | 
						|
    message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,
 | 
						|
    params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "items",
 | 
						|
    type: "array",
 | 
						|
    schemaType: ["object", "boolean"],
 | 
						|
    before: "uniqueItems",
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { schema, parentSchema, it } = cxt;
 | 
						|
        const { prefixItems } = parentSchema;
 | 
						|
        it.items = true;
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, schema))
 | 
						|
            return;
 | 
						|
        if (prefixItems)
 | 
						|
            (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);
 | 
						|
        else
 | 
						|
            cxt.ok((0, code_1.validateArray)(cxt));
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=items2020.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 19136:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const def = {
 | 
						|
    keyword: "not",
 | 
						|
    schemaType: ["object", "boolean"],
 | 
						|
    trackErrors: true,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, it } = cxt;
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, schema)) {
 | 
						|
            cxt.fail();
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        const valid = gen.name("valid");
 | 
						|
        cxt.subschema({
 | 
						|
            keyword: "not",
 | 
						|
            compositeRule: true,
 | 
						|
            createErrors: false,
 | 
						|
            allErrors: false,
 | 
						|
        }, valid);
 | 
						|
        cxt.failResult(valid, () => cxt.reset(), () => cxt.error());
 | 
						|
    },
 | 
						|
    error: { message: "must NOT be valid" },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=not.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 18730:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: "must match exactly one schema in oneOf",
 | 
						|
    params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "oneOf",
 | 
						|
    schemaType: "array",
 | 
						|
    trackErrors: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, parentSchema, it } = cxt;
 | 
						|
        /* istanbul ignore if */
 | 
						|
        if (!Array.isArray(schema))
 | 
						|
            throw new Error("ajv implementation error");
 | 
						|
        if (it.opts.discriminator && parentSchema.discriminator)
 | 
						|
            return;
 | 
						|
        const schArr = schema;
 | 
						|
        const valid = gen.let("valid", false);
 | 
						|
        const passing = gen.let("passing", null);
 | 
						|
        const schValid = gen.name("_valid");
 | 
						|
        cxt.setParams({ passing });
 | 
						|
        // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas
 | 
						|
        gen.block(validateOneOf);
 | 
						|
        cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
 | 
						|
        function validateOneOf() {
 | 
						|
            schArr.forEach((sch, i) => {
 | 
						|
                let schCxt;
 | 
						|
                if ((0, util_1.alwaysValidSchema)(it, sch)) {
 | 
						|
                    gen.var(schValid, true);
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    schCxt = cxt.subschema({
 | 
						|
                        keyword: "oneOf",
 | 
						|
                        schemaProp: i,
 | 
						|
                        compositeRule: true,
 | 
						|
                    }, schValid);
 | 
						|
                }
 | 
						|
                if (i > 0) {
 | 
						|
                    gen
 | 
						|
                        .if((0, codegen_1._) `${schValid} && ${valid}`)
 | 
						|
                        .assign(valid, false)
 | 
						|
                        .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)
 | 
						|
                        .else();
 | 
						|
                }
 | 
						|
                gen.if(schValid, () => {
 | 
						|
                    gen.assign(valid, true);
 | 
						|
                    gen.assign(passing, i);
 | 
						|
                    if (schCxt)
 | 
						|
                        cxt.mergeEvaluated(schCxt, codegen_1.Name);
 | 
						|
                });
 | 
						|
            });
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=oneOf.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 76797:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const util_2 = __webpack_require__(20679);
 | 
						|
const def = {
 | 
						|
    keyword: "patternProperties",
 | 
						|
    type: "object",
 | 
						|
    schemaType: "object",
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, data, parentSchema, it } = cxt;
 | 
						|
        const { opts } = it;
 | 
						|
        const patterns = (0, code_1.allSchemaProperties)(schema);
 | 
						|
        const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));
 | 
						|
        if (patterns.length === 0 ||
 | 
						|
            (alwaysValidPatterns.length === patterns.length &&
 | 
						|
                (!it.opts.unevaluated || it.props === true))) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;
 | 
						|
        const valid = gen.name("valid");
 | 
						|
        if (it.props !== true && !(it.props instanceof codegen_1.Name)) {
 | 
						|
            it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);
 | 
						|
        }
 | 
						|
        const { props } = it;
 | 
						|
        validatePatternProperties();
 | 
						|
        function validatePatternProperties() {
 | 
						|
            for (const pat of patterns) {
 | 
						|
                if (checkProperties)
 | 
						|
                    checkMatchingProperties(pat);
 | 
						|
                if (it.allErrors) {
 | 
						|
                    validateProperties(pat);
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    gen.var(valid, true); // TODO var
 | 
						|
                    validateProperties(pat);
 | 
						|
                    gen.if(valid);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function checkMatchingProperties(pat) {
 | 
						|
            for (const prop in checkProperties) {
 | 
						|
                if (new RegExp(pat).test(prop)) {
 | 
						|
                    (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function validateProperties(pat) {
 | 
						|
            gen.forIn("key", data, (key) => {
 | 
						|
                gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {
 | 
						|
                    const alwaysValid = alwaysValidPatterns.includes(pat);
 | 
						|
                    if (!alwaysValid) {
 | 
						|
                        cxt.subschema({
 | 
						|
                            keyword: "patternProperties",
 | 
						|
                            schemaProp: pat,
 | 
						|
                            dataProp: key,
 | 
						|
                            dataPropType: util_2.Type.Str,
 | 
						|
                        }, valid);
 | 
						|
                    }
 | 
						|
                    if (it.opts.unevaluated && props !== true) {
 | 
						|
                        gen.assign((0, codegen_1._) `${props}[${key}]`, true);
 | 
						|
                    }
 | 
						|
                    else if (!alwaysValid && !it.allErrors) {
 | 
						|
                        // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)
 | 
						|
                        // or if all properties were evaluated (props === true)
 | 
						|
                        gen.if((0, codegen_1.not)(valid), () => gen.break());
 | 
						|
                    }
 | 
						|
                });
 | 
						|
            });
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=patternProperties.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 97903:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const items_1 = __webpack_require__(96499);
 | 
						|
const def = {
 | 
						|
    keyword: "prefixItems",
 | 
						|
    type: "array",
 | 
						|
    schemaType: ["array"],
 | 
						|
    before: "uniqueItems",
 | 
						|
    code: (cxt) => (0, items_1.validateTuple)(cxt, "items"),
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=prefixItems.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 5245:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const validate_1 = __webpack_require__(40764);
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const additionalProperties_1 = __webpack_require__(2888);
 | 
						|
const def = {
 | 
						|
    keyword: "properties",
 | 
						|
    type: "object",
 | 
						|
    schemaType: "object",
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, parentSchema, data, it } = cxt;
 | 
						|
        if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === undefined) {
 | 
						|
            additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties"));
 | 
						|
        }
 | 
						|
        const allProps = (0, code_1.allSchemaProperties)(schema);
 | 
						|
        for (const prop of allProps) {
 | 
						|
            it.definedProperties.add(prop);
 | 
						|
        }
 | 
						|
        if (it.opts.unevaluated && allProps.length && it.props !== true) {
 | 
						|
            it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);
 | 
						|
        }
 | 
						|
        const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));
 | 
						|
        if (properties.length === 0)
 | 
						|
            return;
 | 
						|
        const valid = gen.name("valid");
 | 
						|
        for (const prop of properties) {
 | 
						|
            if (hasDefault(prop)) {
 | 
						|
                applyPropertySchema(prop);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));
 | 
						|
                applyPropertySchema(prop);
 | 
						|
                if (!it.allErrors)
 | 
						|
                    gen.else().var(valid, true);
 | 
						|
                gen.endIf();
 | 
						|
            }
 | 
						|
            cxt.it.definedProperties.add(prop);
 | 
						|
            cxt.ok(valid);
 | 
						|
        }
 | 
						|
        function hasDefault(prop) {
 | 
						|
            return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;
 | 
						|
        }
 | 
						|
        function applyPropertySchema(prop) {
 | 
						|
            cxt.subschema({
 | 
						|
                keyword: "properties",
 | 
						|
                schemaProp: prop,
 | 
						|
                dataProp: prop,
 | 
						|
            }, valid);
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=properties.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 28548:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: "property name must be valid",
 | 
						|
    params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "propertyNames",
 | 
						|
    type: "object",
 | 
						|
    schemaType: ["object", "boolean"],
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, data, it } = cxt;
 | 
						|
        if ((0, util_1.alwaysValidSchema)(it, schema))
 | 
						|
            return;
 | 
						|
        const valid = gen.name("valid");
 | 
						|
        gen.forIn("key", data, (key) => {
 | 
						|
            cxt.setParams({ propertyName: key });
 | 
						|
            cxt.subschema({
 | 
						|
                keyword: "propertyNames",
 | 
						|
                data: key,
 | 
						|
                dataTypes: ["string"],
 | 
						|
                propertyName: key,
 | 
						|
                compositeRule: true,
 | 
						|
            }, valid);
 | 
						|
            gen.if((0, codegen_1.not)(valid), () => {
 | 
						|
                cxt.error(true);
 | 
						|
                if (!it.allErrors)
 | 
						|
                    gen.break();
 | 
						|
            });
 | 
						|
        });
 | 
						|
        cxt.ok(valid);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=propertyNames.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 95671:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const def = {
 | 
						|
    keyword: ["then", "else"],
 | 
						|
    schemaType: ["object", "boolean"],
 | 
						|
    code({ keyword, parentSchema, it }) {
 | 
						|
        if (parentSchema.if === undefined)
 | 
						|
            (0, util_1.checkStrictMode)(it, `"${keyword}" without "if" is ignored`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=thenElse.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 36704:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const util_2 = __webpack_require__(20679);
 | 
						|
function checkReportMissingProp(cxt, prop) {
 | 
						|
    const { gen, data, it } = cxt;
 | 
						|
    gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {
 | 
						|
        cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);
 | 
						|
        cxt.error();
 | 
						|
    });
 | 
						|
}
 | 
						|
exports.checkReportMissingProp = checkReportMissingProp;
 | 
						|
function checkMissingProp({ gen, data, it: { opts } }, properties, missing) {
 | 
						|
    return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));
 | 
						|
}
 | 
						|
exports.checkMissingProp = checkMissingProp;
 | 
						|
function reportMissingProp(cxt, missing) {
 | 
						|
    cxt.setParams({ missingProperty: missing }, true);
 | 
						|
    cxt.error();
 | 
						|
}
 | 
						|
exports.reportMissingProp = reportMissingProp;
 | 
						|
function hasPropFunc(gen) {
 | 
						|
    return gen.scopeValue("func", {
 | 
						|
        // eslint-disable-next-line @typescript-eslint/unbound-method
 | 
						|
        ref: Object.prototype.hasOwnProperty,
 | 
						|
        code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,
 | 
						|
    });
 | 
						|
}
 | 
						|
exports.hasPropFunc = hasPropFunc;
 | 
						|
function isOwnProperty(gen, data, property) {
 | 
						|
    return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;
 | 
						|
}
 | 
						|
exports.isOwnProperty = isOwnProperty;
 | 
						|
function propertyInData(gen, data, property, ownProperties) {
 | 
						|
    const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;
 | 
						|
    return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;
 | 
						|
}
 | 
						|
exports.propertyInData = propertyInData;
 | 
						|
function noPropertyInData(gen, data, property, ownProperties) {
 | 
						|
    const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;
 | 
						|
    return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;
 | 
						|
}
 | 
						|
exports.noPropertyInData = noPropertyInData;
 | 
						|
function allSchemaProperties(schemaMap) {
 | 
						|
    return schemaMap ? Object.keys(schemaMap).filter((p) => p !== "__proto__") : [];
 | 
						|
}
 | 
						|
exports.allSchemaProperties = allSchemaProperties;
 | 
						|
function schemaProperties(it, schemaMap) {
 | 
						|
    return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));
 | 
						|
}
 | 
						|
exports.schemaProperties = schemaProperties;
 | 
						|
function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {
 | 
						|
    const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;
 | 
						|
    const valCxt = [
 | 
						|
        [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],
 | 
						|
        [names_1.default.parentData, it.parentData],
 | 
						|
        [names_1.default.parentDataProperty, it.parentDataProperty],
 | 
						|
        [names_1.default.rootData, names_1.default.rootData],
 | 
						|
    ];
 | 
						|
    if (it.opts.dynamicRef)
 | 
						|
        valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);
 | 
						|
    const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;
 | 
						|
    return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;
 | 
						|
}
 | 
						|
exports.callValidateCode = callValidateCode;
 | 
						|
const newRegExp = (0, codegen_1._) `new RegExp`;
 | 
						|
function usePattern({ gen, it: { opts } }, pattern) {
 | 
						|
    const u = opts.unicodeRegExp ? "u" : "";
 | 
						|
    const { regExp } = opts.code;
 | 
						|
    const rx = regExp(pattern, u);
 | 
						|
    return gen.scopeValue("pattern", {
 | 
						|
        key: rx.toString(),
 | 
						|
        ref: rx,
 | 
						|
        code: (0, codegen_1._) `${regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,
 | 
						|
    });
 | 
						|
}
 | 
						|
exports.usePattern = usePattern;
 | 
						|
function validateArray(cxt) {
 | 
						|
    const { gen, data, keyword, it } = cxt;
 | 
						|
    const valid = gen.name("valid");
 | 
						|
    if (it.allErrors) {
 | 
						|
        const validArr = gen.let("valid", true);
 | 
						|
        validateItems(() => gen.assign(validArr, false));
 | 
						|
        return validArr;
 | 
						|
    }
 | 
						|
    gen.var(valid, true);
 | 
						|
    validateItems(() => gen.break());
 | 
						|
    return valid;
 | 
						|
    function validateItems(notValid) {
 | 
						|
        const len = gen.const("len", (0, codegen_1._) `${data}.length`);
 | 
						|
        gen.forRange("i", 0, len, (i) => {
 | 
						|
            cxt.subschema({
 | 
						|
                keyword,
 | 
						|
                dataProp: i,
 | 
						|
                dataPropType: util_1.Type.Num,
 | 
						|
            }, valid);
 | 
						|
            gen.if((0, codegen_1.not)(valid), notValid);
 | 
						|
        });
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.validateArray = validateArray;
 | 
						|
function validateUnion(cxt) {
 | 
						|
    const { gen, schema, keyword, it } = cxt;
 | 
						|
    /* istanbul ignore if */
 | 
						|
    if (!Array.isArray(schema))
 | 
						|
        throw new Error("ajv implementation error");
 | 
						|
    const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));
 | 
						|
    if (alwaysValid && !it.opts.unevaluated)
 | 
						|
        return;
 | 
						|
    const valid = gen.let("valid", false);
 | 
						|
    const schValid = gen.name("_valid");
 | 
						|
    gen.block(() => schema.forEach((_sch, i) => {
 | 
						|
        const schCxt = cxt.subschema({
 | 
						|
            keyword,
 | 
						|
            schemaProp: i,
 | 
						|
            compositeRule: true,
 | 
						|
        }, schValid);
 | 
						|
        gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);
 | 
						|
        const merged = cxt.mergeValidEvaluated(schCxt, schValid);
 | 
						|
        // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)
 | 
						|
        // or if all properties and items were evaluated (it.props === true && it.items === true)
 | 
						|
        if (!merged)
 | 
						|
            gen.if((0, codegen_1.not)(valid));
 | 
						|
    }));
 | 
						|
    cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
 | 
						|
}
 | 
						|
exports.validateUnion = validateUnion;
 | 
						|
//# sourceMappingURL=code.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 40960:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const def = {
 | 
						|
    keyword: "id",
 | 
						|
    code() {
 | 
						|
        throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID');
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=id.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 18243:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const id_1 = __webpack_require__(40960);
 | 
						|
const ref_1 = __webpack_require__(15534);
 | 
						|
const core = [
 | 
						|
    "$schema",
 | 
						|
    "$id",
 | 
						|
    "$defs",
 | 
						|
    "$vocabulary",
 | 
						|
    { keyword: "$comment" },
 | 
						|
    "definitions",
 | 
						|
    id_1.default,
 | 
						|
    ref_1.default,
 | 
						|
];
 | 
						|
exports["default"] = core;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 15534:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.callRef = exports.getValidate = void 0;
 | 
						|
const ref_error_1 = __webpack_require__(26317);
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const names_1 = __webpack_require__(3948);
 | 
						|
const compile_1 = __webpack_require__(50052);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const def = {
 | 
						|
    keyword: "$ref",
 | 
						|
    schemaType: "string",
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema: $ref, it } = cxt;
 | 
						|
        const { baseId, schemaEnv: env, validateName, opts, self } = it;
 | 
						|
        const { root } = env;
 | 
						|
        if (($ref === "#" || $ref === "#/") && baseId === root.baseId)
 | 
						|
            return callRootRef();
 | 
						|
        const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);
 | 
						|
        if (schOrEnv === undefined)
 | 
						|
            throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);
 | 
						|
        if (schOrEnv instanceof compile_1.SchemaEnv)
 | 
						|
            return callValidate(schOrEnv);
 | 
						|
        return inlineRefSchema(schOrEnv);
 | 
						|
        function callRootRef() {
 | 
						|
            if (env === root)
 | 
						|
                return callRef(cxt, validateName, env, env.$async);
 | 
						|
            const rootName = gen.scopeValue("root", { ref: root });
 | 
						|
            return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);
 | 
						|
        }
 | 
						|
        function callValidate(sch) {
 | 
						|
            const v = getValidate(cxt, sch);
 | 
						|
            callRef(cxt, v, sch, sch.$async);
 | 
						|
        }
 | 
						|
        function inlineRefSchema(sch) {
 | 
						|
            const schName = gen.scopeValue("schema", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });
 | 
						|
            const valid = gen.name("valid");
 | 
						|
            const schCxt = cxt.subschema({
 | 
						|
                schema: sch,
 | 
						|
                dataTypes: [],
 | 
						|
                schemaPath: codegen_1.nil,
 | 
						|
                topSchemaRef: schName,
 | 
						|
                errSchemaPath: $ref,
 | 
						|
            }, valid);
 | 
						|
            cxt.mergeEvaluated(schCxt);
 | 
						|
            cxt.ok(valid);
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
function getValidate(cxt, sch) {
 | 
						|
    const { gen } = cxt;
 | 
						|
    return sch.validate
 | 
						|
        ? gen.scopeValue("validate", { ref: sch.validate })
 | 
						|
        : (0, codegen_1._) `${gen.scopeValue("wrapper", { ref: sch })}.validate`;
 | 
						|
}
 | 
						|
exports.getValidate = getValidate;
 | 
						|
function callRef(cxt, v, sch, $async) {
 | 
						|
    const { gen, it } = cxt;
 | 
						|
    const { allErrors, schemaEnv: env, opts } = it;
 | 
						|
    const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;
 | 
						|
    if ($async)
 | 
						|
        callAsyncRef();
 | 
						|
    else
 | 
						|
        callSyncRef();
 | 
						|
    function callAsyncRef() {
 | 
						|
        if (!env.$async)
 | 
						|
            throw new Error("async schema referenced by sync schema");
 | 
						|
        const valid = gen.let("valid");
 | 
						|
        gen.try(() => {
 | 
						|
            gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);
 | 
						|
            addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result
 | 
						|
            if (!allErrors)
 | 
						|
                gen.assign(valid, true);
 | 
						|
        }, (e) => {
 | 
						|
            gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));
 | 
						|
            addErrorsFrom(e);
 | 
						|
            if (!allErrors)
 | 
						|
                gen.assign(valid, false);
 | 
						|
        });
 | 
						|
        cxt.ok(valid);
 | 
						|
    }
 | 
						|
    function callSyncRef() {
 | 
						|
        cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));
 | 
						|
    }
 | 
						|
    function addErrorsFrom(source) {
 | 
						|
        const errs = (0, codegen_1._) `${source}.errors`;
 | 
						|
        gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged
 | 
						|
        gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);
 | 
						|
    }
 | 
						|
    function addEvaluatedFrom(source) {
 | 
						|
        var _a;
 | 
						|
        if (!it.opts.unevaluated)
 | 
						|
            return;
 | 
						|
        const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;
 | 
						|
        // TODO refactor
 | 
						|
        if (it.props !== true) {
 | 
						|
            if (schEvaluated && !schEvaluated.dynamicProps) {
 | 
						|
                if (schEvaluated.props !== undefined) {
 | 
						|
                    it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                const props = gen.var("props", (0, codegen_1._) `${source}.evaluated.props`);
 | 
						|
                it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if (it.items !== true) {
 | 
						|
            if (schEvaluated && !schEvaluated.dynamicItems) {
 | 
						|
                if (schEvaluated.items !== undefined) {
 | 
						|
                    it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                const items = gen.var("items", (0, codegen_1._) `${source}.evaluated.items`);
 | 
						|
                it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.callRef = callRef;
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=ref.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 30648:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const types_1 = __webpack_require__(2185);
 | 
						|
const compile_1 = __webpack_require__(50052);
 | 
						|
const ref_error_1 = __webpack_require__(26317);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag
 | 
						|
        ? `tag "${tagName}" must be string`
 | 
						|
        : `value of tag "${tagName}" must be in oneOf`,
 | 
						|
    params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "discriminator",
 | 
						|
    type: "object",
 | 
						|
    schemaType: "object",
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, data, schema, parentSchema, it } = cxt;
 | 
						|
        const { oneOf } = parentSchema;
 | 
						|
        if (!it.opts.discriminator) {
 | 
						|
            throw new Error("discriminator: requires discriminator option");
 | 
						|
        }
 | 
						|
        const tagName = schema.propertyName;
 | 
						|
        if (typeof tagName != "string")
 | 
						|
            throw new Error("discriminator: requires propertyName");
 | 
						|
        if (schema.mapping)
 | 
						|
            throw new Error("discriminator: mapping is not supported");
 | 
						|
        if (!oneOf)
 | 
						|
            throw new Error("discriminator: requires oneOf keyword");
 | 
						|
        const valid = gen.let("valid", false);
 | 
						|
        const tag = gen.const("tag", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);
 | 
						|
        gen.if((0, codegen_1._) `typeof ${tag} == "string"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));
 | 
						|
        cxt.ok(valid);
 | 
						|
        function validateMapping() {
 | 
						|
            const mapping = getMapping();
 | 
						|
            gen.if(false);
 | 
						|
            for (const tagValue in mapping) {
 | 
						|
                gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);
 | 
						|
                gen.assign(valid, applyTagSchema(mapping[tagValue]));
 | 
						|
            }
 | 
						|
            gen.else();
 | 
						|
            cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });
 | 
						|
            gen.endIf();
 | 
						|
        }
 | 
						|
        function applyTagSchema(schemaProp) {
 | 
						|
            const _valid = gen.name("valid");
 | 
						|
            const schCxt = cxt.subschema({ keyword: "oneOf", schemaProp }, _valid);
 | 
						|
            cxt.mergeEvaluated(schCxt, codegen_1.Name);
 | 
						|
            return _valid;
 | 
						|
        }
 | 
						|
        function getMapping() {
 | 
						|
            var _a;
 | 
						|
            const oneOfMapping = {};
 | 
						|
            const topRequired = hasRequired(parentSchema);
 | 
						|
            let tagRequired = true;
 | 
						|
            for (let i = 0; i < oneOf.length; i++) {
 | 
						|
                let sch = oneOf[i];
 | 
						|
                if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {
 | 
						|
                    const ref = sch.$ref;
 | 
						|
                    sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);
 | 
						|
                    if (sch instanceof compile_1.SchemaEnv)
 | 
						|
                        sch = sch.schema;
 | 
						|
                    if (sch === undefined)
 | 
						|
                        throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);
 | 
						|
                }
 | 
						|
                const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];
 | 
						|
                if (typeof propSch != "object") {
 | 
						|
                    throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`);
 | 
						|
                }
 | 
						|
                tagRequired = tagRequired && (topRequired || hasRequired(sch));
 | 
						|
                addMappings(propSch, i);
 | 
						|
            }
 | 
						|
            if (!tagRequired)
 | 
						|
                throw new Error(`discriminator: "${tagName}" must be required`);
 | 
						|
            return oneOfMapping;
 | 
						|
            function hasRequired({ required }) {
 | 
						|
                return Array.isArray(required) && required.includes(tagName);
 | 
						|
            }
 | 
						|
            function addMappings(sch, i) {
 | 
						|
                if (sch.const) {
 | 
						|
                    addMapping(sch.const, i);
 | 
						|
                }
 | 
						|
                else if (sch.enum) {
 | 
						|
                    for (const tagValue of sch.enum) {
 | 
						|
                        addMapping(tagValue, i);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else {
 | 
						|
                    throw new Error(`discriminator: "properties/${tagName}" must have "const" or "enum"`);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            function addMapping(tagValue, i) {
 | 
						|
                if (typeof tagValue != "string" || tagValue in oneOfMapping) {
 | 
						|
                    throw new Error(`discriminator: "${tagName}" values must be unique strings`);
 | 
						|
                }
 | 
						|
                oneOfMapping[tagValue] = i;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 2185:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.DiscrError = void 0;
 | 
						|
var DiscrError;
 | 
						|
(function (DiscrError) {
 | 
						|
    DiscrError["Tag"] = "tag";
 | 
						|
    DiscrError["Mapping"] = "mapping";
 | 
						|
})(DiscrError || (exports.DiscrError = DiscrError = {}));
 | 
						|
//# sourceMappingURL=types.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 87213:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const core_1 = __webpack_require__(18243);
 | 
						|
const validation_1 = __webpack_require__(19591);
 | 
						|
const applicator_1 = __webpack_require__(75448);
 | 
						|
const format_1 = __webpack_require__(4505);
 | 
						|
const metadata_1 = __webpack_require__(51935);
 | 
						|
const draft7Vocabularies = [
 | 
						|
    core_1.default,
 | 
						|
    validation_1.default,
 | 
						|
    (0, applicator_1.default)(),
 | 
						|
    format_1.default,
 | 
						|
    metadata_1.metadataVocabulary,
 | 
						|
    metadata_1.contentVocabulary,
 | 
						|
];
 | 
						|
exports["default"] = draft7Vocabularies;
 | 
						|
//# sourceMappingURL=draft7.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 78803:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const error = {
 | 
						|
    message: ({ schemaCode }) => (0, codegen_1.str) `must match format "${schemaCode}"`,
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "format",
 | 
						|
    type: ["number", "string"],
 | 
						|
    schemaType: "string",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt, ruleType) {
 | 
						|
        const { gen, data, $data, schema, schemaCode, it } = cxt;
 | 
						|
        const { opts, errSchemaPath, schemaEnv, self } = it;
 | 
						|
        if (!opts.validateFormats)
 | 
						|
            return;
 | 
						|
        if ($data)
 | 
						|
            validate$DataFormat();
 | 
						|
        else
 | 
						|
            validateFormat();
 | 
						|
        function validate$DataFormat() {
 | 
						|
            const fmts = gen.scopeValue("formats", {
 | 
						|
                ref: self.formats,
 | 
						|
                code: opts.code.formats,
 | 
						|
            });
 | 
						|
            const fDef = gen.const("fDef", (0, codegen_1._) `${fmts}[${schemaCode}]`);
 | 
						|
            const fType = gen.let("fType");
 | 
						|
            const format = gen.let("format");
 | 
						|
            // TODO simplify
 | 
						|
            gen.if((0, codegen_1._) `typeof ${fDef} == "object" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || "string"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `"string"`).assign(format, fDef));
 | 
						|
            cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));
 | 
						|
            function unknownFmt() {
 | 
						|
                if (opts.strictSchema === false)
 | 
						|
                    return codegen_1.nil;
 | 
						|
                return (0, codegen_1._) `${schemaCode} && !${format}`;
 | 
						|
            }
 | 
						|
            function invalidFmt() {
 | 
						|
                const callFormat = schemaEnv.$async
 | 
						|
                    ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`
 | 
						|
                    : (0, codegen_1._) `${format}(${data})`;
 | 
						|
                const validData = (0, codegen_1._) `(typeof ${format} == "function" ? ${callFormat} : ${format}.test(${data}))`;
 | 
						|
                return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function validateFormat() {
 | 
						|
            const formatDef = self.formats[schema];
 | 
						|
            if (!formatDef) {
 | 
						|
                unknownFormat();
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            if (formatDef === true)
 | 
						|
                return;
 | 
						|
            const [fmtType, format, fmtRef] = getFormat(formatDef);
 | 
						|
            if (fmtType === ruleType)
 | 
						|
                cxt.pass(validCondition());
 | 
						|
            function unknownFormat() {
 | 
						|
                if (opts.strictSchema === false) {
 | 
						|
                    self.logger.warn(unknownMsg());
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                throw new Error(unknownMsg());
 | 
						|
                function unknownMsg() {
 | 
						|
                    return `unknown format "${schema}" ignored in schema at path "${errSchemaPath}"`;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            function getFormat(fmtDef) {
 | 
						|
                const code = fmtDef instanceof RegExp
 | 
						|
                    ? (0, codegen_1.regexpCode)(fmtDef)
 | 
						|
                    : opts.code.formats
 | 
						|
                        ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`
 | 
						|
                        : undefined;
 | 
						|
                const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
 | 
						|
                if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
 | 
						|
                    return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];
 | 
						|
                }
 | 
						|
                return ["string", fmtDef, fmt];
 | 
						|
            }
 | 
						|
            function validCondition() {
 | 
						|
                if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
 | 
						|
                    if (!schemaEnv.$async)
 | 
						|
                        throw new Error("async format in sync schema");
 | 
						|
                    return (0, codegen_1._) `await ${fmtRef}(${data})`;
 | 
						|
                }
 | 
						|
                return typeof format == "function" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=format.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 4505:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const format_1 = __webpack_require__(78803);
 | 
						|
const format = [format_1.default];
 | 
						|
exports["default"] = format;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 51935:
 | 
						|
/***/ ((__unused_webpack_module, exports) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
exports.contentVocabulary = exports.metadataVocabulary = void 0;
 | 
						|
exports.metadataVocabulary = [
 | 
						|
    "title",
 | 
						|
    "description",
 | 
						|
    "default",
 | 
						|
    "deprecated",
 | 
						|
    "readOnly",
 | 
						|
    "writeOnly",
 | 
						|
    "examples",
 | 
						|
];
 | 
						|
exports.contentVocabulary = [
 | 
						|
    "contentMediaType",
 | 
						|
    "contentEncoding",
 | 
						|
    "contentSchema",
 | 
						|
];
 | 
						|
//# sourceMappingURL=metadata.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 15603:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const equal_1 = __webpack_require__(59586);
 | 
						|
const error = {
 | 
						|
    message: "must be equal to constant",
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "const",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, data, $data, schemaCode, schema } = cxt;
 | 
						|
        if ($data || (schema && typeof schema == "object")) {
 | 
						|
            cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            cxt.fail((0, codegen_1._) `${schema} !== ${data}`);
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=const.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 4649:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const equal_1 = __webpack_require__(59586);
 | 
						|
const error = {
 | 
						|
    message: "must be equal to one of the allowed values",
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "enum",
 | 
						|
    schemaType: "array",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, data, $data, schema, schemaCode, it } = cxt;
 | 
						|
        if (!$data && schema.length === 0)
 | 
						|
            throw new Error("enum must have non-empty array");
 | 
						|
        const useLoop = schema.length >= it.opts.loopEnum;
 | 
						|
        let eql;
 | 
						|
        const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));
 | 
						|
        let valid;
 | 
						|
        if (useLoop || $data) {
 | 
						|
            valid = gen.let("valid");
 | 
						|
            cxt.block$data(valid, loopEnum);
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            /* istanbul ignore if */
 | 
						|
            if (!Array.isArray(schema))
 | 
						|
                throw new Error("ajv implementation error");
 | 
						|
            const vSchema = gen.const("vSchema", schemaCode);
 | 
						|
            valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));
 | 
						|
        }
 | 
						|
        cxt.pass(valid);
 | 
						|
        function loopEnum() {
 | 
						|
            gen.assign(valid, false);
 | 
						|
            gen.forOf("v", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));
 | 
						|
        }
 | 
						|
        function equalCode(vSchema, i) {
 | 
						|
            const sch = schema[i];
 | 
						|
            return typeof sch === "object" && sch !== null
 | 
						|
                ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`
 | 
						|
                : (0, codegen_1._) `${data} === ${sch}`;
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=enum.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 19591:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const limitNumber_1 = __webpack_require__(22734);
 | 
						|
const multipleOf_1 = __webpack_require__(98334);
 | 
						|
const limitLength_1 = __webpack_require__(65030);
 | 
						|
const pattern_1 = __webpack_require__(74287);
 | 
						|
const limitProperties_1 = __webpack_require__(73485);
 | 
						|
const required_1 = __webpack_require__(53758);
 | 
						|
const limitItems_1 = __webpack_require__(39633);
 | 
						|
const uniqueItems_1 = __webpack_require__(49150);
 | 
						|
const const_1 = __webpack_require__(15603);
 | 
						|
const enum_1 = __webpack_require__(4649);
 | 
						|
const validation = [
 | 
						|
    // number
 | 
						|
    limitNumber_1.default,
 | 
						|
    multipleOf_1.default,
 | 
						|
    // string
 | 
						|
    limitLength_1.default,
 | 
						|
    pattern_1.default,
 | 
						|
    // object
 | 
						|
    limitProperties_1.default,
 | 
						|
    required_1.default,
 | 
						|
    // array
 | 
						|
    limitItems_1.default,
 | 
						|
    uniqueItems_1.default,
 | 
						|
    // any
 | 
						|
    { keyword: "type", schemaType: ["string", "array"] },
 | 
						|
    { keyword: "nullable", schemaType: "boolean" },
 | 
						|
    const_1.default,
 | 
						|
    enum_1.default,
 | 
						|
];
 | 
						|
exports["default"] = validation;
 | 
						|
//# sourceMappingURL=index.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 39633:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const error = {
 | 
						|
    message({ keyword, schemaCode }) {
 | 
						|
        const comp = keyword === "maxItems" ? "more" : "fewer";
 | 
						|
        return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;
 | 
						|
    },
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: ["maxItems", "minItems"],
 | 
						|
    type: "array",
 | 
						|
    schemaType: "number",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { keyword, data, schemaCode } = cxt;
 | 
						|
        const op = keyword === "maxItems" ? codegen_1.operators.GT : codegen_1.operators.LT;
 | 
						|
        cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=limitItems.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 65030:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const ucs2length_1 = __webpack_require__(20680);
 | 
						|
const error = {
 | 
						|
    message({ keyword, schemaCode }) {
 | 
						|
        const comp = keyword === "maxLength" ? "more" : "fewer";
 | 
						|
        return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;
 | 
						|
    },
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: ["maxLength", "minLength"],
 | 
						|
    type: "string",
 | 
						|
    schemaType: "number",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { keyword, data, schemaCode, it } = cxt;
 | 
						|
        const op = keyword === "maxLength" ? codegen_1.operators.GT : codegen_1.operators.LT;
 | 
						|
        const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;
 | 
						|
        cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=limitLength.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 22734:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const ops = codegen_1.operators;
 | 
						|
const KWDs = {
 | 
						|
    maximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
 | 
						|
    minimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
 | 
						|
    exclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
 | 
						|
    exclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE },
 | 
						|
};
 | 
						|
const error = {
 | 
						|
    message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,
 | 
						|
    params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: Object.keys(KWDs),
 | 
						|
    type: "number",
 | 
						|
    schemaType: "number",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { keyword, data, schemaCode } = cxt;
 | 
						|
        cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=limitNumber.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 73485:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const error = {
 | 
						|
    message({ keyword, schemaCode }) {
 | 
						|
        const comp = keyword === "maxProperties" ? "more" : "fewer";
 | 
						|
        return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;
 | 
						|
    },
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: ["maxProperties", "minProperties"],
 | 
						|
    type: "object",
 | 
						|
    schemaType: "number",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { keyword, data, schemaCode } = cxt;
 | 
						|
        const op = keyword === "maxProperties" ? codegen_1.operators.GT : codegen_1.operators.LT;
 | 
						|
        cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=limitProperties.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 98334:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const error = {
 | 
						|
    message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "multipleOf",
 | 
						|
    type: "number",
 | 
						|
    schemaType: "number",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, data, schemaCode, it } = cxt;
 | 
						|
        // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)
 | 
						|
        const prec = it.opts.multipleOfPrecision;
 | 
						|
        const res = gen.let("res");
 | 
						|
        const invalid = prec
 | 
						|
            ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`
 | 
						|
            : (0, codegen_1._) `${res} !== parseInt(${res})`;
 | 
						|
        cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=multipleOf.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 74287:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const error = {
 | 
						|
    message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern "${schemaCode}"`,
 | 
						|
    params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "pattern",
 | 
						|
    type: "string",
 | 
						|
    schemaType: "string",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { data, $data, schema, schemaCode, it } = cxt;
 | 
						|
        // TODO regexp should be wrapped in try/catchs
 | 
						|
        const u = it.opts.unicodeRegExp ? "u" : "";
 | 
						|
        const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);
 | 
						|
        cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=pattern.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 53758:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const code_1 = __webpack_require__(36704);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const error = {
 | 
						|
    message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,
 | 
						|
    params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "required",
 | 
						|
    type: "object",
 | 
						|
    schemaType: "array",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, schema, schemaCode, data, $data, it } = cxt;
 | 
						|
        const { opts } = it;
 | 
						|
        if (!$data && schema.length === 0)
 | 
						|
            return;
 | 
						|
        const useLoop = schema.length >= opts.loopRequired;
 | 
						|
        if (it.allErrors)
 | 
						|
            allErrorsMode();
 | 
						|
        else
 | 
						|
            exitOnErrorMode();
 | 
						|
        if (opts.strictRequired) {
 | 
						|
            const props = cxt.parentSchema.properties;
 | 
						|
            const { definedProperties } = cxt.it;
 | 
						|
            for (const requiredKey of schema) {
 | 
						|
                if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {
 | 
						|
                    const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;
 | 
						|
                    const msg = `required property "${requiredKey}" is not defined at "${schemaPath}" (strictRequired)`;
 | 
						|
                    (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function allErrorsMode() {
 | 
						|
            if (useLoop || $data) {
 | 
						|
                cxt.block$data(codegen_1.nil, loopAllRequired);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                for (const prop of schema) {
 | 
						|
                    (0, code_1.checkReportMissingProp)(cxt, prop);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function exitOnErrorMode() {
 | 
						|
            const missing = gen.let("missing");
 | 
						|
            if (useLoop || $data) {
 | 
						|
                const valid = gen.let("valid", true);
 | 
						|
                cxt.block$data(valid, () => loopUntilMissing(missing, valid));
 | 
						|
                cxt.ok(valid);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));
 | 
						|
                (0, code_1.reportMissingProp)(cxt, missing);
 | 
						|
                gen.else();
 | 
						|
            }
 | 
						|
        }
 | 
						|
        function loopAllRequired() {
 | 
						|
            gen.forOf("prop", schemaCode, (prop) => {
 | 
						|
                cxt.setParams({ missingProperty: prop });
 | 
						|
                gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());
 | 
						|
            });
 | 
						|
        }
 | 
						|
        function loopUntilMissing(missing, valid) {
 | 
						|
            cxt.setParams({ missingProperty: missing });
 | 
						|
            gen.forOf(missing, schemaCode, () => {
 | 
						|
                gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));
 | 
						|
                gen.if((0, codegen_1.not)(valid), () => {
 | 
						|
                    cxt.error();
 | 
						|
                    gen.break();
 | 
						|
                });
 | 
						|
            }, codegen_1.nil);
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=required.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 49150:
 | 
						|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
						|
const dataType_1 = __webpack_require__(85077);
 | 
						|
const codegen_1 = __webpack_require__(17231);
 | 
						|
const util_1 = __webpack_require__(20679);
 | 
						|
const equal_1 = __webpack_require__(59586);
 | 
						|
const error = {
 | 
						|
    message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,
 | 
						|
    params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,
 | 
						|
};
 | 
						|
const def = {
 | 
						|
    keyword: "uniqueItems",
 | 
						|
    type: "array",
 | 
						|
    schemaType: "boolean",
 | 
						|
    $data: true,
 | 
						|
    error,
 | 
						|
    code(cxt) {
 | 
						|
        const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;
 | 
						|
        if (!$data && !schema)
 | 
						|
            return;
 | 
						|
        const valid = gen.let("valid");
 | 
						|
        const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];
 | 
						|
        cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);
 | 
						|
        cxt.ok(valid);
 | 
						|
        function validateUniqueItems() {
 | 
						|
            const i = gen.let("i", (0, codegen_1._) `${data}.length`);
 | 
						|
            const j = gen.let("j");
 | 
						|
            cxt.setParams({ i, j });
 | 
						|
            gen.assign(valid, true);
 | 
						|
            gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));
 | 
						|
        }
 | 
						|
        function canOptimize() {
 | 
						|
            return itemTypes.length > 0 && !itemTypes.some((t) => t === "object" || t === "array");
 | 
						|
        }
 | 
						|
        function loopN(i, j) {
 | 
						|
            const item = gen.name("item");
 | 
						|
            const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);
 | 
						|
            const indices = gen.const("indices", (0, codegen_1._) `{}`);
 | 
						|
            gen.for((0, codegen_1._) `;${i}--;`, () => {
 | 
						|
                gen.let(item, (0, codegen_1._) `${data}[${i}]`);
 | 
						|
                gen.if(wrongType, (0, codegen_1._) `continue`);
 | 
						|
                if (itemTypes.length > 1)
 | 
						|
                    gen.if((0, codegen_1._) `typeof ${item} == "string"`, (0, codegen_1._) `${item} += "_"`);
 | 
						|
                gen
 | 
						|
                    .if((0, codegen_1._) `typeof ${indices}[${item}] == "number"`, () => {
 | 
						|
                    gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);
 | 
						|
                    cxt.error();
 | 
						|
                    gen.assign(valid, false).break();
 | 
						|
                })
 | 
						|
                    .code((0, codegen_1._) `${indices}[${item}] = ${i}`);
 | 
						|
            });
 | 
						|
        }
 | 
						|
        function loopN2(i, j) {
 | 
						|
            const eql = (0, util_1.useFunc)(gen, equal_1.default);
 | 
						|
            const outer = gen.name("outer");
 | 
						|
            gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {
 | 
						|
                cxt.error();
 | 
						|
                gen.assign(valid, false).break(outer);
 | 
						|
            })));
 | 
						|
        }
 | 
						|
    },
 | 
						|
};
 | 
						|
exports["default"] = def;
 | 
						|
//# sourceMappingURL=uniqueItems.js.map
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 52485:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var MapCache = __webpack_require__(74554),
 | 
						|
    setCacheAdd = __webpack_require__(38639),
 | 
						|
    setCacheHas = __webpack_require__(88379);
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * Creates an array cache object to store unique values.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @constructor
 | 
						|
 * @param {Array} [values] The values to cache.
 | 
						|
 */
 | 
						|
function SetCache(values) {
 | 
						|
  var index = -1,
 | 
						|
      length = values == null ? 0 : values.length;
 | 
						|
 | 
						|
  this.__data__ = new MapCache;
 | 
						|
  while (++index < length) {
 | 
						|
    this.add(values[index]);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// Add methods to `SetCache`.
 | 
						|
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
 | 
						|
SetCache.prototype.has = setCacheHas;
 | 
						|
 | 
						|
module.exports = SetCache;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 90756:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
/**
 | 
						|
 * A specialized version of `_.some` for arrays without support for iteratee
 | 
						|
 * shorthands.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Array} [array] The array to iterate over.
 | 
						|
 * @param {Function} predicate The function invoked per iteration.
 | 
						|
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 | 
						|
 *  else `false`.
 | 
						|
 */
 | 
						|
function arraySome(array, predicate) {
 | 
						|
  var index = -1,
 | 
						|
      length = array == null ? 0 : array.length;
 | 
						|
 | 
						|
  while (++index < length) {
 | 
						|
    if (predicate(array[index], index, array)) {
 | 
						|
      return true;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = arraySome;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 32866:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var baseIsEqualDeep = __webpack_require__(12772),
 | 
						|
    isObjectLike = __webpack_require__(92360);
 | 
						|
 | 
						|
/**
 | 
						|
 * The base implementation of `_.isEqual` which supports partial comparisons
 | 
						|
 * and tracks traversed objects.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {*} value The value to compare.
 | 
						|
 * @param {*} other The other value to compare.
 | 
						|
 * @param {boolean} bitmask The bitmask flags.
 | 
						|
 *  1 - Unordered comparison
 | 
						|
 *  2 - Partial comparison
 | 
						|
 * @param {Function} [customizer] The function to customize comparisons.
 | 
						|
 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
 | 
						|
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 | 
						|
 */
 | 
						|
function baseIsEqual(value, other, bitmask, customizer, stack) {
 | 
						|
  if (value === other) {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
 | 
						|
    return value !== value && other !== other;
 | 
						|
  }
 | 
						|
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
 | 
						|
}
 | 
						|
 | 
						|
module.exports = baseIsEqual;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 12772:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var Stack = __webpack_require__(23694),
 | 
						|
    equalArrays = __webpack_require__(27042),
 | 
						|
    equalByTag = __webpack_require__(370),
 | 
						|
    equalObjects = __webpack_require__(39584),
 | 
						|
    getTag = __webpack_require__(3533),
 | 
						|
    isArray = __webpack_require__(19785),
 | 
						|
    isBuffer = __webpack_require__(43854),
 | 
						|
    isTypedArray = __webpack_require__(48519);
 | 
						|
 | 
						|
/** Used to compose bitmasks for value comparisons. */
 | 
						|
var COMPARE_PARTIAL_FLAG = 1;
 | 
						|
 | 
						|
/** `Object#toString` result references. */
 | 
						|
var argsTag = '[object Arguments]',
 | 
						|
    arrayTag = '[object Array]',
 | 
						|
    objectTag = '[object Object]';
 | 
						|
 | 
						|
/** Used for built-in method references. */
 | 
						|
var objectProto = Object.prototype;
 | 
						|
 | 
						|
/** Used to check objects for own properties. */
 | 
						|
var hasOwnProperty = objectProto.hasOwnProperty;
 | 
						|
 | 
						|
/**
 | 
						|
 * A specialized version of `baseIsEqual` for arrays and objects which performs
 | 
						|
 * deep comparisons and tracks traversed objects enabling objects with circular
 | 
						|
 * references to be compared.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Object} object The object to compare.
 | 
						|
 * @param {Object} other The other object to compare.
 | 
						|
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 | 
						|
 * @param {Function} customizer The function to customize comparisons.
 | 
						|
 * @param {Function} equalFunc The function to determine equivalents of values.
 | 
						|
 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
 | 
						|
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 | 
						|
 */
 | 
						|
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
 | 
						|
  var objIsArr = isArray(object),
 | 
						|
      othIsArr = isArray(other),
 | 
						|
      objTag = objIsArr ? arrayTag : getTag(object),
 | 
						|
      othTag = othIsArr ? arrayTag : getTag(other);
 | 
						|
 | 
						|
  objTag = objTag == argsTag ? objectTag : objTag;
 | 
						|
  othTag = othTag == argsTag ? objectTag : othTag;
 | 
						|
 | 
						|
  var objIsObj = objTag == objectTag,
 | 
						|
      othIsObj = othTag == objectTag,
 | 
						|
      isSameTag = objTag == othTag;
 | 
						|
 | 
						|
  if (isSameTag && isBuffer(object)) {
 | 
						|
    if (!isBuffer(other)) {
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
    objIsArr = true;
 | 
						|
    objIsObj = false;
 | 
						|
  }
 | 
						|
  if (isSameTag && !objIsObj) {
 | 
						|
    stack || (stack = new Stack);
 | 
						|
    return (objIsArr || isTypedArray(object))
 | 
						|
      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
 | 
						|
      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
 | 
						|
  }
 | 
						|
  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
 | 
						|
    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
 | 
						|
        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
 | 
						|
 | 
						|
    if (objIsWrapped || othIsWrapped) {
 | 
						|
      var objUnwrapped = objIsWrapped ? object.value() : object,
 | 
						|
          othUnwrapped = othIsWrapped ? other.value() : other;
 | 
						|
 | 
						|
      stack || (stack = new Stack);
 | 
						|
      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
 | 
						|
    }
 | 
						|
  }
 | 
						|
  if (!isSameTag) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  stack || (stack = new Stack);
 | 
						|
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
 | 
						|
}
 | 
						|
 | 
						|
module.exports = baseIsEqualDeep;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 65581:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
/**
 | 
						|
 * Checks if a `cache` value for `key` exists.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Object} cache The cache to query.
 | 
						|
 * @param {string} key The key of the entry to check.
 | 
						|
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 | 
						|
 */
 | 
						|
function cacheHas(cache, key) {
 | 
						|
  return cache.has(key);
 | 
						|
}
 | 
						|
 | 
						|
module.exports = cacheHas;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 27042:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var SetCache = __webpack_require__(52485),
 | 
						|
    arraySome = __webpack_require__(90756),
 | 
						|
    cacheHas = __webpack_require__(65581);
 | 
						|
 | 
						|
/** Used to compose bitmasks for value comparisons. */
 | 
						|
var COMPARE_PARTIAL_FLAG = 1,
 | 
						|
    COMPARE_UNORDERED_FLAG = 2;
 | 
						|
 | 
						|
/**
 | 
						|
 * A specialized version of `baseIsEqualDeep` for arrays with support for
 | 
						|
 * partial deep comparisons.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Array} array The array to compare.
 | 
						|
 * @param {Array} other The other array to compare.
 | 
						|
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 | 
						|
 * @param {Function} customizer The function to customize comparisons.
 | 
						|
 * @param {Function} equalFunc The function to determine equivalents of values.
 | 
						|
 * @param {Object} stack Tracks traversed `array` and `other` objects.
 | 
						|
 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
 | 
						|
 */
 | 
						|
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
 | 
						|
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
 | 
						|
      arrLength = array.length,
 | 
						|
      othLength = other.length;
 | 
						|
 | 
						|
  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  // Check that cyclic values are equal.
 | 
						|
  var arrStacked = stack.get(array);
 | 
						|
  var othStacked = stack.get(other);
 | 
						|
  if (arrStacked && othStacked) {
 | 
						|
    return arrStacked == other && othStacked == array;
 | 
						|
  }
 | 
						|
  var index = -1,
 | 
						|
      result = true,
 | 
						|
      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
 | 
						|
 | 
						|
  stack.set(array, other);
 | 
						|
  stack.set(other, array);
 | 
						|
 | 
						|
  // Ignore non-index properties.
 | 
						|
  while (++index < arrLength) {
 | 
						|
    var arrValue = array[index],
 | 
						|
        othValue = other[index];
 | 
						|
 | 
						|
    if (customizer) {
 | 
						|
      var compared = isPartial
 | 
						|
        ? customizer(othValue, arrValue, index, other, array, stack)
 | 
						|
        : customizer(arrValue, othValue, index, array, other, stack);
 | 
						|
    }
 | 
						|
    if (compared !== undefined) {
 | 
						|
      if (compared) {
 | 
						|
        continue;
 | 
						|
      }
 | 
						|
      result = false;
 | 
						|
      break;
 | 
						|
    }
 | 
						|
    // Recursively compare arrays (susceptible to call stack limits).
 | 
						|
    if (seen) {
 | 
						|
      if (!arraySome(other, function(othValue, othIndex) {
 | 
						|
            if (!cacheHas(seen, othIndex) &&
 | 
						|
                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
 | 
						|
              return seen.push(othIndex);
 | 
						|
            }
 | 
						|
          })) {
 | 
						|
        result = false;
 | 
						|
        break;
 | 
						|
      }
 | 
						|
    } else if (!(
 | 
						|
          arrValue === othValue ||
 | 
						|
            equalFunc(arrValue, othValue, bitmask, customizer, stack)
 | 
						|
        )) {
 | 
						|
      result = false;
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  stack['delete'](array);
 | 
						|
  stack['delete'](other);
 | 
						|
  return result;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = equalArrays;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 370:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var Symbol = __webpack_require__(96539),
 | 
						|
    Uint8Array = __webpack_require__(59942),
 | 
						|
    eq = __webpack_require__(85638),
 | 
						|
    equalArrays = __webpack_require__(27042),
 | 
						|
    mapToArray = __webpack_require__(19383),
 | 
						|
    setToArray = __webpack_require__(43735);
 | 
						|
 | 
						|
/** Used to compose bitmasks for value comparisons. */
 | 
						|
var COMPARE_PARTIAL_FLAG = 1,
 | 
						|
    COMPARE_UNORDERED_FLAG = 2;
 | 
						|
 | 
						|
/** `Object#toString` result references. */
 | 
						|
var boolTag = '[object Boolean]',
 | 
						|
    dateTag = '[object Date]',
 | 
						|
    errorTag = '[object Error]',
 | 
						|
    mapTag = '[object Map]',
 | 
						|
    numberTag = '[object Number]',
 | 
						|
    regexpTag = '[object RegExp]',
 | 
						|
    setTag = '[object Set]',
 | 
						|
    stringTag = '[object String]',
 | 
						|
    symbolTag = '[object Symbol]';
 | 
						|
 | 
						|
var arrayBufferTag = '[object ArrayBuffer]',
 | 
						|
    dataViewTag = '[object DataView]';
 | 
						|
 | 
						|
/** Used to convert symbols to primitives and strings. */
 | 
						|
var symbolProto = Symbol ? Symbol.prototype : undefined,
 | 
						|
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
 | 
						|
 | 
						|
/**
 | 
						|
 * A specialized version of `baseIsEqualDeep` for comparing objects of
 | 
						|
 * the same `toStringTag`.
 | 
						|
 *
 | 
						|
 * **Note:** This function only supports comparing values with tags of
 | 
						|
 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Object} object The object to compare.
 | 
						|
 * @param {Object} other The other object to compare.
 | 
						|
 * @param {string} tag The `toStringTag` of the objects to compare.
 | 
						|
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 | 
						|
 * @param {Function} customizer The function to customize comparisons.
 | 
						|
 * @param {Function} equalFunc The function to determine equivalents of values.
 | 
						|
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 | 
						|
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 | 
						|
 */
 | 
						|
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
 | 
						|
  switch (tag) {
 | 
						|
    case dataViewTag:
 | 
						|
      if ((object.byteLength != other.byteLength) ||
 | 
						|
          (object.byteOffset != other.byteOffset)) {
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
      object = object.buffer;
 | 
						|
      other = other.buffer;
 | 
						|
 | 
						|
    case arrayBufferTag:
 | 
						|
      if ((object.byteLength != other.byteLength) ||
 | 
						|
          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
      return true;
 | 
						|
 | 
						|
    case boolTag:
 | 
						|
    case dateTag:
 | 
						|
    case numberTag:
 | 
						|
      // Coerce booleans to `1` or `0` and dates to milliseconds.
 | 
						|
      // Invalid dates are coerced to `NaN`.
 | 
						|
      return eq(+object, +other);
 | 
						|
 | 
						|
    case errorTag:
 | 
						|
      return object.name == other.name && object.message == other.message;
 | 
						|
 | 
						|
    case regexpTag:
 | 
						|
    case stringTag:
 | 
						|
      // Coerce regexes to strings and treat strings, primitives and objects,
 | 
						|
      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
 | 
						|
      // for more details.
 | 
						|
      return object == (other + '');
 | 
						|
 | 
						|
    case mapTag:
 | 
						|
      var convert = mapToArray;
 | 
						|
 | 
						|
    case setTag:
 | 
						|
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
 | 
						|
      convert || (convert = setToArray);
 | 
						|
 | 
						|
      if (object.size != other.size && !isPartial) {
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
      // Assume cyclic values are equal.
 | 
						|
      var stacked = stack.get(object);
 | 
						|
      if (stacked) {
 | 
						|
        return stacked == other;
 | 
						|
      }
 | 
						|
      bitmask |= COMPARE_UNORDERED_FLAG;
 | 
						|
 | 
						|
      // Recursively compare objects (susceptible to call stack limits).
 | 
						|
      stack.set(object, other);
 | 
						|
      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
 | 
						|
      stack['delete'](object);
 | 
						|
      return result;
 | 
						|
 | 
						|
    case symbolTag:
 | 
						|
      if (symbolValueOf) {
 | 
						|
        return symbolValueOf.call(object) == symbolValueOf.call(other);
 | 
						|
      }
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = equalByTag;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 39584:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var getAllKeys = __webpack_require__(51385);
 | 
						|
 | 
						|
/** Used to compose bitmasks for value comparisons. */
 | 
						|
var COMPARE_PARTIAL_FLAG = 1;
 | 
						|
 | 
						|
/** Used for built-in method references. */
 | 
						|
var objectProto = Object.prototype;
 | 
						|
 | 
						|
/** Used to check objects for own properties. */
 | 
						|
var hasOwnProperty = objectProto.hasOwnProperty;
 | 
						|
 | 
						|
/**
 | 
						|
 * A specialized version of `baseIsEqualDeep` for objects with support for
 | 
						|
 * partial deep comparisons.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Object} object The object to compare.
 | 
						|
 * @param {Object} other The other object to compare.
 | 
						|
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 | 
						|
 * @param {Function} customizer The function to customize comparisons.
 | 
						|
 * @param {Function} equalFunc The function to determine equivalents of values.
 | 
						|
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 | 
						|
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 | 
						|
 */
 | 
						|
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
 | 
						|
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
 | 
						|
      objProps = getAllKeys(object),
 | 
						|
      objLength = objProps.length,
 | 
						|
      othProps = getAllKeys(other),
 | 
						|
      othLength = othProps.length;
 | 
						|
 | 
						|
  if (objLength != othLength && !isPartial) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  var index = objLength;
 | 
						|
  while (index--) {
 | 
						|
    var key = objProps[index];
 | 
						|
    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  // Check that cyclic values are equal.
 | 
						|
  var objStacked = stack.get(object);
 | 
						|
  var othStacked = stack.get(other);
 | 
						|
  if (objStacked && othStacked) {
 | 
						|
    return objStacked == other && othStacked == object;
 | 
						|
  }
 | 
						|
  var result = true;
 | 
						|
  stack.set(object, other);
 | 
						|
  stack.set(other, object);
 | 
						|
 | 
						|
  var skipCtor = isPartial;
 | 
						|
  while (++index < objLength) {
 | 
						|
    key = objProps[index];
 | 
						|
    var objValue = object[key],
 | 
						|
        othValue = other[key];
 | 
						|
 | 
						|
    if (customizer) {
 | 
						|
      var compared = isPartial
 | 
						|
        ? customizer(othValue, objValue, key, other, object, stack)
 | 
						|
        : customizer(objValue, othValue, key, object, other, stack);
 | 
						|
    }
 | 
						|
    // Recursively compare objects (susceptible to call stack limits).
 | 
						|
    if (!(compared === undefined
 | 
						|
          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
 | 
						|
          : compared
 | 
						|
        )) {
 | 
						|
      result = false;
 | 
						|
      break;
 | 
						|
    }
 | 
						|
    skipCtor || (skipCtor = key == 'constructor');
 | 
						|
  }
 | 
						|
  if (result && !skipCtor) {
 | 
						|
    var objCtor = object.constructor,
 | 
						|
        othCtor = other.constructor;
 | 
						|
 | 
						|
    // Non `Object` object instances with different constructors are not equal.
 | 
						|
    if (objCtor != othCtor &&
 | 
						|
        ('constructor' in object && 'constructor' in other) &&
 | 
						|
        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
 | 
						|
          typeof othCtor == 'function' && othCtor instanceof othCtor)) {
 | 
						|
      result = false;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  stack['delete'](object);
 | 
						|
  stack['delete'](other);
 | 
						|
  return result;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = equalObjects;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 19383:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
/**
 | 
						|
 * Converts `map` to its key-value pairs.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Object} map The map to convert.
 | 
						|
 * @returns {Array} Returns the key-value pairs.
 | 
						|
 */
 | 
						|
function mapToArray(map) {
 | 
						|
  var index = -1,
 | 
						|
      result = Array(map.size);
 | 
						|
 | 
						|
  map.forEach(function(value, key) {
 | 
						|
    result[++index] = [key, value];
 | 
						|
  });
 | 
						|
  return result;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = mapToArray;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 38639:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
/** Used to stand-in for `undefined` hash values. */
 | 
						|
var HASH_UNDEFINED = '__lodash_hash_undefined__';
 | 
						|
 | 
						|
/**
 | 
						|
 * Adds `value` to the array cache.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @name add
 | 
						|
 * @memberOf SetCache
 | 
						|
 * @alias push
 | 
						|
 * @param {*} value The value to cache.
 | 
						|
 * @returns {Object} Returns the cache instance.
 | 
						|
 */
 | 
						|
function setCacheAdd(value) {
 | 
						|
  this.__data__.set(value, HASH_UNDEFINED);
 | 
						|
  return this;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = setCacheAdd;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 88379:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
/**
 | 
						|
 * Checks if `value` is in the array cache.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @name has
 | 
						|
 * @memberOf SetCache
 | 
						|
 * @param {*} value The value to search for.
 | 
						|
 * @returns {number} Returns `true` if `value` is found, else `false`.
 | 
						|
 */
 | 
						|
function setCacheHas(value) {
 | 
						|
  return this.__data__.has(value);
 | 
						|
}
 | 
						|
 | 
						|
module.exports = setCacheHas;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 43735:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
/**
 | 
						|
 * Converts `set` to an array of its values.
 | 
						|
 *
 | 
						|
 * @private
 | 
						|
 * @param {Object} set The set to convert.
 | 
						|
 * @returns {Array} Returns the values.
 | 
						|
 */
 | 
						|
function setToArray(set) {
 | 
						|
  var index = -1,
 | 
						|
      result = Array(set.size);
 | 
						|
 | 
						|
  set.forEach(function(value) {
 | 
						|
    result[++index] = value;
 | 
						|
  });
 | 
						|
  return result;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = setToArray;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 56141:
 | 
						|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 | 
						|
 | 
						|
var baseIsEqual = __webpack_require__(32866);
 | 
						|
 | 
						|
/**
 | 
						|
 * Performs a deep comparison between two values to determine if they are
 | 
						|
 * equivalent.
 | 
						|
 *
 | 
						|
 * **Note:** This method supports comparing arrays, array buffers, booleans,
 | 
						|
 * date objects, error objects, maps, numbers, `Object` objects, regexes,
 | 
						|
 * sets, strings, symbols, and typed arrays. `Object` objects are compared
 | 
						|
 * by their own, not inherited, enumerable properties. Functions and DOM
 | 
						|
 * nodes are compared by strict equality, i.e. `===`.
 | 
						|
 *
 | 
						|
 * @static
 | 
						|
 * @memberOf _
 | 
						|
 * @since 0.1.0
 | 
						|
 * @category Lang
 | 
						|
 * @param {*} value The value to compare.
 | 
						|
 * @param {*} other The other value to compare.
 | 
						|
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 | 
						|
 * @example
 | 
						|
 *
 | 
						|
 * var object = { 'a': 1 };
 | 
						|
 * var other = { 'a': 1 };
 | 
						|
 *
 | 
						|
 * _.isEqual(object, other);
 | 
						|
 * // => true
 | 
						|
 *
 | 
						|
 * object === other;
 | 
						|
 * // => false
 | 
						|
 */
 | 
						|
function isEqual(value, other) {
 | 
						|
  return baseIsEqual(value, other);
 | 
						|
}
 | 
						|
 | 
						|
module.exports = isEqual;
 | 
						|
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 94801:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
module.exports = JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}');
 | 
						|
 | 
						|
/***/ }),
 | 
						|
 | 
						|
/***/ 60172:
 | 
						|
/***/ ((module) => {
 | 
						|
 | 
						|
"use strict";
 | 
						|
module.exports = JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}');
 | 
						|
 | 
						|
/***/ })
 | 
						|
 | 
						|
}]);
 | 
						|
//# sourceMappingURL=131.729c28b8323daf822cbe.js.map?v=729c28b8323daf822cbe
 |