@rjsf/utils 5.20.0 → 5.21.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.
Files changed (39) hide show
  1. package/dist/index.js +186 -149
  2. package/dist/index.js.map +4 -4
  3. package/dist/utils.esm.js +186 -149
  4. package/dist/utils.esm.js.map +4 -4
  5. package/dist/utils.umd.js +191 -143
  6. package/lib/createSchemaUtils.js +1 -1
  7. package/lib/createSchemaUtils.js.map +1 -1
  8. package/lib/deepEquals.d.ts +1 -1
  9. package/lib/deepEquals.js +34 -10
  10. package/lib/deepEquals.js.map +1 -1
  11. package/lib/enumOptionsDeselectValue.js +3 -3
  12. package/lib/enumOptionsDeselectValue.js.map +1 -1
  13. package/lib/enumOptionsIsSelected.js +3 -3
  14. package/lib/enumOptionsIsSelected.js.map +1 -1
  15. package/lib/parser/ParserValidator.js +3 -3
  16. package/lib/parser/ParserValidator.js.map +1 -1
  17. package/lib/parser/schemaParser.js +4 -4
  18. package/lib/parser/schemaParser.js.map +1 -1
  19. package/lib/schema/getDefaultFormState.d.ts +39 -11
  20. package/lib/schema/getDefaultFormState.js +160 -125
  21. package/lib/schema/getDefaultFormState.js.map +1 -1
  22. package/lib/schema/retrieveSchema.js +7 -4
  23. package/lib/schema/retrieveSchema.js.map +1 -1
  24. package/lib/schema/toIdSchema.js +2 -2
  25. package/lib/schema/toIdSchema.js.map +1 -1
  26. package/lib/schema/toPathSchema.js +3 -3
  27. package/lib/schema/toPathSchema.js.map +1 -1
  28. package/lib/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +3 -2
  30. package/src/createSchemaUtils.ts +1 -1
  31. package/src/deepEquals.ts +37 -10
  32. package/src/enumOptionsDeselectValue.ts +3 -4
  33. package/src/enumOptionsIsSelected.ts +3 -4
  34. package/src/parser/ParserValidator.ts +3 -3
  35. package/src/parser/schemaParser.ts +4 -4
  36. package/src/schema/getDefaultFormState.ts +237 -156
  37. package/src/schema/retrieveSchema.ts +8 -5
  38. package/src/schema/toIdSchema.ts +2 -2
  39. package/src/schema/toPathSchema.ts +3 -3
package/dist/index.js CHANGED
@@ -265,14 +265,25 @@ function createErrorHandler(formData) {
265
265
  }
266
266
 
267
267
  // src/deepEquals.ts
268
- var import_isEqualWith = __toESM(require("lodash/isEqualWith"));
268
+ var import_fast_equals = require("fast-equals");
269
+ function isFunctions(a, b) {
270
+ return typeof a === "function" && typeof b === "function";
271
+ }
272
+ var customDeepEqual = (0, import_fast_equals.createCustomEqual)({
273
+ createInternalComparator: (comparator) => {
274
+ return (a, b, _idxA, _idxB, _parentA, _parentB, state) => {
275
+ if (isFunctions(a, b)) {
276
+ return true;
277
+ }
278
+ return comparator(a, b, state);
279
+ };
280
+ }
281
+ });
269
282
  function deepEquals(a, b) {
270
- return (0, import_isEqualWith.default)(a, b, (obj, other) => {
271
- if (typeof obj === "function" && typeof other === "function") {
272
- return true;
273
- }
274
- return void 0;
275
- });
283
+ if (isFunctions(a, b)) {
284
+ return true;
285
+ }
286
+ return customDeepEqual(a, b);
276
287
  }
277
288
 
278
289
  // src/schema/getDefaultFormState.ts
@@ -416,7 +427,6 @@ function getFirstMatchingOption(validator, formData, options, rootSchema, discri
416
427
 
417
428
  // src/schema/retrieveSchema.ts
418
429
  var import_get4 = __toESM(require("lodash/get"));
419
- var import_isEqual = __toESM(require("lodash/isEqual"));
420
430
  var import_set = __toESM(require("lodash/set"));
421
431
  var import_times = __toESM(require("lodash/times"));
422
432
  var import_transform = __toESM(require("lodash/transform"));
@@ -596,7 +606,10 @@ function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurse
596
606
  )
597
607
  );
598
608
  const allPermutations = getAllPermutationsOfXxxOf(allOfSchemaElements);
599
- return allPermutations.map((permutation) => ({ ...schema, allOf: permutation }));
609
+ return allPermutations.map((permutation) => ({
610
+ ...schema,
611
+ allOf: permutation
612
+ }));
600
613
  }
601
614
  return [schema];
602
615
  }
@@ -648,7 +661,7 @@ function resolveAllReferences(schema, rootSchema, recurseList) {
648
661
  items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList)
649
662
  };
650
663
  }
651
- return (0, import_isEqual.default)(schema, resolvedSchema) ? schema : resolvedSchema;
664
+ return deepEquals(schema, resolvedSchema) ? schema : resolvedSchema;
652
665
  }
653
666
  function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFormData) {
654
667
  const schema = {
@@ -1124,15 +1137,16 @@ function maybeAddDefaultToObject(obj, key, computedDefault, includeUndefinedValu
1124
1137
  }
1125
1138
  }
1126
1139
  }
1127
- function computeDefaults(validator, rawSchema, {
1128
- parentDefaults,
1129
- rawFormData,
1130
- rootSchema = {},
1131
- includeUndefinedValues = false,
1132
- _recurseList = [],
1133
- experimental_defaultFormStateBehavior = void 0,
1134
- required
1135
- } = {}) {
1140
+ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1141
+ const {
1142
+ parentDefaults,
1143
+ rawFormData,
1144
+ rootSchema = {},
1145
+ includeUndefinedValues = false,
1146
+ _recurseList = [],
1147
+ experimental_defaultFormStateBehavior = void 0,
1148
+ required
1149
+ } = computeDefaultsProps;
1136
1150
  const formData = isObject(rawFormData) ? rawFormData : {};
1137
1151
  const schema = isObject(rawSchema) ? rawSchema : {};
1138
1152
  let defaults = parentDefaults;
@@ -1149,7 +1163,11 @@ function computeDefaults(validator, rawSchema, {
1149
1163
  schemaToCompute = findSchemaDefinition(refName, rootSchema);
1150
1164
  }
1151
1165
  } else if (DEPENDENCIES_KEY in schema) {
1152
- const resolvedSchema = resolveDependencies(validator, schema, rootSchema, false, [], formData);
1166
+ const defaultFormData = {
1167
+ ...formData,
1168
+ ...getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults)
1169
+ };
1170
+ const resolvedSchema = resolveDependencies(validator, schema, rootSchema, false, [], defaultFormData);
1153
1171
  schemaToCompute = resolvedSchema[0];
1154
1172
  } else if (isFixedItems(schema)) {
1155
1173
  defaults = schema.items.map(
@@ -1208,127 +1226,154 @@ function computeDefaults(validator, rawSchema, {
1208
1226
  if (defaults === void 0) {
1209
1227
  defaults = schema.default;
1210
1228
  }
1211
- switch (getSchemaType(schema)) {
1212
- case "object": {
1213
- const retrievedSchema = experimental_defaultFormStateBehavior?.allOf === "populateDefaults" && ALL_OF_KEY in schema ? retrieveSchema(validator, schema, rootSchema, formData) : schema;
1214
- const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce(
1215
- (acc, key) => {
1216
- const computedDefault = computeDefaults(validator, (0, import_get7.default)(retrievedSchema, [PROPERTIES_KEY, key]), {
1217
- rootSchema,
1218
- _recurseList,
1219
- experimental_defaultFormStateBehavior,
1220
- includeUndefinedValues: includeUndefinedValues === true,
1221
- parentDefaults: (0, import_get7.default)(defaults, [key]),
1222
- rawFormData: (0, import_get7.default)(formData, [key]),
1223
- required: retrievedSchema.required?.includes(key)
1224
- });
1225
- maybeAddDefaultToObject(
1226
- acc,
1227
- key,
1228
- computedDefault,
1229
- includeUndefinedValues,
1230
- required,
1231
- retrievedSchema.required,
1232
- experimental_defaultFormStateBehavior
1233
- );
1234
- return acc;
1235
- },
1236
- {}
1237
- );
1238
- if (retrievedSchema.additionalProperties) {
1239
- const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties) ? retrievedSchema.additionalProperties : {};
1240
- const keys = /* @__PURE__ */ new Set();
1241
- if (isObject(defaults)) {
1242
- Object.keys(defaults).filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key]).forEach((key) => keys.add(key));
1243
- }
1244
- const formDataRequired = [];
1245
- Object.keys(formData).filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key]).forEach((key) => {
1246
- keys.add(key);
1247
- formDataRequired.push(key);
1248
- });
1249
- keys.forEach((key) => {
1250
- const computedDefault = computeDefaults(validator, additionalPropertiesSchema, {
1251
- rootSchema,
1252
- _recurseList,
1253
- experimental_defaultFormStateBehavior,
1254
- includeUndefinedValues: includeUndefinedValues === true,
1255
- parentDefaults: (0, import_get7.default)(defaults, [key]),
1256
- rawFormData: (0, import_get7.default)(formData, [key]),
1257
- required: retrievedSchema.required?.includes(key)
1258
- });
1259
- maybeAddDefaultToObject(
1260
- objectDefaults,
1261
- key,
1262
- computedDefault,
1263
- includeUndefinedValues,
1264
- required,
1265
- formDataRequired
1266
- );
1229
+ const defaultBasedOnSchemaType = getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults);
1230
+ return defaultBasedOnSchemaType ?? defaults;
1231
+ }
1232
+ function getObjectDefaults(validator, rawSchema, {
1233
+ rawFormData,
1234
+ rootSchema = {},
1235
+ includeUndefinedValues = false,
1236
+ _recurseList = [],
1237
+ experimental_defaultFormStateBehavior = void 0,
1238
+ required
1239
+ } = {}, defaults) {
1240
+ {
1241
+ const formData = isObject(rawFormData) ? rawFormData : {};
1242
+ const schema = rawSchema;
1243
+ const retrievedSchema = experimental_defaultFormStateBehavior?.allOf === "populateDefaults" && ALL_OF_KEY in schema ? retrieveSchema(validator, schema, rootSchema, formData) : schema;
1244
+ const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce(
1245
+ (acc, key) => {
1246
+ const computedDefault = computeDefaults(validator, (0, import_get7.default)(retrievedSchema, [PROPERTIES_KEY, key]), {
1247
+ rootSchema,
1248
+ _recurseList,
1249
+ experimental_defaultFormStateBehavior,
1250
+ includeUndefinedValues: includeUndefinedValues === true,
1251
+ parentDefaults: (0, import_get7.default)(defaults, [key]),
1252
+ rawFormData: (0, import_get7.default)(formData, [key]),
1253
+ required: retrievedSchema.required?.includes(key)
1267
1254
  });
1255
+ maybeAddDefaultToObject(
1256
+ acc,
1257
+ key,
1258
+ computedDefault,
1259
+ includeUndefinedValues,
1260
+ required,
1261
+ retrievedSchema.required,
1262
+ experimental_defaultFormStateBehavior
1263
+ );
1264
+ return acc;
1265
+ },
1266
+ {}
1267
+ );
1268
+ if (retrievedSchema.additionalProperties) {
1269
+ const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties) ? retrievedSchema.additionalProperties : {};
1270
+ const keys = /* @__PURE__ */ new Set();
1271
+ if (isObject(defaults)) {
1272
+ Object.keys(defaults).filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key]).forEach((key) => keys.add(key));
1268
1273
  }
1269
- return objectDefaults;
1270
- }
1271
- case "array": {
1272
- const neverPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "never";
1273
- const ignoreMinItemsFlagSet = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "requiredOnly";
1274
- const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === "skipEmptyDefaults";
1275
- const computeSkipPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.computeSkipPopulate ?? (() => false);
1276
- const emptyDefault = isSkipEmptyDefaults ? void 0 : [];
1277
- if (Array.isArray(defaults)) {
1278
- defaults = defaults.map((item, idx) => {
1279
- const schemaItem = getInnerSchemaForArrayItem(schema, 2 /* Fallback */, idx);
1280
- return computeDefaults(validator, schemaItem, {
1281
- rootSchema,
1282
- _recurseList,
1283
- experimental_defaultFormStateBehavior,
1284
- parentDefaults: item,
1285
- required
1286
- });
1274
+ const formDataRequired = [];
1275
+ Object.keys(formData).filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key]).forEach((key) => {
1276
+ keys.add(key);
1277
+ formDataRequired.push(key);
1278
+ });
1279
+ keys.forEach((key) => {
1280
+ const computedDefault = computeDefaults(validator, additionalPropertiesSchema, {
1281
+ rootSchema,
1282
+ _recurseList,
1283
+ experimental_defaultFormStateBehavior,
1284
+ includeUndefinedValues: includeUndefinedValues === true,
1285
+ parentDefaults: (0, import_get7.default)(defaults, [key]),
1286
+ rawFormData: (0, import_get7.default)(formData, [key]),
1287
+ required: retrievedSchema.required?.includes(key)
1287
1288
  });
1288
- }
1289
- if (Array.isArray(rawFormData)) {
1290
- const schemaItem = getInnerSchemaForArrayItem(schema);
1291
- if (neverPopulate) {
1292
- defaults = rawFormData;
1293
- } else {
1294
- defaults = rawFormData.map((item, idx) => {
1295
- return computeDefaults(validator, schemaItem, {
1296
- rootSchema,
1297
- _recurseList,
1298
- experimental_defaultFormStateBehavior,
1299
- rawFormData: item,
1300
- parentDefaults: (0, import_get7.default)(defaults, [idx]),
1301
- required
1302
- });
1303
- });
1304
- }
1305
- }
1306
- if (neverPopulate) {
1307
- return defaults ?? emptyDefault;
1308
- }
1309
- if (ignoreMinItemsFlagSet && !required) {
1310
- return defaults ? defaults : void 0;
1311
- }
1312
- const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;
1313
- if (!schema.minItems || isMultiSelect(validator, schema, rootSchema) || computeSkipPopulate(validator, schema, rootSchema) || schema.minItems <= defaultsLength) {
1314
- return defaults ? defaults : emptyDefault;
1315
- }
1316
- const defaultEntries = defaults || [];
1317
- const fillerSchema = getInnerSchemaForArrayItem(schema, 1 /* Invert */);
1318
- const fillerDefault = fillerSchema.default;
1319
- const fillerEntries = new Array(schema.minItems - defaultsLength).fill(
1320
- computeDefaults(validator, fillerSchema, {
1321
- parentDefaults: fillerDefault,
1289
+ maybeAddDefaultToObject(
1290
+ objectDefaults,
1291
+ key,
1292
+ computedDefault,
1293
+ includeUndefinedValues,
1294
+ required,
1295
+ formDataRequired
1296
+ );
1297
+ });
1298
+ }
1299
+ return objectDefaults;
1300
+ }
1301
+ }
1302
+ function getArrayDefaults(validator, rawSchema, {
1303
+ rawFormData,
1304
+ rootSchema = {},
1305
+ _recurseList = [],
1306
+ experimental_defaultFormStateBehavior = void 0,
1307
+ required
1308
+ } = {}, defaults) {
1309
+ const schema = rawSchema;
1310
+ const neverPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "never";
1311
+ const ignoreMinItemsFlagSet = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "requiredOnly";
1312
+ const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === "skipEmptyDefaults";
1313
+ const computeSkipPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.computeSkipPopulate ?? (() => false);
1314
+ const emptyDefault = isSkipEmptyDefaults ? void 0 : [];
1315
+ if (Array.isArray(defaults)) {
1316
+ defaults = defaults.map((item, idx) => {
1317
+ const schemaItem = getInnerSchemaForArrayItem(schema, 2 /* Fallback */, idx);
1318
+ return computeDefaults(validator, schemaItem, {
1319
+ rootSchema,
1320
+ _recurseList,
1321
+ experimental_defaultFormStateBehavior,
1322
+ parentDefaults: item,
1323
+ required
1324
+ });
1325
+ });
1326
+ }
1327
+ if (Array.isArray(rawFormData)) {
1328
+ const schemaItem = getInnerSchemaForArrayItem(schema);
1329
+ if (neverPopulate) {
1330
+ defaults = rawFormData;
1331
+ } else {
1332
+ defaults = rawFormData.map((item, idx) => {
1333
+ return computeDefaults(validator, schemaItem, {
1322
1334
  rootSchema,
1323
1335
  _recurseList,
1324
1336
  experimental_defaultFormStateBehavior,
1337
+ rawFormData: item,
1338
+ parentDefaults: (0, import_get7.default)(defaults, [idx]),
1325
1339
  required
1326
- })
1327
- );
1328
- return defaultEntries.concat(fillerEntries);
1340
+ });
1341
+ });
1342
+ }
1343
+ }
1344
+ if (neverPopulate) {
1345
+ return defaults ?? emptyDefault;
1346
+ }
1347
+ if (ignoreMinItemsFlagSet && !required) {
1348
+ return defaults ? defaults : void 0;
1349
+ }
1350
+ const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;
1351
+ if (!schema.minItems || isMultiSelect(validator, schema, rootSchema) || computeSkipPopulate(validator, schema, rootSchema) || schema.minItems <= defaultsLength) {
1352
+ return defaults ? defaults : emptyDefault;
1353
+ }
1354
+ const defaultEntries = defaults || [];
1355
+ const fillerSchema = getInnerSchemaForArrayItem(schema, 1 /* Invert */);
1356
+ const fillerDefault = fillerSchema.default;
1357
+ const fillerEntries = new Array(schema.minItems - defaultsLength).fill(
1358
+ computeDefaults(validator, fillerSchema, {
1359
+ parentDefaults: fillerDefault,
1360
+ rootSchema,
1361
+ _recurseList,
1362
+ experimental_defaultFormStateBehavior,
1363
+ required
1364
+ })
1365
+ );
1366
+ return defaultEntries.concat(fillerEntries);
1367
+ }
1368
+ function getDefaultBasedOnSchemaType(validator, rawSchema, computeDefaultsProps = {}, defaults) {
1369
+ switch (getSchemaType(rawSchema)) {
1370
+ case "object": {
1371
+ return getObjectDefaults(validator, rawSchema, computeDefaultsProps, defaults);
1372
+ }
1373
+ case "array": {
1374
+ return getArrayDefaults(validator, rawSchema, computeDefaultsProps, defaults);
1329
1375
  }
1330
1376
  }
1331
- return defaults;
1332
1377
  }
1333
1378
  function getDefaultFormState(validator, theSchema, formData, rootSchema, includeUndefinedValues = false, experimental_defaultFormStateBehavior) {
1334
1379
  if (!isObject(theSchema)) {
@@ -1521,11 +1566,10 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1521
1566
 
1522
1567
  // src/schema/toIdSchema.ts
1523
1568
  var import_get9 = __toESM(require("lodash/get"));
1524
- var import_isEqual2 = __toESM(require("lodash/isEqual"));
1525
1569
  function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = []) {
1526
1570
  if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
1527
1571
  const _schema = retrieveSchema(validator, schema, rootSchema, formData);
1528
- const sameSchemaIndex = _recurseList.findIndex((item) => (0, import_isEqual2.default)(item, _schema));
1572
+ const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals(item, _schema));
1529
1573
  if (sameSchemaIndex === -1) {
1530
1574
  return toIdSchemaInternal(
1531
1575
  validator,
@@ -1579,12 +1623,11 @@ function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = "roo
1579
1623
 
1580
1624
  // src/schema/toPathSchema.ts
1581
1625
  var import_get10 = __toESM(require("lodash/get"));
1582
- var import_isEqual3 = __toESM(require("lodash/isEqual"));
1583
1626
  var import_set2 = __toESM(require("lodash/set"));
1584
1627
  function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = []) {
1585
1628
  if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
1586
1629
  const _schema = retrieveSchema(validator, schema, rootSchema, formData);
1587
- const sameSchemaIndex = _recurseList.findIndex((item) => (0, import_isEqual3.default)(item, _schema));
1630
+ const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals(item, _schema));
1588
1631
  if (sameSchemaIndex === -1) {
1589
1632
  return toPathSchemaInternal(
1590
1633
  validator,
@@ -1955,9 +1998,6 @@ function englishStringTranslator(stringToTranslate, params) {
1955
1998
  return replaceStringParameters(stringToTranslate, params);
1956
1999
  }
1957
2000
 
1958
- // src/enumOptionsDeselectValue.ts
1959
- var import_isEqual4 = __toESM(require("lodash/isEqual"));
1960
-
1961
2001
  // src/enumOptionsValueForIndex.ts
1962
2002
  function enumOptionsValueForIndex(valueIndex, allEnumOptions = [], emptyValue) {
1963
2003
  if (Array.isArray(valueIndex)) {
@@ -1972,18 +2012,17 @@ function enumOptionsValueForIndex(valueIndex, allEnumOptions = [], emptyValue) {
1972
2012
  function enumOptionsDeselectValue(valueIndex, selected, allEnumOptions = []) {
1973
2013
  const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);
1974
2014
  if (Array.isArray(selected)) {
1975
- return selected.filter((v) => !(0, import_isEqual4.default)(v, value));
2015
+ return selected.filter((v) => !deepEquals(v, value));
1976
2016
  }
1977
- return (0, import_isEqual4.default)(value, selected) ? void 0 : selected;
2017
+ return deepEquals(value, selected) ? void 0 : selected;
1978
2018
  }
1979
2019
 
1980
2020
  // src/enumOptionsIsSelected.ts
1981
- var import_isEqual5 = __toESM(require("lodash/isEqual"));
1982
2021
  function enumOptionsIsSelected(value, selected) {
1983
2022
  if (Array.isArray(selected)) {
1984
- return selected.some((sel) => (0, import_isEqual5.default)(sel, value));
2023
+ return selected.some((sel) => deepEquals(sel, value));
1985
2024
  }
1986
- return (0, import_isEqual5.default)(selected, value);
2025
+ return deepEquals(selected, value);
1987
2026
  }
1988
2027
 
1989
2028
  // src/enumOptionsIndexForValue.ts
@@ -2678,11 +2717,9 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
2678
2717
 
2679
2718
  // src/parser/schemaParser.ts
2680
2719
  var import_forEach = __toESM(require("lodash/forEach"));
2681
- var import_isEqual7 = __toESM(require("lodash/isEqual"));
2682
2720
 
2683
2721
  // src/parser/ParserValidator.ts
2684
2722
  var import_get13 = __toESM(require("lodash/get"));
2685
- var import_isEqual6 = __toESM(require("lodash/isEqual"));
2686
2723
  var ParserValidator = class {
2687
2724
  /** Construct the ParserValidator for the given `rootSchema`. This `rootSchema` will be stashed in the `schemaMap`
2688
2725
  * first.
@@ -2713,7 +2750,7 @@ var ParserValidator = class {
2713
2750
  const existing = this.schemaMap[key];
2714
2751
  if (!existing) {
2715
2752
  this.schemaMap[key] = identifiedSchema;
2716
- } else if (!(0, import_isEqual6.default)(existing, identifiedSchema)) {
2753
+ } else if (!deepEquals(existing, identifiedSchema)) {
2717
2754
  console.error("existing schema:", JSON.stringify(existing, null, 2));
2718
2755
  console.error("new schema:", JSON.stringify(identifiedSchema, null, 2));
2719
2756
  throw new Error(
@@ -2735,7 +2772,7 @@ var ParserValidator = class {
2735
2772
  * @throws - Error when the given `rootSchema` differs from the root schema provided during construction
2736
2773
  */
2737
2774
  isValid(schema, _formData, rootSchema) {
2738
- if (!(0, import_isEqual6.default)(rootSchema, this.rootSchema)) {
2775
+ if (!deepEquals(rootSchema, this.rootSchema)) {
2739
2776
  throw new Error("Unexpectedly calling isValid() with a rootSchema that differs from the construction rootSchema");
2740
2777
  }
2741
2778
  this.addSchema(schema, hashForSchema(schema));
@@ -2775,7 +2812,7 @@ var ParserValidator = class {
2775
2812
  function parseSchema(validator, recurseList, rootSchema, schema) {
2776
2813
  const schemas = retrieveSchemaInternal(validator, schema, rootSchema, void 0, true);
2777
2814
  schemas.forEach((schema2) => {
2778
- const sameSchemaIndex = recurseList.findIndex((item) => (0, import_isEqual7.default)(item, schema2));
2815
+ const sameSchemaIndex = recurseList.findIndex((item) => deepEquals(item, schema2));
2779
2816
  if (sameSchemaIndex === -1) {
2780
2817
  recurseList.push(schema2);
2781
2818
  const allOptions = resolveAnyOrOneOfSchemas(validator, schema2, rootSchema, true);