@rjsf/validator-ajv8 5.3.1 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,21 +3,23 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var toPath = require('lodash/toPath');
6
- var isObject = require('lodash/isObject');
6
+ var isPlainObject = require('lodash/isPlainObject');
7
7
  var clone = require('lodash/clone');
8
8
  var utils = require('@rjsf/utils');
9
9
  var get = require('lodash/get');
10
10
  var Ajv = require('ajv');
11
11
  var addFormats = require('ajv-formats');
12
+ var isObject = require('lodash/isObject');
12
13
 
13
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
15
 
15
16
  var toPath__default = /*#__PURE__*/_interopDefaultLegacy(toPath);
16
- var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
17
+ var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
17
18
  var clone__default = /*#__PURE__*/_interopDefaultLegacy(clone);
18
19
  var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
19
20
  var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv);
20
21
  var addFormats__default = /*#__PURE__*/_interopDefaultLegacy(addFormats);
22
+ var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
21
23
 
22
24
  function _extends() {
23
25
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -197,7 +199,10 @@ var AJV8Validator = /*#__PURE__*/function () {
197
199
  }
198
200
  return Object.keys(errorSchema).reduce(function (acc, key) {
199
201
  if (key !== utils.ERRORS_KEY) {
200
- acc = acc.concat(_this.toErrorList(errorSchema[key], [].concat(fieldPath, [key])));
202
+ var childSchema = errorSchema[key];
203
+ if (isPlainObject__default["default"](childSchema)) {
204
+ acc = acc.concat(_this.toErrorList(childSchema, [].concat(fieldPath, [key])));
205
+ }
201
206
  }
202
207
  return acc;
203
208
  }, errorList);
@@ -224,7 +229,7 @@ var AJV8Validator = /*#__PURE__*/function () {
224
229
  return _extends({}, acc, (_extends2 = {}, _extends2[key] = _this2.createErrorHandler(value), _extends2));
225
230
  }, handler);
226
231
  }
227
- if (isObject__default["default"](formData)) {
232
+ if (isPlainObject__default["default"](formData)) {
228
233
  var formObject = formData;
229
234
  return Object.keys(formObject).reduce(function (acc, key) {
230
235
  var _extends3;
@@ -241,14 +246,17 @@ var AJV8Validator = /*#__PURE__*/function () {
241
246
  _proto.unwrapErrorHandler = function unwrapErrorHandler(errorHandler) {
242
247
  var _this3 = this;
243
248
  return Object.keys(errorHandler).reduce(function (acc, key) {
244
- var _extends5;
245
249
  if (key === 'addError') {
246
250
  return acc;
247
- } else if (key === utils.ERRORS_KEY) {
248
- var _extends4;
249
- return _extends({}, acc, (_extends4 = {}, _extends4[key] = errorHandler[key], _extends4));
251
+ } else {
252
+ var _extends5;
253
+ var childSchema = errorHandler[key];
254
+ if (isPlainObject__default["default"](childSchema)) {
255
+ var _extends4;
256
+ return _extends({}, acc, (_extends4 = {}, _extends4[key] = _this3.unwrapErrorHandler(childSchema), _extends4));
257
+ }
258
+ return _extends({}, acc, (_extends5 = {}, _extends5[key] = childSchema, _extends5));
250
259
  }
251
- return _extends({}, acc, (_extends5 = {}, _extends5[key] = _this3.unwrapErrorHandler(errorHandler[key]), _extends5));
252
260
  }, {});
253
261
  }
254
262
  /** Transforming the error output from ajv to format used by @rjsf/utils.
@@ -465,7 +473,7 @@ var AJV8Validator = /*#__PURE__*/function () {
465
473
  if (Array.isArray(schemaNode)) {
466
474
  return this.withIdRefPrefixArray([].concat(schemaNode));
467
475
  }
468
- if (isObject__default["default"](schemaNode)) {
476
+ if (isPlainObject__default["default"](schemaNode)) {
469
477
  return this.withIdRefPrefixObject(clone__default["default"](schemaNode));
470
478
  }
471
479
  return schemaNode;
@@ -1 +1 @@
1
- {"version":3,"file":"validator-ajv8.cjs.development.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isObject from 'lodash/isObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n acc = acc.concat(this.toErrorList((errorSchema as GenericObjectType)[key], [...fieldPath, key]));\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else if (key === ERRORS_KEY) {\n return { ...acc, [key]: (errorHandler as GenericObjectType)[key] };\n }\n return {\n ...acc,\n [key]: this.unwrapErrorHandler((errorHandler as GenericObjectType)[key]),\n };\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","property","message","path","toPath","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","rest","_objectWithoutPropertiesLoose","_excluded","_rest$message","replace","trim","missingProperty","currentProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compilationError","undefined","compiledValidator","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","realObj","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","result","console","warn","removeSchema","schemaNode","clone","customizeValidator"],"mappings":"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"}
1
+ {"version":3,"file":"validator-ajv8.cjs.development.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isPlainObject from 'lodash/isPlainObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n const childSchema = (errorSchema as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n acc = acc.concat(this.toErrorList(childSchema, [...fieldPath, key]));\n }\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isPlainObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else {\n const childSchema = (errorHandler as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: this.unwrapErrorHandler(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isPlainObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","property","message","path","toPath","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","childSchema","isPlainObject","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","rest","_objectWithoutPropertiesLoose","_excluded","_rest$message","replace","trim","missingProperty","currentProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compilationError","undefined","compiledValidator","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","realObj","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","result","console","warn","removeSchema","schemaNode","clone","customizeValidator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAMA,UAAU,GAAY;AACjCC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,mBAAmB,EAAE,CAAC;AACtBC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,OAAO,EAAE,IAAA;CACD,CAAA;AACH,IAAMC,kBAAkB,GAC7B,4YAA4Y,CAAA;AACvY,IAAMC,qBAAqB,GAAG,2DAA2D,CAAA;AAEhG;;;;;;;;;;;;;;AAcG;AACqB,SAAAC,iBAAiBA,CACvCC,qBAA2E,EAC3EC,aAA2D,EAC3DC,qBACAC,gBAA+C,EAC/CC,UAA0B;AAAA,EAAA,IAF1BF;IAAAA,sBAAyE,EAAE,CAAA;AAAA,GAAA;AAAA,EAAA,IAE3EE;AAAAA,IAAAA,WAAuBC,uBAAG,CAAA;AAAA,GAAA;EAE1B,IAAMC,GAAG,GAAG,IAAIF,QAAQ,CAAAG,QAAA,CAAMf,EAAAA,EAAAA,UAAU,EAAKU,mBAAmB,CAAG,CAAA,CAAA;AACnE,EAAA,IAAIC,gBAAgB,EAAE;AACpBK,IAAAA,8BAAU,CAACF,GAAG,EAAEH,gBAAgB,CAAC,CAAA;AAClC,GAAA,MAAM,IAAIA,gBAAgB,KAAK,KAAK,EAAE;IACrCK,8BAAU,CAACF,GAAG,CAAC,CAAA;AAChB,GAAA;AAED;AACAA,EAAAA,GAAG,CAACG,SAAS,CAAC,UAAU,EAAEX,qBAAqB,CAAC,CAAA;AAChDQ,EAAAA,GAAG,CAACG,SAAS,CAAC,OAAO,EAAEZ,kBAAkB,CAAC,CAAA;AAE1C;AACAS,EAAAA,GAAG,CAACI,UAAU,CAACC,8BAAwB,CAAC,CAAA;AACxCL,EAAAA,GAAG,CAACI,UAAU,CAACE,oCAA8B,CAAC,CAAA;AAE9C;AACA,EAAA,IAAIC,KAAK,CAACC,OAAO,CAACd,qBAAqB,CAAC,EAAE;AACxCM,IAAAA,GAAG,CAACS,aAAa,CAACf,qBAAqB,CAAC,CAAA;AACzC,GAAA;AAED;AACA,EAAA,IAAIgB,4BAAQ,CAACf,aAAa,CAAC,EAAE;IAC3BgB,MAAM,CAACC,IAAI,CAACjB,aAAa,CAAC,CAACkB,OAAO,CAAC,UAACC,UAAU,EAAI;MAChDd,GAAG,CAACG,SAAS,CAACW,UAAU,EAAEnB,aAAa,CAACmB,UAAU,CAAC,CAAC,CAAA;AACtD,KAAC,CAAC,CAAA;AACH,GAAA;AAED,EAAA,OAAOd,GAAG,CAAA;AACZ;;;ACpCA,IAAMe,kBAAkB,GAAG,mBAAmB,CAAA;AAE9C;AACG;AADH,IAEqBC,aAAa,gBAAA,YAAA;AAGhC;;;AAGG;;AAGH;;;AAGG;;AAGH;;;;AAIG;AACH,EAAA,SAAAA,aAAYC,CAAAA,OAAmC,EAAEC,SAAqB,EAAA;AAAA,IAAA,IAAA,CAb9DlB,GAAG,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAMFkB,SAAS,GAAA,KAAA,CAAA,CAAA;AAQhB,IAAA,IAAQxB,qBAAqB,GAAqEuB,OAAO,CAAjGvB,qBAAqB;MAAEC,aAAa,GAAsDsB,OAAO,CAA1EtB,aAAa;MAAEC,mBAAmB,GAAiCqB,OAAO,CAA3DrB,mBAAmB;MAAEC,gBAAgB,GAAeoB,OAAO,CAAtCpB,gBAAgB;MAAEC,QAAQ,GAAKmB,OAAO,CAApBnB,QAAQ,CAAA;AAC7F,IAAA,IAAI,CAACE,GAAG,GAAGP,iBAAiB,CAACC,qBAAqB,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,QAAQ,CAAC,CAAA;IACnH,IAAI,CAACoB,SAAS,GAAGA,SAAS,CAAA;AAC5B,GAAA;AAEA;;;;;;;;;;;;;;;;;;AAkBG;AAlBH,EAAA,IAAAC,MAAA,GAAAH,aAAA,CAAAI,SAAA,CAAA;AAAAD,EAAAA,MAAA,CAmBQE,aAAa,GAAb,SAAAA,aAAAA,CAAcC,MAA6B,EAAA;AACjD,IAAA,IAAMC,OAAO,GAAG,IAAIC,wBAAkB,EAAK,CAAA;IAC3C,IAAIF,MAAM,CAACG,MAAM,EAAE;AACjBH,MAAAA,MAAM,CAACT,OAAO,CAAC,UAACa,KAAK,EAAI;AACvB,QAAA,IAAQC,QAAQ,GAAcD,KAAK,CAA3BC,QAAQ;UAAEC,OAAO,GAAKF,KAAK,CAAjBE,OAAO,CAAA;AACzB,QAAA,IAAMC,IAAI,GAAGC,0BAAM,CAACH,QAAQ,CAAC,CAAA;AAE7B;AACA;AACA,QAAA,IAAIE,IAAI,CAACJ,MAAM,GAAG,CAAC,IAAII,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACrCA,UAAAA,IAAI,CAACE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAClB,SAAA;AACD,QAAA,IAAIH,OAAO,EAAE;AACXL,UAAAA,OAAO,CAACS,SAAS,CAACJ,OAAO,EAAEC,IAAI,CAAC,CAAA;AACjC,SAAA;AACH,OAAC,CAAC,CAAA;AACH,KAAA;IACD,OAAON,OAAO,CAACU,WAAW,CAAA;AAC5B,GAAA;AAEA;;;;AAIG,MAJH;EAAAd,MAAA,CAKAe,WAAW,GAAX,SAAAA,YAAYC,WAA4B,EAAEC,SAAA,EAAwB;AAAA,IAAA,IAAAC,KAAA,GAAA,IAAA,CAAA;AAAA,IAAA,IAAxBD,SAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,SAAA,GAAsB,EAAE,CAAA;AAAA,KAAA;IAChE,IAAI,CAACD,WAAW,EAAE;AAChB,MAAA,OAAO,EAAE,CAAA;AACV,KAAA;IACD,IAAIG,SAAS,GAA0B,EAAE,CAAA;IACzC,IAAIC,gBAAU,IAAIJ,WAAW,EAAE;AAC7BG,MAAAA,SAAS,GAAGA,SAAS,CAACE,MAAM,CAC1BL,WAAW,CAACI,gBAAU,CAAE,CAACE,GAAG,CAAC,UAACb,OAAe,EAAI;AAC/C,QAAA,IAAMD,QAAQ,GAAOS,GAAAA,GAAAA,SAAS,CAACM,IAAI,CAAC,GAAG,CAAG,CAAA;QAC1C,OAAO;AACLf,UAAAA,QAAQ,EAARA,QAAQ;AACRC,UAAAA,OAAO,EAAPA,OAAO;UACPe,KAAK,EAAKhB,QAAQ,GAAIC,GAAAA,GAAAA,OAAAA;SACvB,CAAA;AACH,OAAC,CAAC,CACH,CAAA;AACF,KAAA;AACD,IAAA,OAAOjB,MAAM,CAACC,IAAI,CAACuB,WAAW,CAAC,CAACS,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;MAClD,IAAIA,GAAG,KAAKP,gBAAU,EAAE;AACtB,QAAA,IAAMQ,WAAW,GAAIZ,WAAiC,CAACW,GAAG,CAAC,CAAA;AAC3D,QAAA,IAAIE,iCAAa,CAACD,WAAW,CAAC,EAAE;AAC9BF,UAAAA,GAAG,GAAGA,GAAG,CAACL,MAAM,CAACH,KAAI,CAACH,WAAW,CAACa,WAAW,KAAAP,MAAA,CAAMJ,SAAS,EAAEU,CAAAA,GAAG,GAAE,CAAC,CAAA;AACrE,SAAA;AACF,OAAA;AACD,MAAA,OAAOD,GAAG,CAAA;KACX,EAAEP,SAAS,CAAC,CAAA;AACf,GAAA;AAEA;;;;AAIG,MAJH;AAAAnB,EAAAA,MAAA,CAKQ8B,kBAAkB,GAAlB,SAAAA,kBAAAA,CAAmBC,QAAW,EAAA;AAAA,IAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;AACpC,IAAA,IAAMC,OAAO,GAAoB;AAC/B;AACA;AACA;AACAC,MAAAA,QAAQ,EAAE,EAAE;MACZC,QAAQ,EAAA,SAAAA,QAAC1B,CAAAA,OAAe,EAAA;AACtB,QAAA,IAAI,CAACyB,QAAS,CAACE,IAAI,CAAC3B,OAAO,CAAC,CAAA;AAC9B,OAAA;KACD,CAAA;AACD,IAAA,IAAIrB,KAAK,CAACC,OAAO,CAAC0C,QAAQ,CAAC,EAAE;MAC3B,OAAOA,QAAQ,CAACN,MAAM,CAAC,UAACC,GAAG,EAAEW,KAAK,EAAEV,GAAG,EAAI;AAAA,QAAA,IAAAW,SAAA,CAAA;AACzC,QAAA,OAAAxD,QAAA,CAAY4C,EAAAA,EAAAA,GAAG,GAAAY,SAAA,OAAAA,SAAA,CAAGX,GAAG,CAAA,GAAGK,MAAI,CAACF,kBAAkB,CAACO,KAAK,CAAC,EAAAC,SAAA,EAAA,CAAA;OACvD,EAAEL,OAAO,CAAC,CAAA;AACZ,KAAA;AACD,IAAA,IAAIJ,iCAAa,CAACE,QAAQ,CAAC,EAAE;MAC3B,IAAMQ,UAAU,GAAsBR,QAA6B,CAAA;AACnE,MAAA,OAAOvC,MAAM,CAACC,IAAI,CAAC8C,UAAU,CAAC,CAACd,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;AAAA,QAAA,IAAAa,SAAA,CAAA;QACjD,OAAA1D,QAAA,KAAY4C,GAAG,GAAAc,SAAA,GAAAA,EAAAA,EAAAA,SAAA,CAAGb,GAAG,CAAA,GAAGK,MAAI,CAACF,kBAAkB,CAACS,UAAU,CAACZ,GAAG,CAAC,CAAC,EAAAa,SAAA,EAAA,CAAA;OACjE,EAAEP,OAA4B,CAAC,CAAA;AACjC,KAAA;AACD,IAAA,OAAOA,OAA4B,CAAA;AACrC,GAAA;AAEA;;;;AAIG,MAJH;AAAAjC,EAAAA,MAAA,CAKQyC,kBAAkB,GAAlB,SAAAA,kBAAAA,CAAmBC,YAA+B,EAAA;AAAA,IAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;AACxD,IAAA,OAAOnD,MAAM,CAACC,IAAI,CAACiD,YAAY,CAAC,CAACjB,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;MACnD,IAAIA,GAAG,KAAK,UAAU,EAAE;AACtB,QAAA,OAAOD,GAAG,CAAA;AACX,OAAA,MAAM;AAAA,QAAA,IAAAkB,SAAA,CAAA;AACL,QAAA,IAAMhB,WAAW,GAAIc,YAAkC,CAACf,GAAG,CAAC,CAAA;AAC5D,QAAA,IAAIE,iCAAa,CAACD,WAAW,CAAC,EAAE;AAAA,UAAA,IAAAiB,SAAA,CAAA;AAC9B,UAAA,OAAA/D,QAAA,CACK4C,EAAAA,EAAAA,GAAG,GAAAmB,SAAA,OAAAA,SAAA,CACLlB,GAAG,CAAA,GAAGgB,MAAI,CAACF,kBAAkB,CAACb,WAAW,CAAC,EAAAiB,SAAA,EAAA,CAAA;AAE9C,SAAA;AACD,QAAA,OAAA/D,QAAA,CAAA,EAAA,EAAY4C,GAAG,GAAAkB,SAAA,GAAA,EAAA,EAAAA,SAAA,CAAGjB,GAAG,CAAA,GAAGC,WAAW,EAAAgB,SAAA,EAAA,CAAA;AACpC,OAAA;KACF,EAAE,EAAoB,CAAC,CAAA;AAC1B,GAAA;AAEA;;;;;AAKG,MALH;EAAA5C,MAAA,CAMU8C,6BAA6B,GAA7B,SAAAA,8BACR3C,MAAA,EACA4C,QAA4B,EAAA;AAAA,IAAA,IAD5B5C,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAA,GAAwB,EAAE,CAAA;AAAA,KAAA;AAG1B,IAAA,OAAOA,MAAM,CAACmB,GAAG,CAAC,UAAC0B,CAAc,EAAI;AACnC,MAAA,IAAQC,YAAY,GAAyDD,CAAC,CAAtEC,YAAY;QAAEC,OAAO,GAAgDF,CAAC,CAAxDE,OAAO;QAAEC,MAAM,GAAwCH,CAAC,CAA/CG,MAAM;QAAEC,UAAU,GAA4BJ,CAAC,CAAvCI,UAAU;QAAEC,YAAY,GAAcL,CAAC,CAA3BK,YAAY;AAAKC,QAAAA,IAAI,GAAAC,6BAAA,CAAKP,CAAC,EAAAQ,SAAA,CAAA,CAAA;AAC9E,MAAA,IAAAC,aAAA,GAAuBH,IAAI,CAArB7C,OAAO;AAAPA,QAAAA,OAAO,GAAAgD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA,CAAA;MAClB,IAAIjD,QAAQ,GAAGyC,YAAY,CAACS,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;MAC/C,IAAIlC,KAAK,GAAG,CAAGhB,QAAQ,SAAIC,OAAO,EAAGkD,IAAI,EAAE,CAAA;MAE3C,IAAI,iBAAiB,IAAIR,MAAM,EAAE;QAC/B3C,QAAQ,GAAGA,QAAQ,GAAMA,QAAQ,GAAA,GAAA,GAAI2C,MAAM,CAACS,eAAe,GAAKT,MAAM,CAACS,eAAe,CAAA;AACtF,QAAA,IAAMC,eAAe,GAAWV,MAAM,CAACS,eAAe,CAAA;AACtD,QAAA,IAAME,aAAa,GAAGC,kBAAY,CAACC,uBAAG,CAACjB,QAAQ,EAAKvC,EAAAA,GAAAA,QAAQ,CAACkD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAG,CAAC,CAACO,KAAK,CAAA;AAEzF,QAAA,IAAIH,aAAa,EAAE;UACjBrD,OAAO,GAAGA,OAAO,CAACiD,OAAO,CAACG,eAAe,EAAEC,aAAa,CAAC,CAAA;AAC1D,SAAA,MAAM;AACL,UAAA,IAAMI,iBAAiB,GAAGF,uBAAG,CAACX,YAAY,EAAE,CAACc,oBAAc,EAAEN,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;AAEvF,UAAA,IAAIK,iBAAiB,EAAE;YACrBzD,OAAO,GAAGA,OAAO,CAACiD,OAAO,CAACG,eAAe,EAAEK,iBAAiB,CAAC,CAAA;AAC9D,WAAA;AACF,SAAA;AAED1C,QAAAA,KAAK,GAAGf,OAAO,CAAA;AAChB,OAAA,MAAM;AACL,QAAA,IAAMqD,cAAa,GAAGC,kBAAY,CAACC,uBAAG,CAACjB,QAAQ,EAAKvC,EAAAA,GAAAA,QAAQ,CAACkD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAG,CAAC,CAACO,KAAK,CAAA;AAEzF,QAAA,IAAIH,cAAa,EAAE;AACjBtC,UAAAA,KAAK,GAAG,CAAIsC,GAAAA,GAAAA,cAAa,UAAKrD,OAAO,EAAGkD,IAAI,EAAE,CAAA;AAC/C,SAAA,MAAM;UACL,IAAMO,kBAAiB,GAAGb,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEY,KAAK,CAAA;AAE7C,UAAA,IAAIC,kBAAiB,EAAE;AACrB1C,YAAAA,KAAK,GAAG,CAAI0C,GAAAA,GAAAA,kBAAiB,UAAKzD,OAAO,EAAGkD,IAAI,EAAE,CAAA;AACnD,WAAA;AACF,SAAA;AACF,OAAA;AAED;MACA,OAAO;AACLS,QAAAA,IAAI,EAAElB,OAAO;AACb1C,QAAAA,QAAQ,EAARA,QAAQ;AACRC,QAAAA,OAAO,EAAPA,OAAO;AACP0C,QAAAA,MAAM,EAANA,MAAM;AACN3B,QAAAA,KAAK,EAALA,KAAK;AACL4B,QAAAA,UAAU,EAAVA,UAAAA;OACD,CAAA;AACH,KAAC,CAAC,CAAA;AACJ,GAAA;AAEA;;;;;AAKG,MALH;EAAApD,MAAA,CAMAqE,aAAa,GAAb,SAAAA,cAA4BC,MAAkB,EAAEvC,QAAY,EAAA;IAC1D,IAAIwC,gBAAgB,GAAsBC,SAAS,CAAA;AACnD,IAAA,IAAIC,iBAA+C,CAAA;AACnD,IAAA,IAAIH,MAAM,CAAC,KAAK,CAAC,EAAE;MACjBG,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC6F,SAAS,CAACJ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACtD,KAAA;IACD,IAAI;MACF,IAAIG,iBAAiB,KAAKD,SAAS,EAAE;QACnCC,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC8F,OAAO,CAACL,MAAM,CAAC,CAAA;AAC7C,OAAA;MACDG,iBAAiB,CAAC1C,QAAQ,CAAC,CAAA;KAC5B,CAAC,OAAO6C,GAAG,EAAE;AACZL,MAAAA,gBAAgB,GAAGK,GAAY,CAAA;AAChC,KAAA;AAED,IAAA,IAAIzE,MAAM,CAAA;AACV,IAAA,IAAIsE,iBAAiB,EAAE;AACrB,MAAA,IAAI,OAAO,IAAI,CAAC1E,SAAS,KAAK,UAAU,EAAE;AACxC,QAAA,IAAI,CAACA,SAAS,CAAC0E,iBAAiB,CAACtE,MAAM,CAAC,CAAA;AACzC,OAAA;AACDA,MAAAA,MAAM,GAAGsE,iBAAiB,CAACtE,MAAM,IAAIqE,SAAS,CAAA;AAE9C;MACAC,iBAAiB,CAACtE,MAAM,GAAG,IAAI,CAAA;AAChC,KAAA;IAED,OAAO;AACLA,MAAAA,MAAM,EAAEA,MAA6B;AACrC0E,MAAAA,eAAe,EAAEN,gBAAAA;KAClB,CAAA;AACH,GAAA;AAEA;;;;;;;;;;AAUG,MAVH;AAAAvE,EAAAA,MAAA,CAWA8E,gBAAgB,GAAhB,SAAAA,iBACE/C,QAAuB,EACvBuC,MAAS,EACTS,cAAyC,EACzCC,eAA2C,EAC3CjC,QAA4B,EAAA;IAE5B,IAAMkC,SAAS,GAAG,IAAI,CAACZ,aAAa,CAAcC,MAAM,EAAEvC,QAAQ,CAAC,CAAA;AACnE,IAAA,IAAyBmD,kBAAkB,GAAKD,SAAS,CAAjDJ,eAAe,CAAA;IACvB,IAAI1E,MAAM,GAAG,IAAI,CAAC2C,6BAA6B,CAACmC,SAAS,CAAC9E,MAAM,EAAE4C,QAAQ,CAAC,CAAA;AAE3E,IAAA,IAAImC,kBAAkB,EAAE;AACtB/E,MAAAA,MAAM,GAAAkB,EAAAA,CAAAA,MAAA,CAAOlB,MAAM,EAAE,CAAA;QAAEqB,KAAK,EAAE0D,kBAAmB,CAACzE,OAAAA;AAAO,OAAE,CAAC,CAAA,CAAA;AAC7D,KAAA;AACD,IAAA,IAAI,OAAOuE,eAAe,KAAK,UAAU,EAAE;AACzC7E,MAAAA,MAAM,GAAG6E,eAAe,CAAC7E,MAAM,EAAE4C,QAAQ,CAAC,CAAA;AAC3C,KAAA;AAED,IAAA,IAAI/B,WAAW,GAAG,IAAI,CAACd,aAAa,CAACC,MAAM,CAAC,CAAA;AAE5C,IAAA,IAAI+E,kBAAkB,EAAE;MACtBlE,WAAW,GAAAlC,QAAA,CAAA,EAAA,EACNkC,WAAW,EAAA;AACdmE,QAAAA,OAAO,EAAE;AACPjD,UAAAA,QAAQ,EAAE,CAACgD,kBAAmB,CAACzE,OAAO,CAAA;AACvC,SAAA;OACF,CAAA,CAAA;AACF,KAAA;AAED,IAAA,IAAI,OAAOsE,cAAc,KAAK,UAAU,EAAE;MACxC,OAAO;AAAE5E,QAAAA,MAAM,EAANA,MAAM;AAAEa,QAAAA,WAAW,EAAXA,WAAAA;OAAa,CAAA;AAC/B,KAAA;AAED;AACA,IAAA,IAAMoE,WAAW,GAAGC,yBAAmB,CAAU,IAAI,EAAEf,MAAM,EAAEvC,QAAQ,EAAEuC,MAAM,EAAE,IAAI,CAAM,CAAA;AAE3F,IAAA,IAAM5B,YAAY,GAAGqC,cAAc,CAACK,WAAW,EAAE,IAAI,CAACtD,kBAAkB,CAACsD,WAAW,CAAC,EAAErC,QAAQ,CAAC,CAAA;AAChG,IAAA,IAAMuC,eAAe,GAAG,IAAI,CAAC7C,kBAAkB,CAACC,YAAY,CAAC,CAAA;IAC7D,OAAO6C,yBAAmB,CAAU,IAAI,EAAE;AAAEpF,MAAAA,MAAM,EAANA,MAAM;AAAEa,MAAAA,WAAW,EAAXA,WAAAA;KAAa,EAAEsE,eAAe,CAAC,CAAA;AACrF,GAAA;AAEA;;;;;AAKG,MALH;AAAAtF,EAAAA,MAAA,CAMQwF,qBAAqB,GAArB,SAAAA,qBAAAA,CAAsBC,IAAO,EAAA;AACnC,IAAA,KAAK,IAAM9D,GAAG,IAAI8D,IAAI,EAAE;MACtB,IAAMC,OAAO,GAAsBD,IAAI,CAAA;AACvC,MAAA,IAAMpD,KAAK,GAAGqD,OAAO,CAAC/D,GAAG,CAAC,CAAA;AAC1B,MAAA,IAAIA,GAAG,KAAKgE,aAAO,IAAI,OAAOtD,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACuD,UAAU,CAAC,GAAG,CAAC,EAAE;AACzEF,QAAAA,OAAO,CAAC/D,GAAG,CAAC,GAAG/B,kBAAkB,GAAGyC,KAAK,CAAA;AAC1C,OAAA,MAAM;QACLqD,OAAO,CAAC/D,GAAG,CAAC,GAAG,IAAI,CAACkE,eAAe,CAACxD,KAAK,CAAC,CAAA;AAC3C,OAAA;AACF,KAAA;AACD,IAAA,OAAOoD,IAAI,CAAA;AACb,GAAA;AAEA;;;;;AAKG,MALH;AAAAzF,EAAAA,MAAA,CAMQ8F,oBAAoB,GAApB,SAAAA,oBAAAA,CAAqBL,IAAS,EAAA;AACpC,IAAA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,IAAI,CAACnF,MAAM,EAAEyF,CAAC,EAAE,EAAE;AACpCN,MAAAA,IAAI,CAACM,CAAC,CAAC,GAAG,IAAI,CAACF,eAAe,CAACJ,IAAI,CAACM,CAAC,CAAC,CAAM,CAAA;AAC7C,KAAA;AACD,IAAA,OAAON,IAAI,CAAA;AACb,GAAA;AAEA;;;;;;;AAOG,MAPH;EAAAzF,MAAA,CAQAgG,OAAO,GAAP,SAAAA,OAAAA,CAAQ1B,MAAS,EAAEvC,QAAuB,EAAEkE,UAAa,EAAA;AAAA,IAAA,IAAAC,eAAA,CAAA;IACvD,IAAMC,YAAY,GAAAD,CAAAA,eAAA,GAAGD,UAAU,CAAC,KAAK,CAAC,KAAA,IAAA,GAAAC,eAAA,GAAItG,kBAAkB,CAAA;IAC5D,IAAI;AACF;AACA;AACA;AACA;MACA,IAAI,IAAI,CAACf,GAAG,CAAC6F,SAAS,CAACyB,YAAY,CAAC,KAAK3B,SAAS,EAAE;QAClD,IAAI,CAAC3F,GAAG,CAACuH,SAAS,CAACH,UAAU,EAAEE,YAAY,CAAC,CAAA;AAC7C,OAAA;AACD,MAAA,IAAME,qBAAqB,GAAG,IAAI,CAACR,eAAe,CAACvB,MAAM,CAAM,CAAA;AAC/D,MAAA,IAAIG,iBAA+C,CAAA;AACnD,MAAA,IAAI4B,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAChC5B,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC6F,SAAS,CAAC2B,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;AACrE,OAAA;MACD,IAAI5B,iBAAiB,KAAKD,SAAS,EAAE;QACnCC,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC8F,OAAO,CAAC0B,qBAAqB,CAAC,CAAA;AAC5D,OAAA;AACD,MAAA,IAAMC,MAAM,GAAG7B,iBAAiB,CAAC1C,QAAQ,CAAC,CAAA;AAC1C,MAAA,OAAOuE,MAAiB,CAAA;KACzB,CAAC,OAAOtD,CAAC,EAAE;AACVuD,MAAAA,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAExD,CAAC,CAAC,CAAA;AACtD,MAAA,OAAO,KAAK,CAAA;AACb,KAAA,SAAS;AACR;AACA;AACA,MAAA,IAAI,CAACnE,GAAG,CAAC4H,YAAY,CAACN,YAAY,CAAC,CAAA;AACpC,KAAA;AACH,GAAA;AAEA;;;;;AAKG,MALH;AAAAnG,EAAAA,MAAA,CAMU6F,eAAe,GAAf,SAAAA,eAAAA,CAAgBa,UAAmB,EAAA;AAC3C,IAAA,IAAItH,KAAK,CAACC,OAAO,CAACqH,UAAU,CAAC,EAAE;AAC7B,MAAA,OAAO,IAAI,CAACZ,oBAAoB,IAAAzE,MAAA,CAAKqF,UAAU,CAAE,CAAA,CAAA;AAClD,KAAA;AACD,IAAA,IAAI7E,iCAAa,CAAC6E,UAAU,CAAC,EAAE;MAC7B,OAAO,IAAI,CAAClB,qBAAqB,CAACmB,yBAAK,CAAID,UAAU,CAAC,CAAC,CAAA;AACxD,KAAA;AACD,IAAA,OAAOA,UAAU,CAAA;GAClB,CAAA;AAAA,EAAA,OAAA7G,aAAA,CAAA;AAAA,CAAA,EAAA;;AC3ZH;;;;;AAKG;AACqB,SAAA+G,kBAAkBA,CAIxC9G,OAAsC,EAAIC,SAAqB,EAAA;AAAA,EAAA,IAA/DD,OAAsC,KAAA,KAAA,CAAA,EAAA;IAAtCA,OAAsC,GAAA,EAAE,CAAA;AAAA,GAAA;AACxC,EAAA,OAAO,IAAID,aAAa,CAAUC,OAAO,EAAEC,SAAS,CAAC,CAAA;AACvD;;ACZA,YAAA,aAAe6G,kBAAkB,EAAE;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("lodash/toPath"),e=require("lodash/isObject"),t=require("lodash/clone"),a=require("@rjsf/utils"),i=require("lodash/get"),o=require("ajv"),n=require("ajv-formats");function s(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var c=s(r),u=s(e),d=s(t),l=s(i),f=s(o),h=s(n);function v(){return v=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=t[a])}return r},v.apply(this,arguments)}var m={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0},p=/^(#?([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*\)))$/,y=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/,E=["instancePath","keyword","params","schemaPath","parentSchema"],g=function(){function r(r,e){this.ajv=void 0,this.localizer=void 0,this.ajv=function(r,e,t,i,o){void 0===t&&(t={}),void 0===o&&(o=f.default);var n=new o(v({},m,t));return i?h.default(n,i):!1!==i&&h.default(n),n.addFormat("data-url",y),n.addFormat("color",p),n.addKeyword(a.ADDITIONAL_PROPERTY_FLAG),n.addKeyword(a.RJSF_ADDITONAL_PROPERTIES_FLAG),Array.isArray(r)&&n.addMetaSchema(r),u.default(e)&&Object.keys(e).forEach((function(r){n.addFormat(r,e[r])})),n}(r.additionalMetaSchemas,r.customFormats,r.ajvOptionsOverrides,r.ajvFormatOptions,r.AjvClass),this.localizer=e}var e=r.prototype;return e.toErrorSchema=function(r){var e=new a.ErrorSchemaBuilder;return r.length&&r.forEach((function(r){var t=r.message,a=c.default(r.property);a.length>0&&""===a[0]&&a.splice(0,1),t&&e.addErrors(t,a)})),e.ErrorSchema},e.toErrorList=function(r,e){var t=this;if(void 0===e&&(e=[]),!r)return[];var i=[];return a.ERRORS_KEY in r&&(i=i.concat(r[a.ERRORS_KEY].map((function(r){var t="."+e.join(".");return{property:t,message:r,stack:t+" "+r}})))),Object.keys(r).reduce((function(i,o){return o!==a.ERRORS_KEY&&(i=i.concat(t.toErrorList(r[o],[].concat(e,[o])))),i}),i)},e.createErrorHandler=function(r){var e=this,t={__errors:[],addError:function(r){this.__errors.push(r)}};if(Array.isArray(r))return r.reduce((function(r,t,a){var i;return v({},r,((i={})[a]=e.createErrorHandler(t),i))}),t);if(u.default(r)){var a=r;return Object.keys(a).reduce((function(r,t){var i;return v({},r,((i={})[t]=e.createErrorHandler(a[t]),i))}),t)}return t},e.unwrapErrorHandler=function(r){var e=this;return Object.keys(r).reduce((function(t,i){var o,n;return"addError"===i?t:v({},t,i===a.ERRORS_KEY?((n={})[i]=r[i],n):((o={})[i]=e.unwrapErrorHandler(r[i]),o))}),{})},e.transformRJSFValidationErrors=function(r,e){return void 0===r&&(r=[]),r.map((function(r){var t=r.instancePath,i=r.keyword,o=r.params,n=r.schemaPath,s=r.parentSchema,c=function(r,e){if(null==r)return{};var t,a,i={},o=Object.keys(r);for(a=0;a<o.length;a++)e.indexOf(t=o[a])>=0||(i[t]=r[t]);return i}(r,E).message,u=void 0===c?"":c,d=t.replace(/\//g,"."),f=(d+" "+u).trim();if("missingProperty"in o){var h=o.missingProperty,v=a.getUiOptions(l.default(e,""+(d=d?d+"."+o.missingProperty:o.missingProperty).replace(/^\./,""))).title;if(v)u=u.replace(h,v);else{var m=l.default(s,[a.PROPERTIES_KEY,h,"title"]);m&&(u=u.replace(h,m))}f=u}else{var p=a.getUiOptions(l.default(e,""+d.replace(/^\./,""))).title;if(p)f=("'"+p+"' "+u).trim();else{var y=null==s?void 0:s.title;y&&(f=("'"+y+"' "+u).trim())}}return{name:i,property:d,message:u,params:o,stack:f,schemaPath:n}}))},e.rawValidation=function(r,e){var t,a,i=void 0;r.$id&&(t=this.ajv.getSchema(r.$id));try{void 0===t&&(t=this.ajv.compile(r)),t(e)}catch(r){i=r}return t&&("function"==typeof this.localizer&&this.localizer(t.errors),a=t.errors||void 0,t.errors=null),{errors:a,validationError:i}},e.validateFormData=function(r,e,t,i,o){var n=this.rawValidation(e,r),s=n.validationError,c=this.transformRJSFValidationErrors(n.errors,o);s&&(c=[].concat(c,[{stack:s.message}])),"function"==typeof i&&(c=i(c,o));var u=this.toErrorSchema(c);if(s&&(u=v({},u,{$schema:{__errors:[s.message]}})),"function"!=typeof t)return{errors:c,errorSchema:u};var d=a.getDefaultFormState(this,e,r,e,!0),l=t(d,this.createErrorHandler(d),o),f=this.unwrapErrorHandler(l);return a.mergeValidationData(this,{errors:c,errorSchema:u},f)},e.withIdRefPrefixObject=function(r){for(var e in r){var t=r[e];r[e]=e===a.REF_KEY&&"string"==typeof t&&t.startsWith("#")?"__rjsf_rootSchema"+t:this.withIdRefPrefix(t)}return r},e.withIdRefPrefixArray=function(r){for(var e=0;e<r.length;e++)r[e]=this.withIdRefPrefix(r[e]);return r},e.isValid=function(r,e,t){var a,i=null!=(a=t.$id)?a:"__rjsf_rootSchema";try{void 0===this.ajv.getSchema(i)&&this.ajv.addSchema(t,i);var o,n=this.withIdRefPrefix(r);return n.$id&&(o=this.ajv.getSchema(n.$id)),void 0===o&&(o=this.ajv.compile(n)),o(e)}catch(r){return console.warn("Error encountered compiling schema:",r),!1}finally{this.ajv.removeSchema(i)}},e.withIdRefPrefix=function(r){return Array.isArray(r)?this.withIdRefPrefixArray([].concat(r)):u.default(r)?this.withIdRefPrefixObject(d.default(r)):r},r}();function j(r,e){return void 0===r&&(r={}),new g(r,e)}var R=j();exports.customizeValidator=j,exports.default=R;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("lodash/toPath"),e=require("lodash/isPlainObject"),t=require("lodash/clone"),a=require("@rjsf/utils"),i=require("lodash/get"),o=require("ajv"),n=require("ajv-formats"),s=require("lodash/isObject");function c(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var u=c(r),d=c(e),l=c(t),f=c(i),h=c(o),v=c(n),m=c(s);function p(){return p=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=t[a])}return r},p.apply(this,arguments)}var y={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0},E=/^(#?([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*\)))$/,g=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/,j=["instancePath","keyword","params","schemaPath","parentSchema"],O=function(){function r(r,e){this.ajv=void 0,this.localizer=void 0,this.ajv=function(r,e,t,i,o){void 0===t&&(t={}),void 0===o&&(o=h.default);var n=new o(p({},y,t));return i?v.default(n,i):!1!==i&&v.default(n),n.addFormat("data-url",g),n.addFormat("color",E),n.addKeyword(a.ADDITIONAL_PROPERTY_FLAG),n.addKeyword(a.RJSF_ADDITONAL_PROPERTIES_FLAG),Array.isArray(r)&&n.addMetaSchema(r),m.default(e)&&Object.keys(e).forEach((function(r){n.addFormat(r,e[r])})),n}(r.additionalMetaSchemas,r.customFormats,r.ajvOptionsOverrides,r.ajvFormatOptions,r.AjvClass),this.localizer=e}var e=r.prototype;return e.toErrorSchema=function(r){var e=new a.ErrorSchemaBuilder;return r.length&&r.forEach((function(r){var t=r.message,a=u.default(r.property);a.length>0&&""===a[0]&&a.splice(0,1),t&&e.addErrors(t,a)})),e.ErrorSchema},e.toErrorList=function(r,e){var t=this;if(void 0===e&&(e=[]),!r)return[];var i=[];return a.ERRORS_KEY in r&&(i=i.concat(r[a.ERRORS_KEY].map((function(r){var t="."+e.join(".");return{property:t,message:r,stack:t+" "+r}})))),Object.keys(r).reduce((function(i,o){if(o!==a.ERRORS_KEY){var n=r[o];d.default(n)&&(i=i.concat(t.toErrorList(n,[].concat(e,[o]))))}return i}),i)},e.createErrorHandler=function(r){var e=this,t={__errors:[],addError:function(r){this.__errors.push(r)}};if(Array.isArray(r))return r.reduce((function(r,t,a){var i;return p({},r,((i={})[a]=e.createErrorHandler(t),i))}),t);if(d.default(r)){var a=r;return Object.keys(a).reduce((function(r,t){var i;return p({},r,((i={})[t]=e.createErrorHandler(a[t]),i))}),t)}return t},e.unwrapErrorHandler=function(r){var e=this;return Object.keys(r).reduce((function(t,a){if("addError"===a)return t;var i,o,n=r[a];return d.default(n)?p({},t,((o={})[a]=e.unwrapErrorHandler(n),o)):p({},t,((i={})[a]=n,i))}),{})},e.transformRJSFValidationErrors=function(r,e){return void 0===r&&(r=[]),r.map((function(r){var t=r.instancePath,i=r.keyword,o=r.params,n=r.schemaPath,s=r.parentSchema,c=function(r,e){if(null==r)return{};var t,a,i={},o=Object.keys(r);for(a=0;a<o.length;a++)e.indexOf(t=o[a])>=0||(i[t]=r[t]);return i}(r,j).message,u=void 0===c?"":c,d=t.replace(/\//g,"."),l=(d+" "+u).trim();if("missingProperty"in o){var h=o.missingProperty,v=a.getUiOptions(f.default(e,""+(d=d?d+"."+o.missingProperty:o.missingProperty).replace(/^\./,""))).title;if(v)u=u.replace(h,v);else{var m=f.default(s,[a.PROPERTIES_KEY,h,"title"]);m&&(u=u.replace(h,m))}l=u}else{var p=a.getUiOptions(f.default(e,""+d.replace(/^\./,""))).title;if(p)l=("'"+p+"' "+u).trim();else{var y=null==s?void 0:s.title;y&&(l=("'"+y+"' "+u).trim())}}return{name:i,property:d,message:u,params:o,stack:l,schemaPath:n}}))},e.rawValidation=function(r,e){var t,a,i=void 0;r.$id&&(t=this.ajv.getSchema(r.$id));try{void 0===t&&(t=this.ajv.compile(r)),t(e)}catch(r){i=r}return t&&("function"==typeof this.localizer&&this.localizer(t.errors),a=t.errors||void 0,t.errors=null),{errors:a,validationError:i}},e.validateFormData=function(r,e,t,i,o){var n=this.rawValidation(e,r),s=n.validationError,c=this.transformRJSFValidationErrors(n.errors,o);s&&(c=[].concat(c,[{stack:s.message}])),"function"==typeof i&&(c=i(c,o));var u=this.toErrorSchema(c);if(s&&(u=p({},u,{$schema:{__errors:[s.message]}})),"function"!=typeof t)return{errors:c,errorSchema:u};var d=a.getDefaultFormState(this,e,r,e,!0),l=t(d,this.createErrorHandler(d),o),f=this.unwrapErrorHandler(l);return a.mergeValidationData(this,{errors:c,errorSchema:u},f)},e.withIdRefPrefixObject=function(r){for(var e in r){var t=r[e];r[e]=e===a.REF_KEY&&"string"==typeof t&&t.startsWith("#")?"__rjsf_rootSchema"+t:this.withIdRefPrefix(t)}return r},e.withIdRefPrefixArray=function(r){for(var e=0;e<r.length;e++)r[e]=this.withIdRefPrefix(r[e]);return r},e.isValid=function(r,e,t){var a,i=null!=(a=t.$id)?a:"__rjsf_rootSchema";try{void 0===this.ajv.getSchema(i)&&this.ajv.addSchema(t,i);var o,n=this.withIdRefPrefix(r);return n.$id&&(o=this.ajv.getSchema(n.$id)),void 0===o&&(o=this.ajv.compile(n)),o(e)}catch(r){return console.warn("Error encountered compiling schema:",r),!1}finally{this.ajv.removeSchema(i)}},e.withIdRefPrefix=function(r){return Array.isArray(r)?this.withIdRefPrefixArray([].concat(r)):d.default(r)?this.withIdRefPrefixObject(l.default(r)):r},r}();function b(r,e){return void 0===r&&(r={}),new O(r,e)}var P=b();exports.customizeValidator=b,exports.default=P;
2
2
  //# sourceMappingURL=validator-ajv8.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator-ajv8.cjs.production.min.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isObject from 'lodash/isObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n acc = acc.concat(this.toErrorList((errorSchema as GenericObjectType)[key], [...fieldPath, key]));\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else if (key === ERRORS_KEY) {\n return { ...acc, [key]: (errorHandler as GenericObjectType)[key] };\n }\n return {\n ...acc,\n [key]: this.unwrapErrorHandler((errorHandler as GenericObjectType)[key]),\n };\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","AJV8Validator","options","localizer","this","ajv","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","createAjvInstance","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","message","path","toPath","property","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","_rest$message","_objectWithoutPropertiesLoose","_excluded","replace","trim","currentProperty","missingProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compiledValidator","compilationError","undefined","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","console","warn","removeSchema","schemaNode","clone","customizeValidator","index"],"mappings":"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"}
1
+ {"version":3,"file":"validator-ajv8.cjs.production.min.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isPlainObject from 'lodash/isPlainObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n const childSchema = (errorSchema as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n acc = acc.concat(this.toErrorList(childSchema, [...fieldPath, key]));\n }\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isPlainObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else {\n const childSchema = (errorHandler as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: this.unwrapErrorHandler(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isPlainObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","AJV8Validator","options","localizer","this","ajv","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","createAjvInstance","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","message","path","toPath","property","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","childSchema","isPlainObject","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","_rest$message","_objectWithoutPropertiesLoose","_excluded","replace","trim","currentProperty","missingProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compiledValidator","compilationError","undefined","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","console","warn","removeSchema","schemaNode","clone","customizeValidator","index"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import toPath from 'lodash-es/toPath';
2
- import isObject from 'lodash-es/isObject';
2
+ import isPlainObject from 'lodash-es/isPlainObject';
3
3
  import clone from 'lodash-es/clone';
4
4
  import { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG, ErrorSchemaBuilder, ERRORS_KEY, getUiOptions, PROPERTIES_KEY, getDefaultFormState, mergeValidationData, REF_KEY } from '@rjsf/utils';
5
5
  import get from 'lodash-es/get';
6
6
  import Ajv from 'ajv';
7
7
  import addFormats from 'ajv-formats';
8
+ import isObject from 'lodash-es/isObject';
8
9
 
9
10
  function _extends() {
10
11
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -184,7 +185,10 @@ var AJV8Validator = /*#__PURE__*/function () {
184
185
  }
185
186
  return Object.keys(errorSchema).reduce(function (acc, key) {
186
187
  if (key !== ERRORS_KEY) {
187
- acc = acc.concat(_this.toErrorList(errorSchema[key], [].concat(fieldPath, [key])));
188
+ var childSchema = errorSchema[key];
189
+ if (isPlainObject(childSchema)) {
190
+ acc = acc.concat(_this.toErrorList(childSchema, [].concat(fieldPath, [key])));
191
+ }
188
192
  }
189
193
  return acc;
190
194
  }, errorList);
@@ -211,7 +215,7 @@ var AJV8Validator = /*#__PURE__*/function () {
211
215
  return _extends({}, acc, (_extends2 = {}, _extends2[key] = _this2.createErrorHandler(value), _extends2));
212
216
  }, handler);
213
217
  }
214
- if (isObject(formData)) {
218
+ if (isPlainObject(formData)) {
215
219
  var formObject = formData;
216
220
  return Object.keys(formObject).reduce(function (acc, key) {
217
221
  var _extends3;
@@ -228,14 +232,17 @@ var AJV8Validator = /*#__PURE__*/function () {
228
232
  _proto.unwrapErrorHandler = function unwrapErrorHandler(errorHandler) {
229
233
  var _this3 = this;
230
234
  return Object.keys(errorHandler).reduce(function (acc, key) {
231
- var _extends5;
232
235
  if (key === 'addError') {
233
236
  return acc;
234
- } else if (key === ERRORS_KEY) {
235
- var _extends4;
236
- return _extends({}, acc, (_extends4 = {}, _extends4[key] = errorHandler[key], _extends4));
237
+ } else {
238
+ var _extends5;
239
+ var childSchema = errorHandler[key];
240
+ if (isPlainObject(childSchema)) {
241
+ var _extends4;
242
+ return _extends({}, acc, (_extends4 = {}, _extends4[key] = _this3.unwrapErrorHandler(childSchema), _extends4));
243
+ }
244
+ return _extends({}, acc, (_extends5 = {}, _extends5[key] = childSchema, _extends5));
237
245
  }
238
- return _extends({}, acc, (_extends5 = {}, _extends5[key] = _this3.unwrapErrorHandler(errorHandler[key]), _extends5));
239
246
  }, {});
240
247
  }
241
248
  /** Transforming the error output from ajv to format used by @rjsf/utils.
@@ -452,7 +459,7 @@ var AJV8Validator = /*#__PURE__*/function () {
452
459
  if (Array.isArray(schemaNode)) {
453
460
  return this.withIdRefPrefixArray([].concat(schemaNode));
454
461
  }
455
- if (isObject(schemaNode)) {
462
+ if (isPlainObject(schemaNode)) {
456
463
  return this.withIdRefPrefixObject(clone(schemaNode));
457
464
  }
458
465
  return schemaNode;
@@ -1 +1 @@
1
- {"version":3,"file":"validator-ajv8.esm.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isObject from 'lodash/isObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n acc = acc.concat(this.toErrorList((errorSchema as GenericObjectType)[key], [...fieldPath, key]));\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else if (key === ERRORS_KEY) {\n return { ...acc, [key]: (errorHandler as GenericObjectType)[key] };\n }\n return {\n ...acc,\n [key]: this.unwrapErrorHandler((errorHandler as GenericObjectType)[key]),\n };\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","property","message","path","toPath","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","rest","_objectWithoutPropertiesLoose","_excluded","_rest$message","replace","trim","missingProperty","currentProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compilationError","undefined","compiledValidator","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","realObj","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","result","console","warn","removeSchema","schemaNode","clone","customizeValidator"],"mappings":"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"}
1
+ {"version":3,"file":"validator-ajv8.esm.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isPlainObject from 'lodash/isPlainObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n const childSchema = (errorSchema as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n acc = acc.concat(this.toErrorList(childSchema, [...fieldPath, key]));\n }\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isPlainObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else {\n const childSchema = (errorHandler as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: this.unwrapErrorHandler(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isPlainObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","property","message","path","toPath","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","childSchema","isPlainObject","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","rest","_objectWithoutPropertiesLoose","_excluded","_rest$message","replace","trim","missingProperty","currentProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compilationError","undefined","compiledValidator","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","realObj","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","result","console","warn","removeSchema","schemaNode","clone","customizeValidator"],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash-es/toPath'), require('lodash-es/isObject'), require('lodash-es/clone'), require('@rjsf/utils'), require('lodash-es/get'), require('ajv'), require('ajv-formats')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'lodash-es/toPath', 'lodash-es/isObject', 'lodash-es/clone', '@rjsf/utils', 'lodash-es/get', 'ajv', 'ajv-formats'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@rjsf/validator-ajv8"] = {}, global.toPath, global.isObject, global.clone, global.utils, global.get, global.Ajv, global.addFormats));
5
- })(this, (function (exports, toPath, isObject, clone, utils, get, Ajv, addFormats) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash-es/toPath'), require('lodash-es/isPlainObject'), require('lodash-es/clone'), require('@rjsf/utils'), require('lodash-es/get'), require('ajv'), require('ajv-formats'), require('lodash-es/isObject')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'lodash-es/toPath', 'lodash-es/isPlainObject', 'lodash-es/clone', '@rjsf/utils', 'lodash-es/get', 'ajv', 'ajv-formats', 'lodash-es/isObject'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@rjsf/validator-ajv8"] = {}, global.toPath, global.isPlainObject, global.clone, global.utils, global.get, global.Ajv, global.addFormats, global.isObject));
5
+ })(this, (function (exports, toPath, isPlainObject, clone, utils, get, Ajv, addFormats, isObject) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
9
  var toPath__default = /*#__PURE__*/_interopDefaultLegacy(toPath);
10
- var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
10
+ var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
11
11
  var clone__default = /*#__PURE__*/_interopDefaultLegacy(clone);
12
12
  var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
13
13
  var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv);
14
14
  var addFormats__default = /*#__PURE__*/_interopDefaultLegacy(addFormats);
15
+ var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
15
16
 
16
17
  function _extends() {
17
18
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -191,7 +192,10 @@
191
192
  }
192
193
  return Object.keys(errorSchema).reduce(function (acc, key) {
193
194
  if (key !== utils.ERRORS_KEY) {
194
- acc = acc.concat(_this.toErrorList(errorSchema[key], [].concat(fieldPath, [key])));
195
+ var childSchema = errorSchema[key];
196
+ if (isPlainObject__default["default"](childSchema)) {
197
+ acc = acc.concat(_this.toErrorList(childSchema, [].concat(fieldPath, [key])));
198
+ }
195
199
  }
196
200
  return acc;
197
201
  }, errorList);
@@ -218,7 +222,7 @@
218
222
  return _extends({}, acc, (_extends2 = {}, _extends2[key] = _this2.createErrorHandler(value), _extends2));
219
223
  }, handler);
220
224
  }
221
- if (isObject__default["default"](formData)) {
225
+ if (isPlainObject__default["default"](formData)) {
222
226
  var formObject = formData;
223
227
  return Object.keys(formObject).reduce(function (acc, key) {
224
228
  var _extends3;
@@ -235,14 +239,17 @@
235
239
  _proto.unwrapErrorHandler = function unwrapErrorHandler(errorHandler) {
236
240
  var _this3 = this;
237
241
  return Object.keys(errorHandler).reduce(function (acc, key) {
238
- var _extends5;
239
242
  if (key === 'addError') {
240
243
  return acc;
241
- } else if (key === utils.ERRORS_KEY) {
242
- var _extends4;
243
- return _extends({}, acc, (_extends4 = {}, _extends4[key] = errorHandler[key], _extends4));
244
+ } else {
245
+ var _extends5;
246
+ var childSchema = errorHandler[key];
247
+ if (isPlainObject__default["default"](childSchema)) {
248
+ var _extends4;
249
+ return _extends({}, acc, (_extends4 = {}, _extends4[key] = _this3.unwrapErrorHandler(childSchema), _extends4));
250
+ }
251
+ return _extends({}, acc, (_extends5 = {}, _extends5[key] = childSchema, _extends5));
244
252
  }
245
- return _extends({}, acc, (_extends5 = {}, _extends5[key] = _this3.unwrapErrorHandler(errorHandler[key]), _extends5));
246
253
  }, {});
247
254
  }
248
255
  /** Transforming the error output from ajv to format used by @rjsf/utils.
@@ -459,7 +466,7 @@
459
466
  if (Array.isArray(schemaNode)) {
460
467
  return this.withIdRefPrefixArray([].concat(schemaNode));
461
468
  }
462
- if (isObject__default["default"](schemaNode)) {
469
+ if (isPlainObject__default["default"](schemaNode)) {
463
470
  return this.withIdRefPrefixObject(clone__default["default"](schemaNode));
464
471
  }
465
472
  return schemaNode;
@@ -1 +1 @@
1
- {"version":3,"file":"validator-ajv8.umd.development.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isObject from 'lodash/isObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n acc = acc.concat(this.toErrorList((errorSchema as GenericObjectType)[key], [...fieldPath, key]));\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else if (key === ERRORS_KEY) {\n return { ...acc, [key]: (errorHandler as GenericObjectType)[key] };\n }\n return {\n ...acc,\n [key]: this.unwrapErrorHandler((errorHandler as GenericObjectType)[key]),\n };\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","property","message","path","toPath","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","rest","_objectWithoutPropertiesLoose","_excluded","_rest$message","replace","trim","missingProperty","currentProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compilationError","undefined","compiledValidator","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","realObj","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","result","console","warn","removeSchema","schemaNode","clone","customizeValidator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOO,IAAMA,UAAU,GAAY;EACjCC,EAAAA,SAAS,EAAE,IAAI;EACfC,EAAAA,mBAAmB,EAAE,CAAC;EACtBC,EAAAA,MAAM,EAAE,KAAK;EACbC,EAAAA,OAAO,EAAE,IAAA;GACD,CAAA;EACH,IAAMC,kBAAkB,GAC7B,4YAA4Y,CAAA;EACvY,IAAMC,qBAAqB,GAAG,2DAA2D,CAAA;EAEhG;;;;;;;;;;;;;;EAcG;EACqB,SAAAC,iBAAiBA,CACvCC,qBAA2E,EAC3EC,aAA2D,EAC3DC,qBACAC,gBAA+C,EAC/CC,UAA0B;EAAA,EAAA,IAF1BF;MAAAA,sBAAyE,EAAE,CAAA;EAAA,GAAA;EAAA,EAAA,IAE3EE;EAAAA,IAAAA,WAAuBC,uBAAG,CAAA;EAAA,GAAA;IAE1B,IAAMC,GAAG,GAAG,IAAIF,QAAQ,CAAAG,QAAA,CAAMf,EAAAA,EAAAA,UAAU,EAAKU,mBAAmB,CAAG,CAAA,CAAA;EACnE,EAAA,IAAIC,gBAAgB,EAAE;EACpBK,IAAAA,8BAAU,CAACF,GAAG,EAAEH,gBAAgB,CAAC,CAAA;EAClC,GAAA,MAAM,IAAIA,gBAAgB,KAAK,KAAK,EAAE;MACrCK,8BAAU,CAACF,GAAG,CAAC,CAAA;EAChB,GAAA;EAED;EACAA,EAAAA,GAAG,CAACG,SAAS,CAAC,UAAU,EAAEX,qBAAqB,CAAC,CAAA;EAChDQ,EAAAA,GAAG,CAACG,SAAS,CAAC,OAAO,EAAEZ,kBAAkB,CAAC,CAAA;EAE1C;EACAS,EAAAA,GAAG,CAACI,UAAU,CAACC,8BAAwB,CAAC,CAAA;EACxCL,EAAAA,GAAG,CAACI,UAAU,CAACE,oCAA8B,CAAC,CAAA;EAE9C;EACA,EAAA,IAAIC,KAAK,CAACC,OAAO,CAACd,qBAAqB,CAAC,EAAE;EACxCM,IAAAA,GAAG,CAACS,aAAa,CAACf,qBAAqB,CAAC,CAAA;EACzC,GAAA;EAED;EACA,EAAA,IAAIgB,4BAAQ,CAACf,aAAa,CAAC,EAAE;MAC3BgB,MAAM,CAACC,IAAI,CAACjB,aAAa,CAAC,CAACkB,OAAO,CAAC,UAACC,UAAU,EAAI;QAChDd,GAAG,CAACG,SAAS,CAACW,UAAU,EAAEnB,aAAa,CAACmB,UAAU,CAAC,CAAC,CAAA;EACtD,KAAC,CAAC,CAAA;EACH,GAAA;EAED,EAAA,OAAOd,GAAG,CAAA;EACZ;;;ECpCA,IAAMe,kBAAkB,GAAG,mBAAmB,CAAA;EAE9C;EACG;EADH,IAEqBC,aAAa,gBAAA,YAAA;EAGhC;;;EAGG;;EAGH;;;EAGG;;EAGH;;;;EAIG;EACH,EAAA,SAAAA,aAAYC,CAAAA,OAAmC,EAAEC,SAAqB,EAAA;EAAA,IAAA,IAAA,CAb9DlB,GAAG,GAAA,KAAA,CAAA,CAAA;EAAA,IAAA,IAAA,CAMFkB,SAAS,GAAA,KAAA,CAAA,CAAA;EAQhB,IAAA,IAAQxB,qBAAqB,GAAqEuB,OAAO,CAAjGvB,qBAAqB;QAAEC,aAAa,GAAsDsB,OAAO,CAA1EtB,aAAa;QAAEC,mBAAmB,GAAiCqB,OAAO,CAA3DrB,mBAAmB;QAAEC,gBAAgB,GAAeoB,OAAO,CAAtCpB,gBAAgB;QAAEC,QAAQ,GAAKmB,OAAO,CAApBnB,QAAQ,CAAA;EAC7F,IAAA,IAAI,CAACE,GAAG,GAAGP,iBAAiB,CAACC,qBAAqB,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,QAAQ,CAAC,CAAA;MACnH,IAAI,CAACoB,SAAS,GAAGA,SAAS,CAAA;EAC5B,GAAA;EAEA;;;;;;;;;;;;;;;;;;EAkBG;EAlBH,EAAA,IAAAC,MAAA,GAAAH,aAAA,CAAAI,SAAA,CAAA;EAAAD,EAAAA,MAAA,CAmBQE,aAAa,GAAb,SAAAA,aAAAA,CAAcC,MAA6B,EAAA;EACjD,IAAA,IAAMC,OAAO,GAAG,IAAIC,wBAAkB,EAAK,CAAA;MAC3C,IAAIF,MAAM,CAACG,MAAM,EAAE;EACjBH,MAAAA,MAAM,CAACT,OAAO,CAAC,UAACa,KAAK,EAAI;EACvB,QAAA,IAAQC,QAAQ,GAAcD,KAAK,CAA3BC,QAAQ;YAAEC,OAAO,GAAKF,KAAK,CAAjBE,OAAO,CAAA;EACzB,QAAA,IAAMC,IAAI,GAAGC,0BAAM,CAACH,QAAQ,CAAC,CAAA;EAE7B;EACA;EACA,QAAA,IAAIE,IAAI,CAACJ,MAAM,GAAG,CAAC,IAAII,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;EACrCA,UAAAA,IAAI,CAACE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;EAClB,SAAA;EACD,QAAA,IAAIH,OAAO,EAAE;EACXL,UAAAA,OAAO,CAACS,SAAS,CAACJ,OAAO,EAAEC,IAAI,CAAC,CAAA;EACjC,SAAA;EACH,OAAC,CAAC,CAAA;EACH,KAAA;MACD,OAAON,OAAO,CAACU,WAAW,CAAA;EAC5B,GAAA;EAEA;;;;EAIG,MAJH;IAAAd,MAAA,CAKAe,WAAW,GAAX,SAAAA,YAAYC,WAA4B,EAAEC,SAAA,EAAwB;EAAA,IAAA,IAAAC,KAAA,GAAA,IAAA,CAAA;EAAA,IAAA,IAAxBD,SAAA,KAAA,KAAA,CAAA,EAAA;EAAAA,MAAAA,SAAA,GAAsB,EAAE,CAAA;EAAA,KAAA;MAChE,IAAI,CAACD,WAAW,EAAE;EAChB,MAAA,OAAO,EAAE,CAAA;EACV,KAAA;MACD,IAAIG,SAAS,GAA0B,EAAE,CAAA;MACzC,IAAIC,gBAAU,IAAIJ,WAAW,EAAE;EAC7BG,MAAAA,SAAS,GAAGA,SAAS,CAACE,MAAM,CAC1BL,WAAW,CAACI,gBAAU,CAAE,CAACE,GAAG,CAAC,UAACb,OAAe,EAAI;EAC/C,QAAA,IAAMD,QAAQ,GAAOS,GAAAA,GAAAA,SAAS,CAACM,IAAI,CAAC,GAAG,CAAG,CAAA;UAC1C,OAAO;EACLf,UAAAA,QAAQ,EAARA,QAAQ;EACRC,UAAAA,OAAO,EAAPA,OAAO;YACPe,KAAK,EAAKhB,QAAQ,GAAIC,GAAAA,GAAAA,OAAAA;WACvB,CAAA;EACH,OAAC,CAAC,CACH,CAAA;EACF,KAAA;EACD,IAAA,OAAOjB,MAAM,CAACC,IAAI,CAACuB,WAAW,CAAC,CAACS,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;QAClD,IAAIA,GAAG,KAAKP,gBAAU,EAAE;UACtBM,GAAG,GAAGA,GAAG,CAACL,MAAM,CAACH,KAAI,CAACH,WAAW,CAAEC,WAAiC,CAACW,GAAG,CAAC,KAAAN,MAAA,CAAMJ,SAAS,EAAEU,CAAAA,GAAG,GAAE,CAAC,CAAA;EACjG,OAAA;EACD,MAAA,OAAOD,GAAG,CAAA;OACX,EAAEP,SAAS,CAAC,CAAA;EACf,GAAA;EAEA;;;;EAIG,MAJH;EAAAnB,EAAAA,MAAA,CAKQ4B,kBAAkB,GAAlB,SAAAA,kBAAAA,CAAmBC,QAAW,EAAA;EAAA,IAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;EACpC,IAAA,IAAMC,OAAO,GAAoB;EAC/B;EACA;EACA;EACAC,MAAAA,QAAQ,EAAE,EAAE;QACZC,QAAQ,EAAA,SAAAA,QAACxB,CAAAA,OAAe,EAAA;EACtB,QAAA,IAAI,CAACuB,QAAS,CAACE,IAAI,CAACzB,OAAO,CAAC,CAAA;EAC9B,OAAA;OACD,CAAA;EACD,IAAA,IAAIrB,KAAK,CAACC,OAAO,CAACwC,QAAQ,CAAC,EAAE;QAC3B,OAAOA,QAAQ,CAACJ,MAAM,CAAC,UAACC,GAAG,EAAES,KAAK,EAAER,GAAG,EAAI;EAAA,QAAA,IAAAS,SAAA,CAAA;EACzC,QAAA,OAAAtD,QAAA,CAAY4C,EAAAA,EAAAA,GAAG,GAAAU,SAAA,OAAAA,SAAA,CAAGT,GAAG,CAAA,GAAGG,MAAI,CAACF,kBAAkB,CAACO,KAAK,CAAC,EAAAC,SAAA,EAAA,CAAA;SACvD,EAAEL,OAAO,CAAC,CAAA;EACZ,KAAA;EACD,IAAA,IAAIxC,4BAAQ,CAACsC,QAAQ,CAAC,EAAE;QACtB,IAAMQ,UAAU,GAAsBR,QAA6B,CAAA;EACnE,MAAA,OAAOrC,MAAM,CAACC,IAAI,CAAC4C,UAAU,CAAC,CAACZ,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;EAAA,QAAA,IAAAW,SAAA,CAAA;UACjD,OAAAxD,QAAA,KAAY4C,GAAG,GAAAY,SAAA,GAAAA,EAAAA,EAAAA,SAAA,CAAGX,GAAG,CAAA,GAAGG,MAAI,CAACF,kBAAkB,CAACS,UAAU,CAACV,GAAG,CAAC,CAAC,EAAAW,SAAA,EAAA,CAAA;SACjE,EAAEP,OAA4B,CAAC,CAAA;EACjC,KAAA;EACD,IAAA,OAAOA,OAA4B,CAAA;EACrC,GAAA;EAEA;;;;EAIG,MAJH;EAAA/B,EAAAA,MAAA,CAKQuC,kBAAkB,GAAlB,SAAAA,kBAAAA,CAAmBC,YAA+B,EAAA;EAAA,IAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;EACxD,IAAA,OAAOjD,MAAM,CAACC,IAAI,CAAC+C,YAAY,CAAC,CAACf,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;EAAA,MAAA,IAAAe,SAAA,CAAA;QACnD,IAAIf,GAAG,KAAK,UAAU,EAAE;EACtB,QAAA,OAAOD,GAAG,CAAA;EACX,OAAA,MAAM,IAAIC,GAAG,KAAKP,gBAAU,EAAE;EAAA,QAAA,IAAAuB,SAAA,CAAA;EAC7B,QAAA,OAAA7D,QAAA,CAAA,EAAA,EAAY4C,GAAG,GAAAiB,SAAA,GAAAA,EAAAA,EAAAA,SAAA,CAAGhB,GAAG,IAAIa,YAAkC,CAACb,GAAG,CAAC,EAAAgB,SAAA,EAAA,CAAA;EACjE,OAAA;QACD,OAAA7D,QAAA,KACK4C,GAAG,GAAAgB,SAAA,GAAAA,EAAAA,EAAAA,SAAA,CACLf,GAAG,CAAA,GAAGc,MAAI,CAACF,kBAAkB,CAAEC,YAAkC,CAACb,GAAG,CAAC,CAAC,EAAAe,SAAA,EAAA,CAAA;OAE3E,EAAE,EAAoB,CAAC,CAAA;EAC1B,GAAA;EAEA;;;;;EAKG,MALH;IAAA1C,MAAA,CAMU4C,6BAA6B,GAA7B,SAAAA,8BACRzC,MAAA,EACA0C,QAA4B,EAAA;EAAA,IAAA,IAD5B1C,MAAA,KAAA,KAAA,CAAA,EAAA;EAAAA,MAAAA,MAAA,GAAwB,EAAE,CAAA;EAAA,KAAA;EAG1B,IAAA,OAAOA,MAAM,CAACmB,GAAG,CAAC,UAACwB,CAAc,EAAI;EACnC,MAAA,IAAQC,YAAY,GAAyDD,CAAC,CAAtEC,YAAY;UAAEC,OAAO,GAAgDF,CAAC,CAAxDE,OAAO;UAAEC,MAAM,GAAwCH,CAAC,CAA/CG,MAAM;UAAEC,UAAU,GAA4BJ,CAAC,CAAvCI,UAAU;UAAEC,YAAY,GAAcL,CAAC,CAA3BK,YAAY;EAAKC,QAAAA,IAAI,GAAAC,6BAAA,CAAKP,CAAC,EAAAQ,SAAA,CAAA,CAAA;EAC9E,MAAA,IAAAC,aAAA,GAAuBH,IAAI,CAArB3C,OAAO;EAAPA,QAAAA,OAAO,GAAA8C,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA,CAAA;QAClB,IAAI/C,QAAQ,GAAGuC,YAAY,CAACS,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/C,IAAIhC,KAAK,GAAG,CAAGhB,QAAQ,SAAIC,OAAO,EAAGgD,IAAI,EAAE,CAAA;QAE3C,IAAI,iBAAiB,IAAIR,MAAM,EAAE;UAC/BzC,QAAQ,GAAGA,QAAQ,GAAMA,QAAQ,GAAA,GAAA,GAAIyC,MAAM,CAACS,eAAe,GAAKT,MAAM,CAACS,eAAe,CAAA;EACtF,QAAA,IAAMC,eAAe,GAAWV,MAAM,CAACS,eAAe,CAAA;EACtD,QAAA,IAAME,aAAa,GAAGC,kBAAY,CAACC,uBAAG,CAACjB,QAAQ,EAAKrC,EAAAA,GAAAA,QAAQ,CAACgD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAG,CAAC,CAACO,KAAK,CAAA;EAEzF,QAAA,IAAIH,aAAa,EAAE;YACjBnD,OAAO,GAAGA,OAAO,CAAC+C,OAAO,CAACG,eAAe,EAAEC,aAAa,CAAC,CAAA;EAC1D,SAAA,MAAM;EACL,UAAA,IAAMI,iBAAiB,GAAGF,uBAAG,CAACX,YAAY,EAAE,CAACc,oBAAc,EAAEN,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;EAEvF,UAAA,IAAIK,iBAAiB,EAAE;cACrBvD,OAAO,GAAGA,OAAO,CAAC+C,OAAO,CAACG,eAAe,EAAEK,iBAAiB,CAAC,CAAA;EAC9D,WAAA;EACF,SAAA;EAEDxC,QAAAA,KAAK,GAAGf,OAAO,CAAA;EAChB,OAAA,MAAM;EACL,QAAA,IAAMmD,cAAa,GAAGC,kBAAY,CAACC,uBAAG,CAACjB,QAAQ,EAAKrC,EAAAA,GAAAA,QAAQ,CAACgD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAG,CAAC,CAACO,KAAK,CAAA;EAEzF,QAAA,IAAIH,cAAa,EAAE;EACjBpC,UAAAA,KAAK,GAAG,CAAIoC,GAAAA,GAAAA,cAAa,UAAKnD,OAAO,EAAGgD,IAAI,EAAE,CAAA;EAC/C,SAAA,MAAM;YACL,IAAMO,kBAAiB,GAAGb,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEY,KAAK,CAAA;EAE7C,UAAA,IAAIC,kBAAiB,EAAE;EACrBxC,YAAAA,KAAK,GAAG,CAAIwC,GAAAA,GAAAA,kBAAiB,UAAKvD,OAAO,EAAGgD,IAAI,EAAE,CAAA;EACnD,WAAA;EACF,SAAA;EACF,OAAA;EAED;QACA,OAAO;EACLS,QAAAA,IAAI,EAAElB,OAAO;EACbxC,QAAAA,QAAQ,EAARA,QAAQ;EACRC,QAAAA,OAAO,EAAPA,OAAO;EACPwC,QAAAA,MAAM,EAANA,MAAM;EACNzB,QAAAA,KAAK,EAALA,KAAK;EACL0B,QAAAA,UAAU,EAAVA,UAAAA;SACD,CAAA;EACH,KAAC,CAAC,CAAA;EACJ,GAAA;EAEA;;;;;EAKG,MALH;IAAAlD,MAAA,CAMAmE,aAAa,GAAb,SAAAA,cAA4BC,MAAkB,EAAEvC,QAAY,EAAA;MAC1D,IAAIwC,gBAAgB,GAAsBC,SAAS,CAAA;EACnD,IAAA,IAAIC,iBAA+C,CAAA;EACnD,IAAA,IAAIH,MAAM,CAAC,KAAK,CAAC,EAAE;QACjBG,iBAAiB,GAAG,IAAI,CAAC1F,GAAG,CAAC2F,SAAS,CAACJ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;EACtD,KAAA;MACD,IAAI;QACF,IAAIG,iBAAiB,KAAKD,SAAS,EAAE;UACnCC,iBAAiB,GAAG,IAAI,CAAC1F,GAAG,CAAC4F,OAAO,CAACL,MAAM,CAAC,CAAA;EAC7C,OAAA;QACDG,iBAAiB,CAAC1C,QAAQ,CAAC,CAAA;OAC5B,CAAC,OAAO6C,GAAG,EAAE;EACZL,MAAAA,gBAAgB,GAAGK,GAAY,CAAA;EAChC,KAAA;EAED,IAAA,IAAIvE,MAAM,CAAA;EACV,IAAA,IAAIoE,iBAAiB,EAAE;EACrB,MAAA,IAAI,OAAO,IAAI,CAACxE,SAAS,KAAK,UAAU,EAAE;EACxC,QAAA,IAAI,CAACA,SAAS,CAACwE,iBAAiB,CAACpE,MAAM,CAAC,CAAA;EACzC,OAAA;EACDA,MAAAA,MAAM,GAAGoE,iBAAiB,CAACpE,MAAM,IAAImE,SAAS,CAAA;EAE9C;QACAC,iBAAiB,CAACpE,MAAM,GAAG,IAAI,CAAA;EAChC,KAAA;MAED,OAAO;EACLA,MAAAA,MAAM,EAAEA,MAA6B;EACrCwE,MAAAA,eAAe,EAAEN,gBAAAA;OAClB,CAAA;EACH,GAAA;EAEA;;;;;;;;;;EAUG,MAVH;EAAArE,EAAAA,MAAA,CAWA4E,gBAAgB,GAAhB,SAAAA,iBACE/C,QAAuB,EACvBuC,MAAS,EACTS,cAAyC,EACzCC,eAA2C,EAC3CjC,QAA4B,EAAA;MAE5B,IAAMkC,SAAS,GAAG,IAAI,CAACZ,aAAa,CAAcC,MAAM,EAAEvC,QAAQ,CAAC,CAAA;EACnE,IAAA,IAAyBmD,kBAAkB,GAAKD,SAAS,CAAjDJ,eAAe,CAAA;MACvB,IAAIxE,MAAM,GAAG,IAAI,CAACyC,6BAA6B,CAACmC,SAAS,CAAC5E,MAAM,EAAE0C,QAAQ,CAAC,CAAA;EAE3E,IAAA,IAAImC,kBAAkB,EAAE;EACtB7E,MAAAA,MAAM,GAAAkB,EAAAA,CAAAA,MAAA,CAAOlB,MAAM,EAAE,CAAA;UAAEqB,KAAK,EAAEwD,kBAAmB,CAACvE,OAAAA;EAAO,OAAE,CAAC,CAAA,CAAA;EAC7D,KAAA;EACD,IAAA,IAAI,OAAOqE,eAAe,KAAK,UAAU,EAAE;EACzC3E,MAAAA,MAAM,GAAG2E,eAAe,CAAC3E,MAAM,EAAE0C,QAAQ,CAAC,CAAA;EAC3C,KAAA;EAED,IAAA,IAAI7B,WAAW,GAAG,IAAI,CAACd,aAAa,CAACC,MAAM,CAAC,CAAA;EAE5C,IAAA,IAAI6E,kBAAkB,EAAE;QACtBhE,WAAW,GAAAlC,QAAA,CAAA,EAAA,EACNkC,WAAW,EAAA;EACdiE,QAAAA,OAAO,EAAE;EACPjD,UAAAA,QAAQ,EAAE,CAACgD,kBAAmB,CAACvE,OAAO,CAAA;EACvC,SAAA;SACF,CAAA,CAAA;EACF,KAAA;EAED,IAAA,IAAI,OAAOoE,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO;EAAE1E,QAAAA,MAAM,EAANA,MAAM;EAAEa,QAAAA,WAAW,EAAXA,WAAAA;SAAa,CAAA;EAC/B,KAAA;EAED;EACA,IAAA,IAAMkE,WAAW,GAAGC,yBAAmB,CAAU,IAAI,EAAEf,MAAM,EAAEvC,QAAQ,EAAEuC,MAAM,EAAE,IAAI,CAAM,CAAA;EAE3F,IAAA,IAAM5B,YAAY,GAAGqC,cAAc,CAACK,WAAW,EAAE,IAAI,CAACtD,kBAAkB,CAACsD,WAAW,CAAC,EAAErC,QAAQ,CAAC,CAAA;EAChG,IAAA,IAAMuC,eAAe,GAAG,IAAI,CAAC7C,kBAAkB,CAACC,YAAY,CAAC,CAAA;MAC7D,OAAO6C,yBAAmB,CAAU,IAAI,EAAE;EAAElF,MAAAA,MAAM,EAANA,MAAM;EAAEa,MAAAA,WAAW,EAAXA,WAAAA;OAAa,EAAEoE,eAAe,CAAC,CAAA;EACrF,GAAA;EAEA;;;;;EAKG,MALH;EAAApF,EAAAA,MAAA,CAMQsF,qBAAqB,GAArB,SAAAA,qBAAAA,CAAsBC,IAAO,EAAA;EACnC,IAAA,KAAK,IAAM5D,GAAG,IAAI4D,IAAI,EAAE;QACtB,IAAMC,OAAO,GAAsBD,IAAI,CAAA;EACvC,MAAA,IAAMpD,KAAK,GAAGqD,OAAO,CAAC7D,GAAG,CAAC,CAAA;EAC1B,MAAA,IAAIA,GAAG,KAAK8D,aAAO,IAAI,OAAOtD,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACuD,UAAU,CAAC,GAAG,CAAC,EAAE;EACzEF,QAAAA,OAAO,CAAC7D,GAAG,CAAC,GAAG/B,kBAAkB,GAAGuC,KAAK,CAAA;EAC1C,OAAA,MAAM;UACLqD,OAAO,CAAC7D,GAAG,CAAC,GAAG,IAAI,CAACgE,eAAe,CAACxD,KAAK,CAAC,CAAA;EAC3C,OAAA;EACF,KAAA;EACD,IAAA,OAAOoD,IAAI,CAAA;EACb,GAAA;EAEA;;;;;EAKG,MALH;EAAAvF,EAAAA,MAAA,CAMQ4F,oBAAoB,GAApB,SAAAA,oBAAAA,CAAqBL,IAAS,EAAA;EACpC,IAAA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,IAAI,CAACjF,MAAM,EAAEuF,CAAC,EAAE,EAAE;EACpCN,MAAAA,IAAI,CAACM,CAAC,CAAC,GAAG,IAAI,CAACF,eAAe,CAACJ,IAAI,CAACM,CAAC,CAAC,CAAM,CAAA;EAC7C,KAAA;EACD,IAAA,OAAON,IAAI,CAAA;EACb,GAAA;EAEA;;;;;;;EAOG,MAPH;IAAAvF,MAAA,CAQA8F,OAAO,GAAP,SAAAA,OAAAA,CAAQ1B,MAAS,EAAEvC,QAAuB,EAAEkE,UAAa,EAAA;EAAA,IAAA,IAAAC,eAAA,CAAA;MACvD,IAAMC,YAAY,GAAAD,CAAAA,eAAA,GAAGD,UAAU,CAAC,KAAK,CAAC,KAAA,IAAA,GAAAC,eAAA,GAAIpG,kBAAkB,CAAA;MAC5D,IAAI;EACF;EACA;EACA;EACA;QACA,IAAI,IAAI,CAACf,GAAG,CAAC2F,SAAS,CAACyB,YAAY,CAAC,KAAK3B,SAAS,EAAE;UAClD,IAAI,CAACzF,GAAG,CAACqH,SAAS,CAACH,UAAU,EAAEE,YAAY,CAAC,CAAA;EAC7C,OAAA;EACD,MAAA,IAAME,qBAAqB,GAAG,IAAI,CAACR,eAAe,CAACvB,MAAM,CAAM,CAAA;EAC/D,MAAA,IAAIG,iBAA+C,CAAA;EACnD,MAAA,IAAI4B,qBAAqB,CAAC,KAAK,CAAC,EAAE;UAChC5B,iBAAiB,GAAG,IAAI,CAAC1F,GAAG,CAAC2F,SAAS,CAAC2B,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;EACrE,OAAA;QACD,IAAI5B,iBAAiB,KAAKD,SAAS,EAAE;UACnCC,iBAAiB,GAAG,IAAI,CAAC1F,GAAG,CAAC4F,OAAO,CAAC0B,qBAAqB,CAAC,CAAA;EAC5D,OAAA;EACD,MAAA,IAAMC,MAAM,GAAG7B,iBAAiB,CAAC1C,QAAQ,CAAC,CAAA;EAC1C,MAAA,OAAOuE,MAAiB,CAAA;OACzB,CAAC,OAAOtD,CAAC,EAAE;EACVuD,MAAAA,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAExD,CAAC,CAAC,CAAA;EACtD,MAAA,OAAO,KAAK,CAAA;EACb,KAAA,SAAS;EACR;EACA;EACA,MAAA,IAAI,CAACjE,GAAG,CAAC0H,YAAY,CAACN,YAAY,CAAC,CAAA;EACpC,KAAA;EACH,GAAA;EAEA;;;;;EAKG,MALH;EAAAjG,EAAAA,MAAA,CAMU2F,eAAe,GAAf,SAAAA,eAAAA,CAAgBa,UAAmB,EAAA;EAC3C,IAAA,IAAIpH,KAAK,CAACC,OAAO,CAACmH,UAAU,CAAC,EAAE;EAC7B,MAAA,OAAO,IAAI,CAACZ,oBAAoB,IAAAvE,MAAA,CAAKmF,UAAU,CAAE,CAAA,CAAA;EAClD,KAAA;EACD,IAAA,IAAIjH,4BAAQ,CAACiH,UAAU,CAAC,EAAE;QACxB,OAAO,IAAI,CAAClB,qBAAqB,CAACmB,yBAAK,CAAID,UAAU,CAAC,CAAC,CAAA;EACxD,KAAA;EACD,IAAA,OAAOA,UAAU,CAAA;KAClB,CAAA;EAAA,EAAA,OAAA3G,aAAA,CAAA;EAAA,CAAA,EAAA;;ECrZH;;;;;EAKG;EACqB,SAAA6G,kBAAkBA,CAIxC5G,OAAsC,EAAIC,SAAqB,EAAA;EAAA,EAAA,IAA/DD,OAAsC,KAAA,KAAA,CAAA,EAAA;MAAtCA,OAAsC,GAAA,EAAE,CAAA;EAAA,GAAA;EACxC,EAAA,OAAO,IAAID,aAAa,CAAUC,OAAO,EAAEC,SAAS,CAAC,CAAA;EACvD;;ACZA,cAAA,aAAe2G,kBAAkB,EAAE;;;;;;;;;;;"}
1
+ {"version":3,"file":"validator-ajv8.umd.development.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isPlainObject from 'lodash/isPlainObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n const childSchema = (errorSchema as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n acc = acc.concat(this.toErrorList(childSchema, [...fieldPath, key]));\n }\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isPlainObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else {\n const childSchema = (errorHandler as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: this.unwrapErrorHandler(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isPlainObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","property","message","path","toPath","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","childSchema","isPlainObject","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","rest","_objectWithoutPropertiesLoose","_excluded","_rest$message","replace","trim","missingProperty","currentProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compilationError","undefined","compiledValidator","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","realObj","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","result","console","warn","removeSchema","schemaNode","clone","customizeValidator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOO,IAAMA,UAAU,GAAY;EACjCC,EAAAA,SAAS,EAAE,IAAI;EACfC,EAAAA,mBAAmB,EAAE,CAAC;EACtBC,EAAAA,MAAM,EAAE,KAAK;EACbC,EAAAA,OAAO,EAAE,IAAA;GACD,CAAA;EACH,IAAMC,kBAAkB,GAC7B,4YAA4Y,CAAA;EACvY,IAAMC,qBAAqB,GAAG,2DAA2D,CAAA;EAEhG;;;;;;;;;;;;;;EAcG;EACqB,SAAAC,iBAAiBA,CACvCC,qBAA2E,EAC3EC,aAA2D,EAC3DC,qBACAC,gBAA+C,EAC/CC,UAA0B;EAAA,EAAA,IAF1BF;MAAAA,sBAAyE,EAAE,CAAA;EAAA,GAAA;EAAA,EAAA,IAE3EE;EAAAA,IAAAA,WAAuBC,uBAAG,CAAA;EAAA,GAAA;IAE1B,IAAMC,GAAG,GAAG,IAAIF,QAAQ,CAAAG,QAAA,CAAMf,EAAAA,EAAAA,UAAU,EAAKU,mBAAmB,CAAG,CAAA,CAAA;EACnE,EAAA,IAAIC,gBAAgB,EAAE;EACpBK,IAAAA,8BAAU,CAACF,GAAG,EAAEH,gBAAgB,CAAC,CAAA;EAClC,GAAA,MAAM,IAAIA,gBAAgB,KAAK,KAAK,EAAE;MACrCK,8BAAU,CAACF,GAAG,CAAC,CAAA;EAChB,GAAA;EAED;EACAA,EAAAA,GAAG,CAACG,SAAS,CAAC,UAAU,EAAEX,qBAAqB,CAAC,CAAA;EAChDQ,EAAAA,GAAG,CAACG,SAAS,CAAC,OAAO,EAAEZ,kBAAkB,CAAC,CAAA;EAE1C;EACAS,EAAAA,GAAG,CAACI,UAAU,CAACC,8BAAwB,CAAC,CAAA;EACxCL,EAAAA,GAAG,CAACI,UAAU,CAACE,oCAA8B,CAAC,CAAA;EAE9C;EACA,EAAA,IAAIC,KAAK,CAACC,OAAO,CAACd,qBAAqB,CAAC,EAAE;EACxCM,IAAAA,GAAG,CAACS,aAAa,CAACf,qBAAqB,CAAC,CAAA;EACzC,GAAA;EAED;EACA,EAAA,IAAIgB,4BAAQ,CAACf,aAAa,CAAC,EAAE;MAC3BgB,MAAM,CAACC,IAAI,CAACjB,aAAa,CAAC,CAACkB,OAAO,CAAC,UAACC,UAAU,EAAI;QAChDd,GAAG,CAACG,SAAS,CAACW,UAAU,EAAEnB,aAAa,CAACmB,UAAU,CAAC,CAAC,CAAA;EACtD,KAAC,CAAC,CAAA;EACH,GAAA;EAED,EAAA,OAAOd,GAAG,CAAA;EACZ;;;ECpCA,IAAMe,kBAAkB,GAAG,mBAAmB,CAAA;EAE9C;EACG;EADH,IAEqBC,aAAa,gBAAA,YAAA;EAGhC;;;EAGG;;EAGH;;;EAGG;;EAGH;;;;EAIG;EACH,EAAA,SAAAA,aAAYC,CAAAA,OAAmC,EAAEC,SAAqB,EAAA;EAAA,IAAA,IAAA,CAb9DlB,GAAG,GAAA,KAAA,CAAA,CAAA;EAAA,IAAA,IAAA,CAMFkB,SAAS,GAAA,KAAA,CAAA,CAAA;EAQhB,IAAA,IAAQxB,qBAAqB,GAAqEuB,OAAO,CAAjGvB,qBAAqB;QAAEC,aAAa,GAAsDsB,OAAO,CAA1EtB,aAAa;QAAEC,mBAAmB,GAAiCqB,OAAO,CAA3DrB,mBAAmB;QAAEC,gBAAgB,GAAeoB,OAAO,CAAtCpB,gBAAgB;QAAEC,QAAQ,GAAKmB,OAAO,CAApBnB,QAAQ,CAAA;EAC7F,IAAA,IAAI,CAACE,GAAG,GAAGP,iBAAiB,CAACC,qBAAqB,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,QAAQ,CAAC,CAAA;MACnH,IAAI,CAACoB,SAAS,GAAGA,SAAS,CAAA;EAC5B,GAAA;EAEA;;;;;;;;;;;;;;;;;;EAkBG;EAlBH,EAAA,IAAAC,MAAA,GAAAH,aAAA,CAAAI,SAAA,CAAA;EAAAD,EAAAA,MAAA,CAmBQE,aAAa,GAAb,SAAAA,aAAAA,CAAcC,MAA6B,EAAA;EACjD,IAAA,IAAMC,OAAO,GAAG,IAAIC,wBAAkB,EAAK,CAAA;MAC3C,IAAIF,MAAM,CAACG,MAAM,EAAE;EACjBH,MAAAA,MAAM,CAACT,OAAO,CAAC,UAACa,KAAK,EAAI;EACvB,QAAA,IAAQC,QAAQ,GAAcD,KAAK,CAA3BC,QAAQ;YAAEC,OAAO,GAAKF,KAAK,CAAjBE,OAAO,CAAA;EACzB,QAAA,IAAMC,IAAI,GAAGC,0BAAM,CAACH,QAAQ,CAAC,CAAA;EAE7B;EACA;EACA,QAAA,IAAIE,IAAI,CAACJ,MAAM,GAAG,CAAC,IAAII,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;EACrCA,UAAAA,IAAI,CAACE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;EAClB,SAAA;EACD,QAAA,IAAIH,OAAO,EAAE;EACXL,UAAAA,OAAO,CAACS,SAAS,CAACJ,OAAO,EAAEC,IAAI,CAAC,CAAA;EACjC,SAAA;EACH,OAAC,CAAC,CAAA;EACH,KAAA;MACD,OAAON,OAAO,CAACU,WAAW,CAAA;EAC5B,GAAA;EAEA;;;;EAIG,MAJH;IAAAd,MAAA,CAKAe,WAAW,GAAX,SAAAA,YAAYC,WAA4B,EAAEC,SAAA,EAAwB;EAAA,IAAA,IAAAC,KAAA,GAAA,IAAA,CAAA;EAAA,IAAA,IAAxBD,SAAA,KAAA,KAAA,CAAA,EAAA;EAAAA,MAAAA,SAAA,GAAsB,EAAE,CAAA;EAAA,KAAA;MAChE,IAAI,CAACD,WAAW,EAAE;EAChB,MAAA,OAAO,EAAE,CAAA;EACV,KAAA;MACD,IAAIG,SAAS,GAA0B,EAAE,CAAA;MACzC,IAAIC,gBAAU,IAAIJ,WAAW,EAAE;EAC7BG,MAAAA,SAAS,GAAGA,SAAS,CAACE,MAAM,CAC1BL,WAAW,CAACI,gBAAU,CAAE,CAACE,GAAG,CAAC,UAACb,OAAe,EAAI;EAC/C,QAAA,IAAMD,QAAQ,GAAOS,GAAAA,GAAAA,SAAS,CAACM,IAAI,CAAC,GAAG,CAAG,CAAA;UAC1C,OAAO;EACLf,UAAAA,QAAQ,EAARA,QAAQ;EACRC,UAAAA,OAAO,EAAPA,OAAO;YACPe,KAAK,EAAKhB,QAAQ,GAAIC,GAAAA,GAAAA,OAAAA;WACvB,CAAA;EACH,OAAC,CAAC,CACH,CAAA;EACF,KAAA;EACD,IAAA,OAAOjB,MAAM,CAACC,IAAI,CAACuB,WAAW,CAAC,CAACS,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;QAClD,IAAIA,GAAG,KAAKP,gBAAU,EAAE;EACtB,QAAA,IAAMQ,WAAW,GAAIZ,WAAiC,CAACW,GAAG,CAAC,CAAA;EAC3D,QAAA,IAAIE,iCAAa,CAACD,WAAW,CAAC,EAAE;EAC9BF,UAAAA,GAAG,GAAGA,GAAG,CAACL,MAAM,CAACH,KAAI,CAACH,WAAW,CAACa,WAAW,KAAAP,MAAA,CAAMJ,SAAS,EAAEU,CAAAA,GAAG,GAAE,CAAC,CAAA;EACrE,SAAA;EACF,OAAA;EACD,MAAA,OAAOD,GAAG,CAAA;OACX,EAAEP,SAAS,CAAC,CAAA;EACf,GAAA;EAEA;;;;EAIG,MAJH;EAAAnB,EAAAA,MAAA,CAKQ8B,kBAAkB,GAAlB,SAAAA,kBAAAA,CAAmBC,QAAW,EAAA;EAAA,IAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;EACpC,IAAA,IAAMC,OAAO,GAAoB;EAC/B;EACA;EACA;EACAC,MAAAA,QAAQ,EAAE,EAAE;QACZC,QAAQ,EAAA,SAAAA,QAAC1B,CAAAA,OAAe,EAAA;EACtB,QAAA,IAAI,CAACyB,QAAS,CAACE,IAAI,CAAC3B,OAAO,CAAC,CAAA;EAC9B,OAAA;OACD,CAAA;EACD,IAAA,IAAIrB,KAAK,CAACC,OAAO,CAAC0C,QAAQ,CAAC,EAAE;QAC3B,OAAOA,QAAQ,CAACN,MAAM,CAAC,UAACC,GAAG,EAAEW,KAAK,EAAEV,GAAG,EAAI;EAAA,QAAA,IAAAW,SAAA,CAAA;EACzC,QAAA,OAAAxD,QAAA,CAAY4C,EAAAA,EAAAA,GAAG,GAAAY,SAAA,OAAAA,SAAA,CAAGX,GAAG,CAAA,GAAGK,MAAI,CAACF,kBAAkB,CAACO,KAAK,CAAC,EAAAC,SAAA,EAAA,CAAA;SACvD,EAAEL,OAAO,CAAC,CAAA;EACZ,KAAA;EACD,IAAA,IAAIJ,iCAAa,CAACE,QAAQ,CAAC,EAAE;QAC3B,IAAMQ,UAAU,GAAsBR,QAA6B,CAAA;EACnE,MAAA,OAAOvC,MAAM,CAACC,IAAI,CAAC8C,UAAU,CAAC,CAACd,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;EAAA,QAAA,IAAAa,SAAA,CAAA;UACjD,OAAA1D,QAAA,KAAY4C,GAAG,GAAAc,SAAA,GAAAA,EAAAA,EAAAA,SAAA,CAAGb,GAAG,CAAA,GAAGK,MAAI,CAACF,kBAAkB,CAACS,UAAU,CAACZ,GAAG,CAAC,CAAC,EAAAa,SAAA,EAAA,CAAA;SACjE,EAAEP,OAA4B,CAAC,CAAA;EACjC,KAAA;EACD,IAAA,OAAOA,OAA4B,CAAA;EACrC,GAAA;EAEA;;;;EAIG,MAJH;EAAAjC,EAAAA,MAAA,CAKQyC,kBAAkB,GAAlB,SAAAA,kBAAAA,CAAmBC,YAA+B,EAAA;EAAA,IAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;EACxD,IAAA,OAAOnD,MAAM,CAACC,IAAI,CAACiD,YAAY,CAAC,CAACjB,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAI;QACnD,IAAIA,GAAG,KAAK,UAAU,EAAE;EACtB,QAAA,OAAOD,GAAG,CAAA;EACX,OAAA,MAAM;EAAA,QAAA,IAAAkB,SAAA,CAAA;EACL,QAAA,IAAMhB,WAAW,GAAIc,YAAkC,CAACf,GAAG,CAAC,CAAA;EAC5D,QAAA,IAAIE,iCAAa,CAACD,WAAW,CAAC,EAAE;EAAA,UAAA,IAAAiB,SAAA,CAAA;EAC9B,UAAA,OAAA/D,QAAA,CACK4C,EAAAA,EAAAA,GAAG,GAAAmB,SAAA,OAAAA,SAAA,CACLlB,GAAG,CAAA,GAAGgB,MAAI,CAACF,kBAAkB,CAACb,WAAW,CAAC,EAAAiB,SAAA,EAAA,CAAA;EAE9C,SAAA;EACD,QAAA,OAAA/D,QAAA,CAAA,EAAA,EAAY4C,GAAG,GAAAkB,SAAA,GAAA,EAAA,EAAAA,SAAA,CAAGjB,GAAG,CAAA,GAAGC,WAAW,EAAAgB,SAAA,EAAA,CAAA;EACpC,OAAA;OACF,EAAE,EAAoB,CAAC,CAAA;EAC1B,GAAA;EAEA;;;;;EAKG,MALH;IAAA5C,MAAA,CAMU8C,6BAA6B,GAA7B,SAAAA,8BACR3C,MAAA,EACA4C,QAA4B,EAAA;EAAA,IAAA,IAD5B5C,MAAA,KAAA,KAAA,CAAA,EAAA;EAAAA,MAAAA,MAAA,GAAwB,EAAE,CAAA;EAAA,KAAA;EAG1B,IAAA,OAAOA,MAAM,CAACmB,GAAG,CAAC,UAAC0B,CAAc,EAAI;EACnC,MAAA,IAAQC,YAAY,GAAyDD,CAAC,CAAtEC,YAAY;UAAEC,OAAO,GAAgDF,CAAC,CAAxDE,OAAO;UAAEC,MAAM,GAAwCH,CAAC,CAA/CG,MAAM;UAAEC,UAAU,GAA4BJ,CAAC,CAAvCI,UAAU;UAAEC,YAAY,GAAcL,CAAC,CAA3BK,YAAY;EAAKC,QAAAA,IAAI,GAAAC,6BAAA,CAAKP,CAAC,EAAAQ,SAAA,CAAA,CAAA;EAC9E,MAAA,IAAAC,aAAA,GAAuBH,IAAI,CAArB7C,OAAO;EAAPA,QAAAA,OAAO,GAAAgD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA,CAAA;QAClB,IAAIjD,QAAQ,GAAGyC,YAAY,CAACS,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/C,IAAIlC,KAAK,GAAG,CAAGhB,QAAQ,SAAIC,OAAO,EAAGkD,IAAI,EAAE,CAAA;QAE3C,IAAI,iBAAiB,IAAIR,MAAM,EAAE;UAC/B3C,QAAQ,GAAGA,QAAQ,GAAMA,QAAQ,GAAA,GAAA,GAAI2C,MAAM,CAACS,eAAe,GAAKT,MAAM,CAACS,eAAe,CAAA;EACtF,QAAA,IAAMC,eAAe,GAAWV,MAAM,CAACS,eAAe,CAAA;EACtD,QAAA,IAAME,aAAa,GAAGC,kBAAY,CAACC,uBAAG,CAACjB,QAAQ,EAAKvC,EAAAA,GAAAA,QAAQ,CAACkD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAG,CAAC,CAACO,KAAK,CAAA;EAEzF,QAAA,IAAIH,aAAa,EAAE;YACjBrD,OAAO,GAAGA,OAAO,CAACiD,OAAO,CAACG,eAAe,EAAEC,aAAa,CAAC,CAAA;EAC1D,SAAA,MAAM;EACL,UAAA,IAAMI,iBAAiB,GAAGF,uBAAG,CAACX,YAAY,EAAE,CAACc,oBAAc,EAAEN,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;EAEvF,UAAA,IAAIK,iBAAiB,EAAE;cACrBzD,OAAO,GAAGA,OAAO,CAACiD,OAAO,CAACG,eAAe,EAAEK,iBAAiB,CAAC,CAAA;EAC9D,WAAA;EACF,SAAA;EAED1C,QAAAA,KAAK,GAAGf,OAAO,CAAA;EAChB,OAAA,MAAM;EACL,QAAA,IAAMqD,cAAa,GAAGC,kBAAY,CAACC,uBAAG,CAACjB,QAAQ,EAAKvC,EAAAA,GAAAA,QAAQ,CAACkD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAG,CAAC,CAACO,KAAK,CAAA;EAEzF,QAAA,IAAIH,cAAa,EAAE;EACjBtC,UAAAA,KAAK,GAAG,CAAIsC,GAAAA,GAAAA,cAAa,UAAKrD,OAAO,EAAGkD,IAAI,EAAE,CAAA;EAC/C,SAAA,MAAM;YACL,IAAMO,kBAAiB,GAAGb,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEY,KAAK,CAAA;EAE7C,UAAA,IAAIC,kBAAiB,EAAE;EACrB1C,YAAAA,KAAK,GAAG,CAAI0C,GAAAA,GAAAA,kBAAiB,UAAKzD,OAAO,EAAGkD,IAAI,EAAE,CAAA;EACnD,WAAA;EACF,SAAA;EACF,OAAA;EAED;QACA,OAAO;EACLS,QAAAA,IAAI,EAAElB,OAAO;EACb1C,QAAAA,QAAQ,EAARA,QAAQ;EACRC,QAAAA,OAAO,EAAPA,OAAO;EACP0C,QAAAA,MAAM,EAANA,MAAM;EACN3B,QAAAA,KAAK,EAALA,KAAK;EACL4B,QAAAA,UAAU,EAAVA,UAAAA;SACD,CAAA;EACH,KAAC,CAAC,CAAA;EACJ,GAAA;EAEA;;;;;EAKG,MALH;IAAApD,MAAA,CAMAqE,aAAa,GAAb,SAAAA,cAA4BC,MAAkB,EAAEvC,QAAY,EAAA;MAC1D,IAAIwC,gBAAgB,GAAsBC,SAAS,CAAA;EACnD,IAAA,IAAIC,iBAA+C,CAAA;EACnD,IAAA,IAAIH,MAAM,CAAC,KAAK,CAAC,EAAE;QACjBG,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC6F,SAAS,CAACJ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;EACtD,KAAA;MACD,IAAI;QACF,IAAIG,iBAAiB,KAAKD,SAAS,EAAE;UACnCC,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC8F,OAAO,CAACL,MAAM,CAAC,CAAA;EAC7C,OAAA;QACDG,iBAAiB,CAAC1C,QAAQ,CAAC,CAAA;OAC5B,CAAC,OAAO6C,GAAG,EAAE;EACZL,MAAAA,gBAAgB,GAAGK,GAAY,CAAA;EAChC,KAAA;EAED,IAAA,IAAIzE,MAAM,CAAA;EACV,IAAA,IAAIsE,iBAAiB,EAAE;EACrB,MAAA,IAAI,OAAO,IAAI,CAAC1E,SAAS,KAAK,UAAU,EAAE;EACxC,QAAA,IAAI,CAACA,SAAS,CAAC0E,iBAAiB,CAACtE,MAAM,CAAC,CAAA;EACzC,OAAA;EACDA,MAAAA,MAAM,GAAGsE,iBAAiB,CAACtE,MAAM,IAAIqE,SAAS,CAAA;EAE9C;QACAC,iBAAiB,CAACtE,MAAM,GAAG,IAAI,CAAA;EAChC,KAAA;MAED,OAAO;EACLA,MAAAA,MAAM,EAAEA,MAA6B;EACrC0E,MAAAA,eAAe,EAAEN,gBAAAA;OAClB,CAAA;EACH,GAAA;EAEA;;;;;;;;;;EAUG,MAVH;EAAAvE,EAAAA,MAAA,CAWA8E,gBAAgB,GAAhB,SAAAA,iBACE/C,QAAuB,EACvBuC,MAAS,EACTS,cAAyC,EACzCC,eAA2C,EAC3CjC,QAA4B,EAAA;MAE5B,IAAMkC,SAAS,GAAG,IAAI,CAACZ,aAAa,CAAcC,MAAM,EAAEvC,QAAQ,CAAC,CAAA;EACnE,IAAA,IAAyBmD,kBAAkB,GAAKD,SAAS,CAAjDJ,eAAe,CAAA;MACvB,IAAI1E,MAAM,GAAG,IAAI,CAAC2C,6BAA6B,CAACmC,SAAS,CAAC9E,MAAM,EAAE4C,QAAQ,CAAC,CAAA;EAE3E,IAAA,IAAImC,kBAAkB,EAAE;EACtB/E,MAAAA,MAAM,GAAAkB,EAAAA,CAAAA,MAAA,CAAOlB,MAAM,EAAE,CAAA;UAAEqB,KAAK,EAAE0D,kBAAmB,CAACzE,OAAAA;EAAO,OAAE,CAAC,CAAA,CAAA;EAC7D,KAAA;EACD,IAAA,IAAI,OAAOuE,eAAe,KAAK,UAAU,EAAE;EACzC7E,MAAAA,MAAM,GAAG6E,eAAe,CAAC7E,MAAM,EAAE4C,QAAQ,CAAC,CAAA;EAC3C,KAAA;EAED,IAAA,IAAI/B,WAAW,GAAG,IAAI,CAACd,aAAa,CAACC,MAAM,CAAC,CAAA;EAE5C,IAAA,IAAI+E,kBAAkB,EAAE;QACtBlE,WAAW,GAAAlC,QAAA,CAAA,EAAA,EACNkC,WAAW,EAAA;EACdmE,QAAAA,OAAO,EAAE;EACPjD,UAAAA,QAAQ,EAAE,CAACgD,kBAAmB,CAACzE,OAAO,CAAA;EACvC,SAAA;SACF,CAAA,CAAA;EACF,KAAA;EAED,IAAA,IAAI,OAAOsE,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO;EAAE5E,QAAAA,MAAM,EAANA,MAAM;EAAEa,QAAAA,WAAW,EAAXA,WAAAA;SAAa,CAAA;EAC/B,KAAA;EAED;EACA,IAAA,IAAMoE,WAAW,GAAGC,yBAAmB,CAAU,IAAI,EAAEf,MAAM,EAAEvC,QAAQ,EAAEuC,MAAM,EAAE,IAAI,CAAM,CAAA;EAE3F,IAAA,IAAM5B,YAAY,GAAGqC,cAAc,CAACK,WAAW,EAAE,IAAI,CAACtD,kBAAkB,CAACsD,WAAW,CAAC,EAAErC,QAAQ,CAAC,CAAA;EAChG,IAAA,IAAMuC,eAAe,GAAG,IAAI,CAAC7C,kBAAkB,CAACC,YAAY,CAAC,CAAA;MAC7D,OAAO6C,yBAAmB,CAAU,IAAI,EAAE;EAAEpF,MAAAA,MAAM,EAANA,MAAM;EAAEa,MAAAA,WAAW,EAAXA,WAAAA;OAAa,EAAEsE,eAAe,CAAC,CAAA;EACrF,GAAA;EAEA;;;;;EAKG,MALH;EAAAtF,EAAAA,MAAA,CAMQwF,qBAAqB,GAArB,SAAAA,qBAAAA,CAAsBC,IAAO,EAAA;EACnC,IAAA,KAAK,IAAM9D,GAAG,IAAI8D,IAAI,EAAE;QACtB,IAAMC,OAAO,GAAsBD,IAAI,CAAA;EACvC,MAAA,IAAMpD,KAAK,GAAGqD,OAAO,CAAC/D,GAAG,CAAC,CAAA;EAC1B,MAAA,IAAIA,GAAG,KAAKgE,aAAO,IAAI,OAAOtD,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACuD,UAAU,CAAC,GAAG,CAAC,EAAE;EACzEF,QAAAA,OAAO,CAAC/D,GAAG,CAAC,GAAG/B,kBAAkB,GAAGyC,KAAK,CAAA;EAC1C,OAAA,MAAM;UACLqD,OAAO,CAAC/D,GAAG,CAAC,GAAG,IAAI,CAACkE,eAAe,CAACxD,KAAK,CAAC,CAAA;EAC3C,OAAA;EACF,KAAA;EACD,IAAA,OAAOoD,IAAI,CAAA;EACb,GAAA;EAEA;;;;;EAKG,MALH;EAAAzF,EAAAA,MAAA,CAMQ8F,oBAAoB,GAApB,SAAAA,oBAAAA,CAAqBL,IAAS,EAAA;EACpC,IAAA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,IAAI,CAACnF,MAAM,EAAEyF,CAAC,EAAE,EAAE;EACpCN,MAAAA,IAAI,CAACM,CAAC,CAAC,GAAG,IAAI,CAACF,eAAe,CAACJ,IAAI,CAACM,CAAC,CAAC,CAAM,CAAA;EAC7C,KAAA;EACD,IAAA,OAAON,IAAI,CAAA;EACb,GAAA;EAEA;;;;;;;EAOG,MAPH;IAAAzF,MAAA,CAQAgG,OAAO,GAAP,SAAAA,OAAAA,CAAQ1B,MAAS,EAAEvC,QAAuB,EAAEkE,UAAa,EAAA;EAAA,IAAA,IAAAC,eAAA,CAAA;MACvD,IAAMC,YAAY,GAAAD,CAAAA,eAAA,GAAGD,UAAU,CAAC,KAAK,CAAC,KAAA,IAAA,GAAAC,eAAA,GAAItG,kBAAkB,CAAA;MAC5D,IAAI;EACF;EACA;EACA;EACA;QACA,IAAI,IAAI,CAACf,GAAG,CAAC6F,SAAS,CAACyB,YAAY,CAAC,KAAK3B,SAAS,EAAE;UAClD,IAAI,CAAC3F,GAAG,CAACuH,SAAS,CAACH,UAAU,EAAEE,YAAY,CAAC,CAAA;EAC7C,OAAA;EACD,MAAA,IAAME,qBAAqB,GAAG,IAAI,CAACR,eAAe,CAACvB,MAAM,CAAM,CAAA;EAC/D,MAAA,IAAIG,iBAA+C,CAAA;EACnD,MAAA,IAAI4B,qBAAqB,CAAC,KAAK,CAAC,EAAE;UAChC5B,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC6F,SAAS,CAAC2B,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;EACrE,OAAA;QACD,IAAI5B,iBAAiB,KAAKD,SAAS,EAAE;UACnCC,iBAAiB,GAAG,IAAI,CAAC5F,GAAG,CAAC8F,OAAO,CAAC0B,qBAAqB,CAAC,CAAA;EAC5D,OAAA;EACD,MAAA,IAAMC,MAAM,GAAG7B,iBAAiB,CAAC1C,QAAQ,CAAC,CAAA;EAC1C,MAAA,OAAOuE,MAAiB,CAAA;OACzB,CAAC,OAAOtD,CAAC,EAAE;EACVuD,MAAAA,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAExD,CAAC,CAAC,CAAA;EACtD,MAAA,OAAO,KAAK,CAAA;EACb,KAAA,SAAS;EACR;EACA;EACA,MAAA,IAAI,CAACnE,GAAG,CAAC4H,YAAY,CAACN,YAAY,CAAC,CAAA;EACpC,KAAA;EACH,GAAA;EAEA;;;;;EAKG,MALH;EAAAnG,EAAAA,MAAA,CAMU6F,eAAe,GAAf,SAAAA,eAAAA,CAAgBa,UAAmB,EAAA;EAC3C,IAAA,IAAItH,KAAK,CAACC,OAAO,CAACqH,UAAU,CAAC,EAAE;EAC7B,MAAA,OAAO,IAAI,CAACZ,oBAAoB,IAAAzE,MAAA,CAAKqF,UAAU,CAAE,CAAA,CAAA;EAClD,KAAA;EACD,IAAA,IAAI7E,iCAAa,CAAC6E,UAAU,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAClB,qBAAqB,CAACmB,yBAAK,CAAID,UAAU,CAAC,CAAC,CAAA;EACxD,KAAA;EACD,IAAA,OAAOA,UAAU,CAAA;KAClB,CAAA;EAAA,EAAA,OAAA7G,aAAA,CAAA;EAAA,CAAA,EAAA;;EC3ZH;;;;;EAKG;EACqB,SAAA+G,kBAAkBA,CAIxC9G,OAAsC,EAAIC,SAAqB,EAAA;EAAA,EAAA,IAA/DD,OAAsC,KAAA,KAAA,CAAA,EAAA;MAAtCA,OAAsC,GAAA,EAAE,CAAA;EAAA,GAAA;EACxC,EAAA,OAAO,IAAID,aAAa,CAAUC,OAAO,EAAEC,SAAS,CAAC,CAAA;EACvD;;ACZA,cAAA,aAAe6G,kBAAkB,EAAE;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("lodash-es/toPath"),require("lodash-es/isObject"),require("lodash-es/clone"),require("@rjsf/utils"),require("lodash-es/get"),require("ajv"),require("ajv-formats")):"function"==typeof define&&define.amd?define(["exports","lodash-es/toPath","lodash-es/isObject","lodash-es/clone","@rjsf/utils","lodash-es/get","ajv","ajv-formats"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self)["@rjsf/validator-ajv8"]={},r.toPath,r.isObject,r.clone,r.utils,r.get,r.Ajv,r.addFormats)}(this,(function(r,e,t,a,i,o,n,s){"use strict";function c(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var d=c(e),u=c(t),l=c(a),f=c(o),h=c(n),v=c(s);function m(){return m=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=t[a])}return r},m.apply(this,arguments)}var p={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0},y=/^(#?([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*\)))$/,E=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/,j=["instancePath","keyword","params","schemaPath","parentSchema"],g="__rjsf_rootSchema",b=function(){function r(r,e){this.ajv=void 0,this.localizer=void 0,this.ajv=function(r,e,t,a,o){void 0===t&&(t={}),void 0===o&&(o=h.default);var n=new o(m({},p,t));return a?v.default(n,a):!1!==a&&v.default(n),n.addFormat("data-url",E),n.addFormat("color",y),n.addKeyword(i.ADDITIONAL_PROPERTY_FLAG),n.addKeyword(i.RJSF_ADDITONAL_PROPERTIES_FLAG),Array.isArray(r)&&n.addMetaSchema(r),u.default(e)&&Object.keys(e).forEach((function(r){n.addFormat(r,e[r])})),n}(r.additionalMetaSchemas,r.customFormats,r.ajvOptionsOverrides,r.ajvFormatOptions,r.AjvClass),this.localizer=e}var e=r.prototype;return e.toErrorSchema=function(r){var e=new i.ErrorSchemaBuilder;return r.length&&r.forEach((function(r){var t=r.message,a=d.default(r.property);a.length>0&&""===a[0]&&a.splice(0,1),t&&e.addErrors(t,a)})),e.ErrorSchema},e.toErrorList=function(r,e){var t=this;if(void 0===e&&(e=[]),!r)return[];var a=[];return i.ERRORS_KEY in r&&(a=a.concat(r[i.ERRORS_KEY].map((function(r){var t="."+e.join(".");return{property:t,message:r,stack:t+" "+r}})))),Object.keys(r).reduce((function(a,o){return o!==i.ERRORS_KEY&&(a=a.concat(t.toErrorList(r[o],[].concat(e,[o])))),a}),a)},e.createErrorHandler=function(r){var e=this,t={__errors:[],addError:function(r){this.__errors.push(r)}};if(Array.isArray(r))return r.reduce((function(r,t,a){var i;return m({},r,((i={})[a]=e.createErrorHandler(t),i))}),t);if(u.default(r)){var a=r;return Object.keys(a).reduce((function(r,t){var i;return m({},r,((i={})[t]=e.createErrorHandler(a[t]),i))}),t)}return t},e.unwrapErrorHandler=function(r){var e=this;return Object.keys(r).reduce((function(t,a){var o,n;return"addError"===a?t:m({},t,a===i.ERRORS_KEY?((n={})[a]=r[a],n):((o={})[a]=e.unwrapErrorHandler(r[a]),o))}),{})},e.transformRJSFValidationErrors=function(r,e){return void 0===r&&(r=[]),r.map((function(r){var t=r.instancePath,a=r.keyword,o=r.params,n=r.schemaPath,s=r.parentSchema,c=function(r,e){if(null==r)return{};var t,a,i={},o=Object.keys(r);for(a=0;a<o.length;a++)e.indexOf(t=o[a])>=0||(i[t]=r[t]);return i}(r,j).message,d=void 0===c?"":c,u=t.replace(/\//g,"."),l=(u+" "+d).trim();if("missingProperty"in o){var h=o.missingProperty,v=i.getUiOptions(f.default(e,""+(u=u?u+"."+o.missingProperty:o.missingProperty).replace(/^\./,""))).title;if(v)d=d.replace(h,v);else{var m=f.default(s,[i.PROPERTIES_KEY,h,"title"]);m&&(d=d.replace(h,m))}l=d}else{var p=i.getUiOptions(f.default(e,""+u.replace(/^\./,""))).title;if(p)l=("'"+p+"' "+d).trim();else{var y=null==s?void 0:s.title;y&&(l=("'"+y+"' "+d).trim())}}return{name:a,property:u,message:d,params:o,stack:l,schemaPath:n}}))},e.rawValidation=function(r,e){var t,a,i=void 0;r.$id&&(t=this.ajv.getSchema(r.$id));try{void 0===t&&(t=this.ajv.compile(r)),t(e)}catch(r){i=r}return t&&("function"==typeof this.localizer&&this.localizer(t.errors),a=t.errors||void 0,t.errors=null),{errors:a,validationError:i}},e.validateFormData=function(r,e,t,a,o){var n=this.rawValidation(e,r),s=n.validationError,c=this.transformRJSFValidationErrors(n.errors,o);s&&(c=[].concat(c,[{stack:s.message}])),"function"==typeof a&&(c=a(c,o));var d=this.toErrorSchema(c);if(s&&(d=m({},d,{$schema:{__errors:[s.message]}})),"function"!=typeof t)return{errors:c,errorSchema:d};var u=i.getDefaultFormState(this,e,r,e,!0),l=t(u,this.createErrorHandler(u),o),f=this.unwrapErrorHandler(l);return i.mergeValidationData(this,{errors:c,errorSchema:d},f)},e.withIdRefPrefixObject=function(r){for(var e in r){var t=r[e];r[e]=e===i.REF_KEY&&"string"==typeof t&&t.startsWith("#")?g+t:this.withIdRefPrefix(t)}return r},e.withIdRefPrefixArray=function(r){for(var e=0;e<r.length;e++)r[e]=this.withIdRefPrefix(r[e]);return r},e.isValid=function(r,e,t){var a,i=null!=(a=t.$id)?a:g;try{void 0===this.ajv.getSchema(i)&&this.ajv.addSchema(t,i);var o,n=this.withIdRefPrefix(r);return n.$id&&(o=this.ajv.getSchema(n.$id)),void 0===o&&(o=this.ajv.compile(n)),o(e)}catch(r){return console.warn("Error encountered compiling schema:",r),!1}finally{this.ajv.removeSchema(i)}},e.withIdRefPrefix=function(r){return Array.isArray(r)?this.withIdRefPrefixArray([].concat(r)):u.default(r)?this.withIdRefPrefixObject(l.default(r)):r},r}();function O(r,e){return void 0===r&&(r={}),new b(r,e)}var R=O();r.customizeValidator=O,r.default=R,Object.defineProperty(r,"__esModule",{value:!0})}));
1
+ !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("lodash-es/toPath"),require("lodash-es/isPlainObject"),require("lodash-es/clone"),require("@rjsf/utils"),require("lodash-es/get"),require("ajv"),require("ajv-formats"),require("lodash-es/isObject")):"function"==typeof define&&define.amd?define(["exports","lodash-es/toPath","lodash-es/isPlainObject","lodash-es/clone","@rjsf/utils","lodash-es/get","ajv","ajv-formats","lodash-es/isObject"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self)["@rjsf/validator-ajv8"]={},r.toPath,r.isPlainObject,r.clone,r.utils,r.get,r.Ajv,r.addFormats,r.isObject)}(this,(function(r,e,t,a,i,o,n,s,c){"use strict";function d(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var l=d(e),u=d(t),f=d(a),h=d(o),v=d(n),m=d(s),p=d(c);function y(){return y=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=t[a])}return r},y.apply(this,arguments)}var j={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0},E=/^(#?([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*\)))$/,g=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/,b=["instancePath","keyword","params","schemaPath","parentSchema"],O="__rjsf_rootSchema",P=function(){function r(r,e){this.ajv=void 0,this.localizer=void 0,this.ajv=function(r,e,t,a,o){void 0===t&&(t={}),void 0===o&&(o=v.default);var n=new o(y({},j,t));return a?m.default(n,a):!1!==a&&m.default(n),n.addFormat("data-url",g),n.addFormat("color",E),n.addKeyword(i.ADDITIONAL_PROPERTY_FLAG),n.addKeyword(i.RJSF_ADDITONAL_PROPERTIES_FLAG),Array.isArray(r)&&n.addMetaSchema(r),p.default(e)&&Object.keys(e).forEach((function(r){n.addFormat(r,e[r])})),n}(r.additionalMetaSchemas,r.customFormats,r.ajvOptionsOverrides,r.ajvFormatOptions,r.AjvClass),this.localizer=e}var e=r.prototype;return e.toErrorSchema=function(r){var e=new i.ErrorSchemaBuilder;return r.length&&r.forEach((function(r){var t=r.message,a=l.default(r.property);a.length>0&&""===a[0]&&a.splice(0,1),t&&e.addErrors(t,a)})),e.ErrorSchema},e.toErrorList=function(r,e){var t=this;if(void 0===e&&(e=[]),!r)return[];var a=[];return i.ERRORS_KEY in r&&(a=a.concat(r[i.ERRORS_KEY].map((function(r){var t="."+e.join(".");return{property:t,message:r,stack:t+" "+r}})))),Object.keys(r).reduce((function(a,o){if(o!==i.ERRORS_KEY){var n=r[o];u.default(n)&&(a=a.concat(t.toErrorList(n,[].concat(e,[o]))))}return a}),a)},e.createErrorHandler=function(r){var e=this,t={__errors:[],addError:function(r){this.__errors.push(r)}};if(Array.isArray(r))return r.reduce((function(r,t,a){var i;return y({},r,((i={})[a]=e.createErrorHandler(t),i))}),t);if(u.default(r)){var a=r;return Object.keys(a).reduce((function(r,t){var i;return y({},r,((i={})[t]=e.createErrorHandler(a[t]),i))}),t)}return t},e.unwrapErrorHandler=function(r){var e=this;return Object.keys(r).reduce((function(t,a){if("addError"===a)return t;var i,o,n=r[a];return u.default(n)?y({},t,((o={})[a]=e.unwrapErrorHandler(n),o)):y({},t,((i={})[a]=n,i))}),{})},e.transformRJSFValidationErrors=function(r,e){return void 0===r&&(r=[]),r.map((function(r){var t=r.instancePath,a=r.keyword,o=r.params,n=r.schemaPath,s=r.parentSchema,c=function(r,e){if(null==r)return{};var t,a,i={},o=Object.keys(r);for(a=0;a<o.length;a++)e.indexOf(t=o[a])>=0||(i[t]=r[t]);return i}(r,b).message,d=void 0===c?"":c,l=t.replace(/\//g,"."),u=(l+" "+d).trim();if("missingProperty"in o){var f=o.missingProperty,v=i.getUiOptions(h.default(e,""+(l=l?l+"."+o.missingProperty:o.missingProperty).replace(/^\./,""))).title;if(v)d=d.replace(f,v);else{var m=h.default(s,[i.PROPERTIES_KEY,f,"title"]);m&&(d=d.replace(f,m))}u=d}else{var p=i.getUiOptions(h.default(e,""+l.replace(/^\./,""))).title;if(p)u=("'"+p+"' "+d).trim();else{var y=null==s?void 0:s.title;y&&(u=("'"+y+"' "+d).trim())}}return{name:a,property:l,message:d,params:o,stack:u,schemaPath:n}}))},e.rawValidation=function(r,e){var t,a,i=void 0;r.$id&&(t=this.ajv.getSchema(r.$id));try{void 0===t&&(t=this.ajv.compile(r)),t(e)}catch(r){i=r}return t&&("function"==typeof this.localizer&&this.localizer(t.errors),a=t.errors||void 0,t.errors=null),{errors:a,validationError:i}},e.validateFormData=function(r,e,t,a,o){var n=this.rawValidation(e,r),s=n.validationError,c=this.transformRJSFValidationErrors(n.errors,o);s&&(c=[].concat(c,[{stack:s.message}])),"function"==typeof a&&(c=a(c,o));var d=this.toErrorSchema(c);if(s&&(d=y({},d,{$schema:{__errors:[s.message]}})),"function"!=typeof t)return{errors:c,errorSchema:d};var l=i.getDefaultFormState(this,e,r,e,!0),u=t(l,this.createErrorHandler(l),o),f=this.unwrapErrorHandler(u);return i.mergeValidationData(this,{errors:c,errorSchema:d},f)},e.withIdRefPrefixObject=function(r){for(var e in r){var t=r[e];r[e]=e===i.REF_KEY&&"string"==typeof t&&t.startsWith("#")?O+t:this.withIdRefPrefix(t)}return r},e.withIdRefPrefixArray=function(r){for(var e=0;e<r.length;e++)r[e]=this.withIdRefPrefix(r[e]);return r},e.isValid=function(r,e,t){var a,i=null!=(a=t.$id)?a:O;try{void 0===this.ajv.getSchema(i)&&this.ajv.addSchema(t,i);var o,n=this.withIdRefPrefix(r);return n.$id&&(o=this.ajv.getSchema(n.$id)),void 0===o&&(o=this.ajv.compile(n)),o(e)}catch(r){return console.warn("Error encountered compiling schema:",r),!1}finally{this.ajv.removeSchema(i)}},e.withIdRefPrefix=function(r){return Array.isArray(r)?this.withIdRefPrefixArray([].concat(r)):u.default(r)?this.withIdRefPrefixObject(f.default(r)):r},r}();function R(r,e){return void 0===r&&(r={}),new P(r,e)}var S=R();r.customizeValidator=R,r.default=S,Object.defineProperty(r,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=validator-ajv8.umd.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator-ajv8.umd.production.min.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isObject from 'lodash/isObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n acc = acc.concat(this.toErrorList((errorSchema as GenericObjectType)[key], [...fieldPath, key]));\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else if (key === ERRORS_KEY) {\n return { ...acc, [key]: (errorHandler as GenericObjectType)[key] };\n }\n return {\n ...acc,\n [key]: this.unwrapErrorHandler((errorHandler as GenericObjectType)[key]),\n };\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","this","ajv","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","createAjvInstance","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","message","path","toPath","property","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","_rest$message","_objectWithoutPropertiesLoose","_excluded","replace","trim","currentProperty","missingProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compiledValidator","compilationError","undefined","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","console","warn","removeSchema","schemaNode","clone","customizeValidator","index"],"mappings":"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"}
1
+ {"version":3,"file":"validator-ajv8.umd.production.min.js","sources":["../src/createAjvInstance.ts","../src/validator.ts","../src/customizeValidator.ts","../src/index.ts"],"sourcesContent":["import Ajv, { Options } from 'ajv';\nimport addFormats, { FormatsPluginOptions } from 'ajv-formats';\nimport isObject from 'lodash/isObject';\n\nimport { CustomValidatorOptionsType } from './types';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\n\nexport const AJV_CONFIG: Options = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n} as const;\nexport const COLOR_FORMAT_REGEX =\n /^(#?([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*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(\n additionalMetaSchemas?: CustomValidatorOptionsType['additionalMetaSchemas'],\n customFormats?: CustomValidatorOptionsType['customFormats'],\n ajvOptionsOverrides: CustomValidatorOptionsType['ajvOptionsOverrides'] = {},\n ajvFormatOptions?: FormatsPluginOptions | false,\n AjvClass: typeof Ajv = Ajv\n) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n } else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n\n return ajv;\n}\n","import Ajv, { ErrorObject, ValidateFunction } from 'ajv';\nimport toPath from 'lodash/toPath';\nimport isPlainObject from 'lodash/isPlainObject';\nimport clone from 'lodash/clone';\nimport {\n CustomValidator,\n ERRORS_KEY,\n ErrorSchema,\n ErrorSchemaBuilder,\n ErrorTransformer,\n FieldValidation,\n FormContextType,\n FormValidation,\n GenericObjectType,\n getDefaultFormState,\n mergeValidationData,\n REF_KEY,\n RJSFSchema,\n RJSFValidationError,\n StrictRJSFSchema,\n UiSchema,\n ValidationData,\n ValidatorType,\n PROPERTIES_KEY,\n getUiOptions,\n} from '@rjsf/utils';\nimport get from 'lodash/get';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport createAjvInstance from './createAjvInstance';\n\nconst ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\n\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>\n implements ValidatorType<T, S, F>\n{\n /** The AJV instance to use for all validations\n *\n * @private\n */\n private ajv: Ajv;\n\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n readonly localizer?: Localizer;\n\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options: CustomValidatorOptionsType, localizer?: Localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n\n /** Transforms a ajv validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @private\n */\n private toErrorSchema(errors: RJSFValidationError[]): ErrorSchema<T> {\n const builder = new ErrorSchemaBuilder<T>();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n const path = toPath(property);\n\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n }\n\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n */\n toErrorList(errorSchema?: ErrorSchema<T>, fieldPath: string[] = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList: RJSFValidationError[] = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(\n errorSchema[ERRORS_KEY]!.map((message: string) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n })\n );\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n const childSchema = (errorSchema as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n acc = acc.concat(this.toErrorList(childSchema, [...fieldPath, key]));\n }\n }\n return acc;\n }, errorList);\n }\n\n /** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @private\n */\n private createErrorHandler(formData: T): FormValidation<T> {\n const handler: FieldValidation = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n __errors: [],\n addError(message: string) {\n this.__errors!.push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: this.createErrorHandler(value) };\n }, handler);\n }\n if (isPlainObject(formData)) {\n const formObject: GenericObjectType = formData as GenericObjectType;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: this.createErrorHandler(formObject[key]) };\n }, handler as FormValidation<T>);\n }\n return handler as FormValidation<T>;\n }\n\n /** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @private\n */\n private unwrapErrorHandler(errorHandler: FormValidation<T>): ErrorSchema<T> {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n } else {\n const childSchema = (errorHandler as GenericObjectType)[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: this.unwrapErrorHandler(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }\n }, {} as ErrorSchema<T>);\n }\n\n /** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @protected\n */\n protected transformRJSFValidationErrors(\n errors: ErrorObject[] = [],\n uiSchema?: UiSchema<T, S, F>\n ): RJSFValidationError[] {\n return errors.map((e: ErrorObject) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty: string = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n } else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n\n stack = message;\n } else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n } else {\n const parentSchemaTitle = parentSchema?.title;\n\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n };\n });\n }\n\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation<Result = any>(schema: RJSFSchema, formData?: T): { errors?: Result[]; validationError?: Error } {\n let compilationError: Error | undefined = undefined;\n let compiledValidator: ValidateFunction | undefined;\n if (schema['$id']) {\n compiledValidator = this.ajv.getSchema(schema['$id']);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n } catch (err) {\n compilationError = err as Error;\n }\n\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n\n return {\n errors: errors as unknown as Result[],\n validationError: compilationError,\n };\n }\n\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(\n formData: T | undefined,\n schema: S,\n customValidate?: CustomValidator<T, S, F>,\n transformErrors?: ErrorTransformer<T, S, F>,\n uiSchema?: UiSchema<T, S, F>\n ): ValidationData<T> {\n const rawErrors = this.rawValidation<ErrorObject>(schema, formData);\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = this.transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError!.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n\n let errorSchema = this.toErrorSchema(errors);\n\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError!.message],\n },\n };\n }\n\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState<T, S, F>(this, schema, formData, schema, true) as T;\n\n const errorHandler = customValidate(newFormData, this.createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = this.unwrapErrorHandler(errorHandler);\n return mergeValidationData<T, S, F>(this, { errors, errorSchema }, userErrorSchema);\n }\n\n /** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixObject(node: S) {\n for (const key in node) {\n const realObj: GenericObjectType = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n } else {\n realObj[key] = this.withIdRefPrefix(value);\n }\n }\n return node;\n }\n\n /** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @private\n */\n private withIdRefPrefixArray(node: S[]): S[] {\n for (let i = 0; i < node.length; i++) {\n node[i] = this.withIdRefPrefix(node[i]) as S;\n }\n return node;\n }\n\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema: S, formData: T | undefined, rootSchema: S) {\n const rootSchemaId = rootSchema['$id'] ?? ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n const schemaWithIdRefPrefix = this.withIdRefPrefix(schema) as S;\n let compiledValidator: ValidateFunction | undefined;\n if (schemaWithIdRefPrefix['$id']) {\n compiledValidator = this.ajv.getSchema(schemaWithIdRefPrefix['$id']);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result as boolean;\n } catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n } finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n\n /** Recursively prefixes all $ref's in a schema with `ROOT_SCHEMA_PREFIX`\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @protected\n */\n protected withIdRefPrefix(schemaNode: S | S[]): S | S[] {\n if (Array.isArray(schemaNode)) {\n return this.withIdRefPrefixArray([...schemaNode]);\n }\n if (isPlainObject(schemaNode)) {\n return this.withIdRefPrefixObject(clone<S>(schemaNode));\n }\n return schemaNode;\n }\n}\n","import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '@rjsf/utils';\n\nimport { CustomValidatorOptionsType, Localizer } from './types';\nimport AJV8Validator from './validator';\n\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\nexport default function customizeValidator<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any\n>(options: CustomValidatorOptionsType = {}, localizer?: Localizer): ValidatorType<T, S, F> {\n return new AJV8Validator<T, S, F>(options, localizer);\n}\n","import customizeValidator from './customizeValidator';\n\nexport { customizeValidator };\nexport * from './types';\n\nexport default customizeValidator();\n"],"names":["AJV_CONFIG","allErrors","multipleOfPrecision","strict","verbose","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","ROOT_SCHEMA_PREFIX","AJV8Validator","options","localizer","this","ajv","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","Ajv","_extends","addFormats","addFormat","addKeyword","ADDITIONAL_PROPERTY_FLAG","RJSF_ADDITONAL_PROPERTIES_FLAG","Array","isArray","addMetaSchema","isObject","Object","keys","forEach","formatName","createAjvInstance","_proto","prototype","toErrorSchema","errors","builder","ErrorSchemaBuilder","length","error","message","path","toPath","property","splice","addErrors","ErrorSchema","toErrorList","errorSchema","fieldPath","_this","errorList","ERRORS_KEY","concat","map","join","stack","reduce","acc","key","childSchema","isPlainObject","createErrorHandler","formData","_this2","handler","__errors","addError","push","value","_extends2","formObject","_extends3","unwrapErrorHandler","errorHandler","_this3","_extends5","_extends4","transformRJSFValidationErrors","uiSchema","e","instancePath","keyword","params","schemaPath","parentSchema","_rest$message","_objectWithoutPropertiesLoose","_excluded","replace","trim","currentProperty","missingProperty","uiSchemaTitle","getUiOptions","get","title","parentSchemaTitle","PROPERTIES_KEY","name","rawValidation","schema","compiledValidator","compilationError","undefined","getSchema","compile","err","validationError","validateFormData","customValidate","transformErrors","rawErrors","invalidSchemaError","$schema","newFormData","getDefaultFormState","userErrorSchema","mergeValidationData","withIdRefPrefixObject","node","REF_KEY","startsWith","withIdRefPrefix","withIdRefPrefixArray","i","isValid","rootSchema","_rootSchema$$id","rootSchemaId","addSchema","schemaWithIdRefPrefix","console","warn","removeSchema","schemaNode","clone","customizeValidator","index"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rjsf/validator-ajv8",
3
- "version": "5.3.1",
3
+ "version": "5.4.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/validator-ajv8.esm.js",
6
6
  "typings": "dist/index.d.ts",
@@ -42,14 +42,14 @@
42
42
  "@babel/plugin-transform-react-jsx": "^7.21.0",
43
43
  "@babel/preset-env": "^7.20.2",
44
44
  "@babel/preset-react": "^7.18.6",
45
- "@rjsf/utils": "^5.3.1",
45
+ "@rjsf/utils": "^5.4.0",
46
46
  "@types/jest-expect-message": "^1.1.0",
47
47
  "@types/json-schema": "^7.0.9",
48
48
  "@types/lodash": "^4.14.191",
49
49
  "dts-cli": "^1.6.3",
50
50
  "eslint": "^8.36.0",
51
51
  "jest-expect-message": "^1.1.3",
52
- "rimraf": "^4.4.0"
52
+ "rimraf": "^4.4.1"
53
53
  },
54
54
  "publishConfig": {
55
55
  "access": "public"
@@ -72,5 +72,5 @@
72
72
  "url": "git+https://github.com/rjsf-team/react-jsonschema-form.git"
73
73
  },
74
74
  "license": "Apache-2.0",
75
- "gitHead": "6ecef3909bc93616b444176dcb734b761a1d5424"
75
+ "gitHead": "61ac1121cd37442ec1ff339c33944c69b655d533"
76
76
  }