@1money/component-ui 0.0.74 → 0.0.76

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 (81) hide show
  1. package/es/components/Dialog/Dialog.js +7 -39
  2. package/es/components/Dialog/constants.d.ts +0 -3
  3. package/es/components/Dialog/constants.js +1 -4
  4. package/es/components/Dialog/style/Dialog.css +0 -21
  5. package/es/components/ProForm/ProForm.js +46 -33
  6. package/es/components/ProForm/ProFormDependency.js +6 -16
  7. package/es/components/ProForm/ProFormItem.js +5 -7
  8. package/es/components/ProForm/ProFormList.js +112 -40
  9. package/es/components/ProForm/core/constants.d.ts +2 -0
  10. package/es/components/ProForm/core/constants.js +7 -1
  11. package/es/components/ProForm/core/devWarning.d.ts +3 -0
  12. package/es/components/ProForm/core/devWarning.js +22 -0
  13. package/es/components/ProForm/core/formStore.d.ts +10 -2
  14. package/es/components/ProForm/core/formStore.js +21 -2
  15. package/es/components/ProForm/core/hooks/useForm.js +246 -103
  16. package/es/components/ProForm/core/hooks/useFormCore.js +134 -28
  17. package/es/components/ProForm/core/interface.d.ts +124 -49
  18. package/es/components/ProForm/core/runRules.d.ts +44 -12
  19. package/es/components/ProForm/core/runRules.js +584 -133
  20. package/es/components/ProForm/core/useFormItem.d.ts +6 -7
  21. package/es/components/ProForm/core/useFormItem.js +44 -22
  22. package/es/components/ProForm/core/validationError.d.ts +13 -0
  23. package/es/components/ProForm/core/validationError.js +29 -0
  24. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +19 -5
  25. package/es/components/ProForm/fields/ProFormFieldSet.js +51 -12
  26. package/es/components/ProForm/fields/ProFormRadioGroup.js +8 -3
  27. package/es/components/ProForm/fields/ProFormSelect.js +13 -7
  28. package/es/components/ProForm/fields/createProFormField.js +18 -25
  29. package/es/components/ProForm/hooks/useFieldRequest.js +10 -8
  30. package/es/components/ProForm/index.d.ts +2 -1
  31. package/es/components/ProForm/index.js +4 -1
  32. package/es/components/ProForm/interface.d.ts +31 -40
  33. package/es/components/ProForm/layouts/QueryFilter.js +24 -16
  34. package/es/components/ProForm/style/ProForm.css +0 -1
  35. package/es/components/ProForm/utils.d.ts +8 -0
  36. package/es/components/ProForm/utils.js +51 -3
  37. package/es/components/Table/core/useTableSetup.js +2 -2
  38. package/es/components/Table/interface.d.ts +1 -1
  39. package/es/index.css +1 -1
  40. package/lib/components/Dialog/Dialog.js +6 -38
  41. package/lib/components/Dialog/constants.d.ts +0 -3
  42. package/lib/components/Dialog/constants.js +1 -4
  43. package/lib/components/Dialog/style/Dialog.css +0 -21
  44. package/lib/components/ProForm/ProForm.js +45 -32
  45. package/lib/components/ProForm/ProFormDependency.js +5 -15
  46. package/lib/components/ProForm/ProFormItem.js +5 -7
  47. package/lib/components/ProForm/ProFormList.js +110 -38
  48. package/lib/components/ProForm/core/constants.d.ts +2 -0
  49. package/lib/components/ProForm/core/constants.js +8 -2
  50. package/lib/components/ProForm/core/devWarning.d.ts +3 -0
  51. package/lib/components/ProForm/core/devWarning.js +29 -0
  52. package/lib/components/ProForm/core/formStore.d.ts +10 -2
  53. package/lib/components/ProForm/core/formStore.js +23 -2
  54. package/lib/components/ProForm/core/hooks/useForm.js +242 -99
  55. package/lib/components/ProForm/core/hooks/useFormCore.js +133 -27
  56. package/lib/components/ProForm/core/interface.d.ts +124 -49
  57. package/lib/components/ProForm/core/runRules.d.ts +44 -12
  58. package/lib/components/ProForm/core/runRules.js +587 -133
  59. package/lib/components/ProForm/core/useFormItem.d.ts +6 -7
  60. package/lib/components/ProForm/core/useFormItem.js +43 -21
  61. package/lib/components/ProForm/core/validationError.d.ts +13 -0
  62. package/lib/components/ProForm/core/validationError.js +36 -0
  63. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +18 -4
  64. package/lib/components/ProForm/fields/ProFormFieldSet.js +51 -12
  65. package/lib/components/ProForm/fields/ProFormRadioGroup.js +7 -2
  66. package/lib/components/ProForm/fields/ProFormSelect.js +13 -7
  67. package/lib/components/ProForm/fields/createProFormField.js +18 -25
  68. package/lib/components/ProForm/hooks/useFieldRequest.js +10 -8
  69. package/lib/components/ProForm/index.d.ts +2 -1
  70. package/lib/components/ProForm/index.js +10 -1
  71. package/lib/components/ProForm/interface.d.ts +31 -40
  72. package/lib/components/ProForm/layouts/QueryFilter.js +24 -16
  73. package/lib/components/ProForm/style/ProForm.css +0 -1
  74. package/lib/components/ProForm/utils.d.ts +8 -0
  75. package/lib/components/ProForm/utils.js +52 -3
  76. package/lib/components/Table/core/useTableSetup.js +2 -2
  77. package/lib/components/Table/interface.d.ts +1 -1
  78. package/lib/index.css +1 -1
  79. package/package.json +1 -1
  80. package/scripts/mcp-server/examples.generated.json +42 -36
  81. package/scripts/mcp-server/index.generated.json +23 -67
@@ -3,6 +3,12 @@ export var FORM_LAYOUTS = ['vertical'];
3
3
  export var LABEL_ALIGNS = ['left', 'right'];
4
4
  export var VALIDATE_STATUSES = ['success', 'warning', 'error', 'validating'];
5
5
  export var VALIDATE_TRIGGERS = ['onChange', 'onBlur'];
6
+ // RuleContext instance members, split by safety: READ members are available
7
+ // in EVERY rule resolution (including render-phase required-mark checks);
8
+ // MUTATOR members are handed out only during validation-time resolutions.
9
+ // useFormItem (renderSafeInstance) and the contract tests derive from these.
10
+ export var RULE_CONTEXT_READ_MEMBERS = ['getFieldError', 'getFieldWarning', 'isFieldTouched', 'isFieldValidating'];
11
+ export var RULE_CONTEXT_MUTATOR_MEMBERS = ['setFieldValue', 'setFieldsValue', 'resetFields'];
6
12
  // Label typography pairs with the field control's text size for each form
7
13
  // size: large control text is body/lg (16px) → label lg; small is body/md
8
14
  // (14px) → label md.
@@ -34,4 +40,4 @@ export var SIZE_AWARE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextAre
34
40
  * fallback value.
35
41
  */
36
42
  export var TEXT_LIKE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
37
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiRk9STV9MQUJFTF9TSVpFUyIsImxhcmdlIiwic21hbGwiLCJGT1JNX0xBQkVMX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9FUlJPUl9DT0xPUiIsIkZPUk1fV0FSTklOR19TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fRkVFREJBQ0tfQ09MT1IiLCJGT1JNX0NPTVBPTkVOVF9OQU1FUyIsIlNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNQSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFVO0FBQ3JELE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUMsVUFBVSxDQUFVO0FBQ2pELE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBVTtBQUN0RCxPQUFPLElBQU1DLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFVO0FBQ3ZGLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFVO0FBUWhFO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQTBDO0VBQ3JFQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxLQUFLLEVBQUU7QUNSVCxDRFNDO0FBQ0QsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsU0FBUztBQUMxRCxPQUFPLElBQU1DLGVBQWUsR0FBdUIsSUFBSTtBQUN2RCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixRQUFRO0FBQ3pELE9BQU8sSUFBTUMsaUJBQWlCLEdBQXVCLElBQUk7QUFDekQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBb0IsU0FBUztBQUM1RCxPQUFPLElBQU1DLHFCQUFxQixHQUF1QixJQUFJO0FBQzdELE9BQU8sSUFBTUMsc0JBQXNCLEdBQW9CLGtCQUFrQjtBQUN6RSxPQUFPLElBQU1DLGtCQUFrQixHQUF1QixJQUFJO0FBQzFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQW9CLGtCQUFrQjtBQUV0RSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLENBQ2xDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxDQUNGO0FBRVY7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURZQSxPQUFPLElBQU1DLDBCQUEwQixHQUFzQixDQUMzRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsWUFBWSxDQUNiO0FBRUQ7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBRGFBLE9BQU8sSUFBTUMseUJBQXlCLEdBQXNCLENBQzFELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsQ0FDZCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBGT1JNX1NJWkVTID0gWydsYXJnZScsICdzbWFsbCddO1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFZT1VUUyA9IFsndmVydGljYWwnXTtcbmV4cG9ydCBjb25zdCBMQUJFTF9BTElHTlMgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9TVEFUVVNFUyA9IFsnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9UUklHR0VSUyA9IFsnb25DaGFuZ2UnLCAnb25CbHVyJ107XG4vLyBMYWJlbCB0eXBvZ3JhcGh5IHBhaXJzIHdpdGggdGhlIGZpZWxkIGNvbnRyb2wncyB0ZXh0IHNpemUgZm9yIGVhY2ggZm9ybVxuLy8gc2l6ZTogbGFyZ2UgY29udHJvbCB0ZXh0IGlzIGJvZHkvbGcgKDE2cHgpIOKGkiBsYWJlbCBsZzsgc21hbGwgaXMgYm9keS9tZFxuLy8gKDE0cHgpIOKGkiBsYWJlbCBtZC5cbmV4cG9ydCBjb25zdCBGT1JNX0xBQkVMX1NJWkVTID0ge1xuICAgIGxhcmdlOiAnbGcnLFxuICAgIHNtYWxsOiAnbWQnLFxufTtcbmV4cG9ydCBjb25zdCBGT1JNX0xBQkVMX0NPTE9SID0gJ2RlZmF1bHQnO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9FUlJPUl9DT0xPUiA9ICdkYW5nZXInO1xuZXhwb3J0IGNvbnN0IEZPUk1fV0FSTklOR19TSVpFID0gJ3NtJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfQ09MT1IgPSAnd2FybmluZyc7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9TSVpFID0gJ21kJztcbmV4cG9ydCBjb25zdCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SID0gJ2RlZmF1bHQtdGVydGlhcnknO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9GRUVEQkFDS19DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dE51bWJlcicsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1NlbGVjdCcsXG4gICAgJ0Jhc2VTZWxlY3QnLFxuICAgICdEYXRlUGlja2VyJyxcbiAgICAnVGltZVBpY2tlcicsXG4gICAgJ0NhbGVuZGFyJyxcbiAgICAnQ2hlY2tib3gnLFxuICAgICdDaGVja2JveEdyb3VwJyxcbiAgICAnUmFkaW8nLFxuICAgICdSYWRpb0dyb3VwJyxcbiAgICAnU3dpdGNoJyxcbiAgICAnU2xpZGVyJyxcbiAgICAnVGV4dEFyZWEnLFxuXTtcbi8qKlxuICogRm9ybSBjb250cm9scyB0aGF0IGRlY2xhcmUgYSBgc2l6ZWAgcHJvcCBhY2NlcHRpbmcgYCdsYXJnZScgfCAnc21hbGwnYC5cbiAqIGBpbmplY3RGaWVsZGAgY2FzY2FkZXMgdGhlIGZvcm0tbGV2ZWwgYHNpemVgIGludG8gdGhlc2UgYXMgYSBERUZBVUxUIOKAlCBhblxuICogZXhwbGljaXQgZmllbGQtbGV2ZWwgYHNpemVgIChvd24gcHJvcCBvciB2aWEgYGZpZWxkUHJvcHNgKSB3aW5zLiBDb250cm9sc1xuICogd2l0aG91dCBhIHNpemUgcHJvcCAoQ2hlY2tib3gsIFN3aXRjaCwgU2xpZGVyLCDigKYpIG11c3Qgc3RheSBvZmYgdGhpcyBsaXN0OlxuICogYW4gdW5rbm93biBgc2l6ZWAgcHJvcCBjb3VsZCBsZWFrIG9udG8gdGhlIERPTSBlbGVtZW50LlxuICovXG5leHBvcnQgY29uc3QgU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXRQYXNzd29yZCcsXG4gICAgJ0lucHV0VGV4dEFyZWEnLFxuICAgICdJbnB1dFNlYXJjaCcsXG4gICAgJ0lucHV0T1RQJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG5dO1xuLyoqXG4gKiBUZXh0LWxpa2UgZm9ybSBjb250cm9scyB3aG9zZSBlbXB0eSB2YWx1ZSBtdXN0IGRlZmF1bHQgdG8gJycgKGEgY29udHJvbGxlZFxuICogc3RyaW5nIGlucHV0KSByYXRoZXIgdGhhbiB1bmRlZmluZWQuIFVzZWQgYnkgYGluamVjdEZpZWxkYCB0byBwaWNrIGEgc2FmZVxuICogZmFsbGJhY2sgdmFsdWUuXG4gKi9cbmV4cG9ydCBjb25zdCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1RleHRBcmVhJyxcbiAgICAnSW5wdXROdW1iZXInLFxuXTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyIsIlJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMiLCJGT1JNX0xBQkVMX1NJWkVTIiwibGFyZ2UiLCJzbWFsbCIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX1dBUk5JTkdfQ09MT1IiLCJGT1JNX0RFU0NSSVBUSU9OX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9GRUVEQkFDS19TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQU1BLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDckQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxVQUFVLENBQVU7QUFDakQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFVO0FBQ3RELE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQVU7QUFDdkYsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQVU7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHlCQUF5QixHQUFHLENBQ3ZDLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixDQUNYO0FBQ1YsT0FBTyxJQUFNQyw0QkFBNEIsR0FBRyxDQUMxQyxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGFBQWEsQ0FDTDtBQVFWO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQTBDO0VBQ3JFQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxLQUFLLEVBQUU7QUNUVCxDRFVDO0FBQ0QsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsU0FBUztBQUMxRCxPQUFPLElBQU1DLGVBQWUsR0FBdUIsSUFBSTtBQUN2RCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixRQUFRO0FBQ3pELE9BQU8sSUFBTUMsaUJBQWlCLEdBQXVCLElBQUk7QUFDekQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBb0IsU0FBUztBQUM1RCxPQUFPLElBQU1DLHFCQUFxQixHQUF1QixJQUFJO0FBQzdELE9BQU8sSUFBTUMsc0JBQXNCLEdBQW9CLGtCQUFrQjtBQUN6RSxPQUFPLElBQU1DLGtCQUFrQixHQUF1QixJQUFJO0FBQzFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQW9CLGtCQUFrQjtBQUV0RSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLENBQ2xDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxDQUNGO0FBRVY7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURhQSxPQUFPLElBQU1DLDBCQUEwQixHQUFzQixDQUMzRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsWUFBWSxDQUNiO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUMseUJBQXlCLEdBQXNCLENBQzFELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsQ0FDZCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBGT1JNX1NJWkVTID0gWydsYXJnZScsICdzbWFsbCddO1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFZT1VUUyA9IFsndmVydGljYWwnXTtcbmV4cG9ydCBjb25zdCBMQUJFTF9BTElHTlMgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9TVEFUVVNFUyA9IFsnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9UUklHR0VSUyA9IFsnb25DaGFuZ2UnLCAnb25CbHVyJ107XG4vLyBSdWxlQ29udGV4dCBpbnN0YW5jZSBtZW1iZXJzLCBzcGxpdCBieSBzYWZldHk6IFJFQUQgbWVtYmVycyBhcmUgYXZhaWxhYmxlXG4vLyBpbiBFVkVSWSBydWxlIHJlc29sdXRpb24gKGluY2x1ZGluZyByZW5kZXItcGhhc2UgcmVxdWlyZWQtbWFyayBjaGVja3MpO1xuLy8gTVVUQVRPUiBtZW1iZXJzIGFyZSBoYW5kZWQgb3V0IG9ubHkgZHVyaW5nIHZhbGlkYXRpb24tdGltZSByZXNvbHV0aW9ucy5cbi8vIHVzZUZvcm1JdGVtIChyZW5kZXJTYWZlSW5zdGFuY2UpIGFuZCB0aGUgY29udHJhY3QgdGVzdHMgZGVyaXZlIGZyb20gdGhlc2UuXG5leHBvcnQgY29uc3QgUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyA9IFtcbiAgICAnZ2V0RmllbGRFcnJvcicsXG4gICAgJ2dldEZpZWxkV2FybmluZycsXG4gICAgJ2lzRmllbGRUb3VjaGVkJyxcbiAgICAnaXNGaWVsZFZhbGlkYXRpbmcnLFxuXTtcbmV4cG9ydCBjb25zdCBSVUxFX0NPTlRFWFRfTVVUQVRPUl9NRU1CRVJTID0gW1xuICAgICdzZXRGaWVsZFZhbHVlJyxcbiAgICAnc2V0RmllbGRzVmFsdWUnLFxuICAgICdyZXNldEZpZWxkcycsXG5dO1xuLy8gTGFiZWwgdHlwb2dyYXBoeSBwYWlycyB3aXRoIHRoZSBmaWVsZCBjb250cm9sJ3MgdGV4dCBzaXplIGZvciBlYWNoIGZvcm1cbi8vIHNpemU6IGxhcmdlIGNvbnRyb2wgdGV4dCBpcyBib2R5L2xnICgxNnB4KSDihpIgbGFiZWwgbGc7IHNtYWxsIGlzIGJvZHkvbWRcbi8vICgxNHB4KSDihpIgbGFiZWwgbWQuXG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9TSVpFUyA9IHtcbiAgICBsYXJnZTogJ2xnJyxcbiAgICBzbWFsbDogJ21kJyxcbn07XG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9DT0xPUiA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBGT1JNX0VSUk9SX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfQ09MT1IgPSAnZGFuZ2VyJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9XQVJOSU5HX0NPTE9SID0gJ3dhcm5pbmcnO1xuZXhwb3J0IGNvbnN0IEZPUk1fREVTQ1JJUFRJT05fU0laRSA9ICdtZCc7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0ZFRURCQUNLX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfQ09MT1IgPSAnZGVmYXVsdC10ZXJ0aWFyeSc7XG5leHBvcnQgY29uc3QgRk9STV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXROdW1iZXInLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdCYXNlU2VsZWN0JyxcbiAgICAnRGF0ZVBpY2tlcicsXG4gICAgJ1RpbWVQaWNrZXInLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ0NoZWNrYm94JyxcbiAgICAnQ2hlY2tib3hHcm91cCcsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG4gICAgJ1N3aXRjaCcsXG4gICAgJ1NsaWRlcicsXG4gICAgJ1RleHRBcmVhJyxcbl07XG4vKipcbiAqIEZvcm0gY29udHJvbHMgdGhhdCBkZWNsYXJlIGEgYHNpemVgIHByb3AgYWNjZXB0aW5nIGAnbGFyZ2UnIHwgJ3NtYWxsJ2AuXG4gKiBgaW5qZWN0RmllbGRgIGNhc2NhZGVzIHRoZSBmb3JtLWxldmVsIGBzaXplYCBpbnRvIHRoZXNlIGFzIGEgREVGQVVMVCDigJQgYW5cbiAqIGV4cGxpY2l0IGZpZWxkLWxldmVsIGBzaXplYCAob3duIHByb3Agb3IgdmlhIGBmaWVsZFByb3BzYCkgd2lucy4gQ29udHJvbHNcbiAqIHdpdGhvdXQgYSBzaXplIHByb3AgKENoZWNrYm94LCBTd2l0Y2gsIFNsaWRlciwg4oCmKSBtdXN0IHN0YXkgb2ZmIHRoaXMgbGlzdDpcbiAqIGFuIHVua25vd24gYHNpemVgIHByb3AgY291bGQgbGVhayBvbnRvIHRoZSBET00gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0QW1vdW50JyxcbiAgICAnSW5wdXRNYXNrJyxcbiAgICAnU2VsZWN0JyxcbiAgICAnQ2FsZW5kYXInLFxuICAgICdSYWRpbycsXG4gICAgJ1JhZGlvR3JvdXAnLFxuXTtcbi8qKlxuICogVGV4dC1saWtlIGZvcm0gY29udHJvbHMgd2hvc2UgZW1wdHkgdmFsdWUgbXVzdCBkZWZhdWx0IHRvICcnIChhIGNvbnRyb2xsZWRcbiAqIHN0cmluZyBpbnB1dCkgcmF0aGVyIHRoYW4gdW5kZWZpbmVkLiBVc2VkIGJ5IGBpbmplY3RGaWVsZGAgdG8gcGljayBhIHNhZmVcbiAqIGZhbGxiYWNrIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdUZXh0QXJlYScsXG4gICAgJ0lucHV0TnVtYmVyJyxcbl07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,3 @@
1
+ /** Warn once per key per page load; no-op in production. */
2
+ export declare function devWarnOnce(key: string, message: string): void;
3
+ export default devWarnOnce;
@@ -0,0 +1,22 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Development-only warnings (silent in production builds).
3
+ //
4
+ // These exist to surface SILENT behavior divergences from the pre-0.0.76
5
+ // rule contract — misuses that TypeScript cannot (runtime values) or does
6
+ // not (trigger subset semantics) catch at compile time.
7
+ // ---------------------------------------------------------------------------
8
+ var warned = new Set();
9
+ function isProduction() {
10
+ var _a;
11
+ // eslint-disable-next-line no-undef
12
+ return typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'production';
13
+ }
14
+ /** Warn once per key per page load; no-op in production. */
15
+ export function devWarnOnce(key, message) {
16
+ if (isProduction()) return;
17
+ if (warned.has(key)) return;
18
+ warned.add(key);
19
+ console.warn(message);
20
+ }
21
+ export default devWarnOnce;
22
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZGV2V2FybmluZy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Rldldhcm5pbmcuanMiXSwibmFtZXMiOlsid2FybmVkIiwiU2V0IiwiaXNQcm9kdWN0aW9uIiwiX2EiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkZXZXYXJuT25jZSIsImtleSIsIm1lc3NhZ2UiLCJoYXMiLCJhZGQiLCJjb25zb2xlIiwid2FybiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxNQUFNLEdBQUcsSUFBSUMsR0FBRyxDQUFBLENBQVU7QUFFaEMsU0FBU0MsWUFBWUEsQ0FBQSxFQUFBO0VDRGpCLElBQUlDLEVBQUU7RURFUjtFQUNBLE9BQU8sT0FBT0MsT0FBTyxLQUFLLFdBQVcsSUFBSSxDQUFBLENBQUFELEVBQUEsR0FBQUMsT0FBTyxDQUFDQyxHQUFHLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUcsUUFBUSxNQUFLLFlBQVk7QUFDakY7QUFFQTtBQUNBLE9BQU0sU0FBVUMsV0FBV0EsQ0FBQ0MsR0FBVyxFQUFFQyxPQUFlLEVBQUE7RUFDdEQsSUFBSVAsWUFBWSxDQUFBLENBQUUsRUFBRTtFQUNwQixJQUFJRixNQUFNLENBQUNVLEdBQUcsQ0FBQ0YsR0FBRyxDQUFDLEVBQUU7RUFDckJSLE1BQU0sQ0FBQ1csR0FBRyxDQUFDSCxHQUFHLENBQUM7RUFDZkksT0FBTyxDQUFDQyxJQUFJLENBQUNKLE9BQU8sQ0FBQztBQUN2QjtBQUVBLGVBQWVGLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZGV2V2FybmluZy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZXZlbG9wbWVudC1vbmx5IHdhcm5pbmdzIChzaWxlbnQgaW4gcHJvZHVjdGlvbiBidWlsZHMpLlxuLy9cbi8vIFRoZXNlIGV4aXN0IHRvIHN1cmZhY2UgU0lMRU5UIGJlaGF2aW9yIGRpdmVyZ2VuY2VzIGZyb20gdGhlIHByZS0wLjAuNzZcbi8vIHJ1bGUgY29udHJhY3Qg4oCUIG1pc3VzZXMgdGhhdCBUeXBlU2NyaXB0IGNhbm5vdCAocnVudGltZSB2YWx1ZXMpIG9yIGRvZXNcbi8vIG5vdCAodHJpZ2dlciBzdWJzZXQgc2VtYW50aWNzKSBjYXRjaCBhdCBjb21waWxlIHRpbWUuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IHdhcm5lZCA9IG5ldyBTZXQoKTtcbmZ1bmN0aW9uIGlzUHJvZHVjdGlvbigpIHtcbiAgICB2YXIgX2E7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgcmV0dXJuIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAoKF9hID0gcHJvY2Vzcy5lbnYpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5OT0RFX0VOVikgPT09ICdwcm9kdWN0aW9uJztcbn1cbi8qKiBXYXJuIG9uY2UgcGVyIGtleSBwZXIgcGFnZSBsb2FkOyBuby1vcCBpbiBwcm9kdWN0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldldhcm5PbmNlKGtleSwgbWVzc2FnZSkge1xuICAgIGlmIChpc1Byb2R1Y3Rpb24oKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGlmICh3YXJuZWQuaGFzKGtleSkpXG4gICAgICAgIHJldHVybjtcbiAgICB3YXJuZWQuYWRkKGtleSk7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xufVxuZXhwb3J0IGRlZmF1bHQgZGV2V2Fybk9uY2U7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -1,7 +1,8 @@
1
+ import type { ReactNode } from 'react';
1
2
  export interface FormStoreState {
2
3
  values: Record<string, unknown>;
3
- errors: Record<string, string>;
4
- warnings: Record<string, string>;
4
+ errors: Record<string, ReactNode>;
5
+ warnings: Record<string, ReactNode>;
5
6
  touched: Record<string, boolean>;
6
7
  validating: Record<string, boolean>;
7
8
  }
@@ -22,3 +23,10 @@ export declare const shallowEqualObjects: (a: Record<string, unknown> | undefine
22
23
  * shallow-equal, so downstream memo/context deps don't churn per render.
23
24
  */
24
25
  export declare function useShallowStable<T extends object | undefined>(value: T): T;
26
+ /**
27
+ * Equality for error/warning content. Strings compare by value; elements get
28
+ * a one-level type/key/props compare so a re-created JSX message (fresh
29
+ * identity every resolution) does not churn the store when its content is
30
+ * unchanged. Deeply nested element children still count as changed.
31
+ */
32
+ export declare function sameValidationNode(a: ReactNode | undefined, b: ReactNode | undefined): boolean;
@@ -1,5 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import { useEffect, useReducer, useRef } from 'react';
2
+ import { isValidElement, useEffect, useReducer, useRef } from 'react';
3
3
  import useLatest from '@1money/hooks/useLatest';
4
4
  export var createFormStore = function createFormStore() {
5
5
  var initialValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -98,4 +98,23 @@ export function useShallowStable(value) {
98
98
  }
99
99
  return ref.current;
100
100
  }
101
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZHVjZXIiLCJ1c2VSZWYiLCJ1c2VMYXRlc3QiLCJjcmVhdGVGb3JtU3RvcmUiLCJpbml0aWFsVmFsdWVzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic3RhdGUiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInRvdWNoZWQiLCJ2YWxpZGF0aW5nIiwibGlzdGVuZXJzIiwiU2V0IiwiZ2V0U3RhdGUiLCJzZXRTdGF0ZSIsInBhdGNoIiwiT2JqZWN0IiwiYXNzaWduIiwiZm9yRWFjaCIsImxpc3RlbmVyIiwic3Vic2NyaWJlIiwiYWRkIiwidXNlU3RvcmVTZWxlY3RvciIsInN0b3JlIiwic2VsZWN0b3IiLCJpc0VxdWFsIiwiaXMiLCJfdXNlUmVkdWNlciIsImNvdW50IiwiX3VzZVJlZHVjZXIyIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JjZVJlbmRlciIsInNlbGVjdGVkIiwibGF0ZXN0UmVmIiwiY2hlY2tGb3JVcGRhdGVzIiwibGF0ZXN0IiwiY3VycmVudCIsIm5leHQiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJhIiwiYiIsImkiLCJzaGFsbG93RXF1YWxPYmplY3RzIiwiYUtleXMiLCJrZXlzIiwiYktleXMiLCJfaSIsIl9hS2V5cyIsImtleSIsInVzZVNoYWxsb3dTdGFibGUiLCJ2YWx1ZSIsInJlZiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUNyRCxPQUFPQyxTQUFTLE1BQU0seUJBQXlCO0FBOEIvQyxPQUFPLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUViO0VBQUEsSUFEYkMsYUFBQSxHQUFBQyxTQUFB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LElBQUk7QUFDYixDQUFDO0FBRUQ7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUQyQ0EsT0FBTSxTQUFVQyxnQkFBZ0JBLENBQStCQyxLQUFRLEVBQUE7RUFDckUsSUFBTUMsR0FBRyxHQUFHckQsTUFBTSxDQUFDb0QsS0FBSyxDQUFDO0VBQ3pCLElBQ0UsQ0FBQ1IsbUJBQW1CLENBQ2xCUyxHQUFHLENBQUNmLE9BQThDLEVBQ2xEYyxLQUE0QyxDQUM3QyxFQUNEO0lBQ0FDLEdBQUcsQ0FBQ2YsT0FBTyxHQUFHYyxLQUFLO0VBQ3JCO0VBQ0EsT0FBT0MsR0FBRyxDQUFDZixPQUFPO0FBQ3BCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Zvcm1TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmV4cG9ydCBjb25zdCBjcmVhdGVGb3JtU3RvcmUgPSAoaW5pdGlhbFZhbHVlcyA9IHt9KSA9PiB7XG4gICAgbGV0IHN0YXRlID0ge1xuICAgICAgICB2YWx1ZXM6IGluaXRpYWxWYWx1ZXMsXG4gICAgICAgIGVycm9yczoge30sXG4gICAgICAgIHdhcm5pbmdzOiB7fSxcbiAgICAgICAgdG91Y2hlZDoge30sXG4gICAgICAgIHZhbGlkYXRpbmc6IHt9LFxuICAgIH07XG4gICAgY29uc3QgbGlzdGVuZXJzID0gbmV3IFNldCgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldFN0YXRlOiAoKSA9PiBzdGF0ZSxcbiAgICAgICAgc2V0U3RhdGU6IChwYXRjaCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0YXRlKSwgcGF0Y2gpO1xuICAgICAgICAgICAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3Vic2NyaWJlOiAobGlzdGVuZXIpID0+IHtcbiAgICAgICAgICAgIGxpc3RlbmVycy5hZGQobGlzdGVuZXIpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHVzZVN0b3JlU2VsZWN0b3Ig4oCUIHN1YnNjcmliZSB0byBhIHNlbGVjdGVkIHNsaWNlIG9mIHRoZSBzdG9yZS5cbi8vXG4vLyBUaGUgY29tcG9uZW50IHJlLXJlbmRlcnMgT05MWSB3aGVuIGBpc0VxdWFsKHByZXZTZWxlY3RlZCwgbmV4dFNlbGVjdGVkKWAgaXNcbi8vIGZhbHNlLiBUaGUgc2VsZWN0b3IvZXF1YWxpdHkvc2VsZWN0ZWQgdHJpbyBpcyByZS1jYXB0dXJlZCBpbiBhIHJlZiBvbiBldmVyeVxuLy8gcmVuZGVyLCBzbyBpbmxpbmUgc2VsZWN0b3JzIChjbG9zaW5nIG92ZXIgdGhlIGxhdGVzdCBwcm9wcykgYXJlIHNhZmUuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCBzZWxlY3RvciwgaXNFcXVhbCA9IE9iamVjdC5pcykge1xuICAgIGNvbnN0IFssIGZvcmNlUmVuZGVyXSA9IHVzZVJlZHVjZXIoKGNvdW50KSA9PiBjb3VudCArIDEsIDApO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgY29uc3QgbGF0ZXN0UmVmID0gdXNlTGF0ZXN0KHsgc2VsZWN0b3IsIGlzRXF1YWwsIHNlbGVjdGVkIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoZWNrRm9yVXBkYXRlcyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhdGVzdCA9IGxhdGVzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGxhdGVzdC5zZWxlY3RvcihzdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgICAgICAgIGlmICghbGF0ZXN0LmlzRXF1YWwobGF0ZXN0LnNlbGVjdGVkLCBuZXh0KSkge1xuICAgICAgICAgICAgICAgIGZvcmNlUmVuZGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIENhdGNoIGNvbW1pdHMgdGhhdCBsYW5kZWQgYmV0d2VlbiByZW5kZXIgYW5kIHN1YnNjcmlwdGlvbi5cbiAgICAgICAgY2hlY2tGb3JVcGRhdGVzKCk7XG4gICAgICAgIHJldHVybiBzdG9yZS5zdWJzY3JpYmUoY2hlY2tGb3JVcGRhdGVzKTtcbiAgICB9LCBbc3RvcmVdKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVxdWFsaXR5IGhlbHBlcnMgZm9yIG11bHRpLXZhbHVlIHNlbGVjdG9ycyAvIHByb3BzIHN0YWJpbGl6YXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IHNoYWxsb3dFcXVhbEFycmF5cyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPT09IGIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFPYmplY3QuaXMoYVtpXSwgYltpXSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbmV4cG9ydCBjb25zdCBzaGFsbG93RXF1YWxPYmplY3RzID0gKGEsIGIpID0+IHtcbiAgICBpZiAoYSA9PT0gYilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFhIHx8ICFiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgYUtleXMgPSBPYmplY3Qua2V5cyhhKTtcbiAgICBjb25zdCBiS2V5cyA9IE9iamVjdC5rZXlzKGIpO1xuICAgIGlmIChhS2V5cy5sZW5ndGggIT09IGJLZXlzLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGFLZXlzKSB7XG4gICAgICAgIGlmICghT2JqZWN0LmlzKGFba2V5XSwgYltrZXldKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuLyoqXG4gKiBSZXR1cm4gYSByZWZlcmVudGlhbGx5LXN0YWJsZSB2ZXJzaW9uIG9mIGFuIChvZnRlbiBpbmxpbmUtbGl0ZXJhbCkgcHJvcHNcbiAqIG9iamVjdDogdGhlIHByZXZpb3VzIHJlZmVyZW5jZSBpcyBrZXB0IHdoaWxlIHRoZSBjb250ZW50IHN0YXlzXG4gKiBzaGFsbG93LWVxdWFsLCBzbyBkb3duc3RyZWFtIG1lbW8vY29udGV4dCBkZXBzIGRvbid0IGNodXJuIHBlciByZW5kZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTaGFsbG93U3RhYmxlKHZhbHVlKSB7XG4gICAgY29uc3QgcmVmID0gdXNlUmVmKHZhbHVlKTtcbiAgICBpZiAoIXNoYWxsb3dFcXVhbE9iamVjdHMocmVmLmN1cnJlbnQsIHZhbHVlKSkge1xuICAgICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQ7XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
101
+ /**
102
+ * Equality for error/warning content. Strings compare by value; elements get
103
+ * a one-level type/key/props compare so a re-created JSX message (fresh
104
+ * identity every resolution) does not churn the store when its content is
105
+ * unchanged. Deeply nested element children still count as changed.
106
+ */
107
+ export function sameValidationNode(a, b) {
108
+ if (Object.is(a, b)) return true;
109
+ if (! /*#__PURE__*/isValidElement(a) || ! /*#__PURE__*/isValidElement(b)) return false;
110
+ if (a.type !== b.type || a.key !== b.key) return false;
111
+ var aProps = a.props;
112
+ var bProps = b.props;
113
+ var aKeys = Object.keys(aProps);
114
+ var bKeys = Object.keys(bProps);
115
+ if (aKeys.length !== bKeys.length) return false;
116
+ return aKeys.every(function (key) {
117
+ return Object.is(aProps[key], bProps[key]);
118
+ });
119
+ }
120
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLmpzIl0sIm5hbWVzIjpbImlzVmFsaWRFbGVtZW50IiwidXNlRWZmZWN0IiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZUxhdGVzdCIsImNyZWF0ZUZvcm1TdG9yZSIsImluaXRpYWxWYWx1ZXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzdGF0ZSIsInZhbHVlcyIsImVycm9ycyIsIndhcm5pbmdzIiwidG91Y2hlZCIsInZhbGlkYXRpbmciLCJsaXN0ZW5lcnMiLCJTZXQiLCJnZXRTdGF0ZSIsInNldFN0YXRlIiwicGF0Y2giLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic3RvcmUiLCJzZWxlY3RvciIsImlzRXF1YWwiLCJpcyIsIl91c2VSZWR1Y2VyIiwiY291bnQiLCJfdXNlUmVkdWNlcjIiLCJfc2xpY2VkVG9BcnJheSIsImZvcmNlUmVuZGVyIiwic2VsZWN0ZWQiLCJsYXRlc3RSZWYiLCJjaGVja0ZvclVwZGF0ZXMiLCJsYXRlc3QiLCJjdXJyZW50IiwibmV4dCIsInNoYWxsb3dFcXVhbEFycmF5cyIsImEiLCJiIiwiaSIsInNoYWxsb3dFcXVhbE9iamVjdHMiLCJhS2V5cyIsImtleXMiLCJiS2V5cyIsIl9pIiwiX2FLZXlzIiwia2V5IiwidXNlU2hhbGxvd1N0YWJsZSIsInZhbHVlIiwicmVmIiwic2FtZVZhbGlkYXRpb25Ob2RlIiwidHlwZSIsImFQcm9wcyIsInByb3BzIiwiYlByb3BzIiwiZXZlcnkiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxjQUFjLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUVyRSxPQUFPQyxTQUFT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QUFDWSxNQUFNLENBQUM7RUFDakMsSUFBSWIsS0FBSyxDQUFDeEMsTUFBTSxLQUFLMEMsS0FBSyxDQUFDMUMsTUFBTSxFQUFFLE9BQU8sS0FBSztFQUMvQyxPQUFPd0MsS0FBSyxDQUFDYyxLQUFLLENBQUMsVUFBQ1QsR0FBRztJQUFBLE9BQUtoQyxNQUFNLENBQUNVLEVBQUUsQ0FBQzRCLE1BQU0sQ0FBQ04sR0FBRyxDQUFDLEVBQUVRLE1BQU0sQ0FBQ1IsR0FBRyxDQUFDLENBQUM7RUFBQSxFQUFDO0FBQ2xFIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Zvcm1TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVkdWNlciwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5leHBvcnQgY29uc3QgY3JlYXRlRm9ybVN0b3JlID0gKGluaXRpYWxWYWx1ZXMgPSB7fSkgPT4ge1xuICAgIGxldCBzdGF0ZSA9IHtcbiAgICAgICAgdmFsdWVzOiBpbml0aWFsVmFsdWVzLFxuICAgICAgICBlcnJvcnM6IHt9LFxuICAgICAgICB3YXJuaW5nczoge30sXG4gICAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgICB2YWxpZGF0aW5nOiB7fSxcbiAgICB9O1xuICAgIGNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXRTdGF0ZTogKCkgPT4gc3RhdGUsXG4gICAgICAgIHNldFN0YXRlOiAocGF0Y2gpID0+IHtcbiAgICAgICAgICAgIHN0YXRlID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSksIHBhdGNoKTtcbiAgICAgICAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIoKSk7XG4gICAgICAgIH0sXG4gICAgICAgIHN1YnNjcmliZTogKGxpc3RlbmVyKSA9PiB7XG4gICAgICAgICAgICBsaXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH07XG59O1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB1c2VTdG9yZVNlbGVjdG9yIOKAlCBzdWJzY3JpYmUgdG8gYSBzZWxlY3RlZCBzbGljZSBvZiB0aGUgc3RvcmUuXG4vL1xuLy8gVGhlIGNvbXBvbmVudCByZS1yZW5kZXJzIE9OTFkgd2hlbiBgaXNFcXVhbChwcmV2U2VsZWN0ZWQsIG5leHRTZWxlY3RlZClgIGlzXG4vLyBmYWxzZS4gVGhlIHNlbGVjdG9yL2VxdWFsaXR5L3NlbGVjdGVkIHRyaW8gaXMgcmUtY2FwdHVyZWQgaW4gYSByZWYgb24gZXZlcnlcbi8vIHJlbmRlciwgc28gaW5saW5lIHNlbGVjdG9ycyAoY2xvc2luZyBvdmVyIHRoZSBsYXRlc3QgcHJvcHMpIGFyZSBzYWZlLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgc2VsZWN0b3IsIGlzRXF1YWwgPSBPYmplY3QuaXMpIHtcbiAgICBjb25zdCBbLCBmb3JjZVJlbmRlcl0gPSB1c2VSZWR1Y2VyKChjb3VudCkgPT4gY291bnQgKyAxLCAwKTtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdG9yKHN0b3JlLmdldFN0YXRlKCkpO1xuICAgIGNvbnN0IGxhdGVzdFJlZiA9IHVzZUxhdGVzdCh7IHNlbGVjdG9yLCBpc0VxdWFsLCBzZWxlY3RlZCB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBjaGVja0ZvclVwZGF0ZXMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXRlc3QgPSBsYXRlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBsYXRlc3Quc2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICAgICAgICBpZiAoIWxhdGVzdC5pc0VxdWFsKGxhdGVzdC5zZWxlY3RlZCwgbmV4dCkpIHtcbiAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBDYXRjaCBjb21taXRzIHRoYXQgbGFuZGVkIGJldHdlZW4gcmVuZGVyIGFuZCBzdWJzY3JpcHRpb24uXG4gICAgICAgIGNoZWNrRm9yVXBkYXRlcygpO1xuICAgICAgICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKGNoZWNrRm9yVXBkYXRlcyk7XG4gICAgfSwgW3N0b3JlXSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFcXVhbGl0eSBoZWxwZXJzIGZvciBtdWx0aS12YWx1ZSBzZWxlY3RvcnMgLyBwcm9wcyBzdGFiaWxpemF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBzaGFsbG93RXF1YWxBcnJheXMgPSAoYSwgYikgPT4ge1xuICAgIGlmIChhID09PSBiKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghT2JqZWN0LmlzKGFbaV0sIGJbaV0pKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5leHBvcnQgY29uc3Qgc2hhbGxvd0VxdWFsT2JqZWN0cyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPT09IGIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmICghYSB8fCAhYilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgY29uc3QgYktleXMgPSBPYmplY3Qua2V5cyhiKTtcbiAgICBpZiAoYUtleXMubGVuZ3RoICE9PSBiS2V5cy5sZW5ndGgpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhS2V5cykge1xuICAgICAgICBpZiAoIU9iamVjdC5pcyhhW2tleV0sIGJba2V5XSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbi8qKlxuICogUmV0dXJuIGEgcmVmZXJlbnRpYWxseS1zdGFibGUgdmVyc2lvbiBvZiBhbiAob2Z0ZW4gaW5saW5lLWxpdGVyYWwpIHByb3BzXG4gKiBvYmplY3Q6IHRoZSBwcmV2aW91cyByZWZlcmVuY2UgaXMga2VwdCB3aGlsZSB0aGUgY29udGVudCBzdGF5c1xuICogc2hhbGxvdy1lcXVhbCwgc28gZG93bnN0cmVhbSBtZW1vL2NvbnRleHQgZGVwcyBkb24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2hhbGxvd1N0YWJsZSh2YWx1ZSkge1xuICAgIGNvbnN0IHJlZiA9IHVzZVJlZih2YWx1ZSk7XG4gICAgaWYgKCFzaGFsbG93RXF1YWxPYmplY3RzKHJlZi5jdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZi5jdXJyZW50O1xufVxuLyoqXG4gKiBFcXVhbGl0eSBmb3IgZXJyb3Ivd2FybmluZyBjb250ZW50LiBTdHJpbmdzIGNvbXBhcmUgYnkgdmFsdWU7IGVsZW1lbnRzIGdldFxuICogYSBvbmUtbGV2ZWwgdHlwZS9rZXkvcHJvcHMgY29tcGFyZSBzbyBhIHJlLWNyZWF0ZWQgSlNYIG1lc3NhZ2UgKGZyZXNoXG4gKiBpZGVudGl0eSBldmVyeSByZXNvbHV0aW9uKSBkb2VzIG5vdCBjaHVybiB0aGUgc3RvcmUgd2hlbiBpdHMgY29udGVudCBpc1xuICogdW5jaGFuZ2VkLiBEZWVwbHkgbmVzdGVkIGVsZW1lbnQgY2hpbGRyZW4gc3RpbGwgY291bnQgYXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbWVWYWxpZGF0aW9uTm9kZShhLCBiKSB7XG4gICAgaWYgKE9iamVjdC5pcyhhLCBiKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFpc1ZhbGlkRWxlbWVudChhKSB8fCAhaXNWYWxpZEVsZW1lbnQoYikpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYS50eXBlICE9PSBiLnR5cGUgfHwgYS5rZXkgIT09IGIua2V5KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgYVByb3BzID0gYS5wcm9wcztcbiAgICBjb25zdCBiUHJvcHMgPSBiLnByb3BzO1xuICAgIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYVByb3BzKTtcbiAgICBjb25zdCBiS2V5cyA9IE9iamVjdC5rZXlzKGJQcm9wcyk7XG4gICAgaWYgKGFLZXlzLmxlbmd0aCAhPT0gYktleXMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFLZXlzLmV2ZXJ5KChrZXkpID0+IE9iamVjdC5pcyhhUHJvcHNba2V5XSwgYlByb3BzW2tleV0pKTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9