@oneblink/apps-react 6.11.0-beta.4 → 6.11.0-beta.5

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.
@@ -1,9 +1,6 @@
1
+ import * as EmailValidator from 'email-validator';
1
2
  const EMPTY_STRING_REGEXP = /^\s*$/;
2
- // eslint-disable-next-line no-useless-escape
3
- const FORMAT_REGEXP = /(%?)%\{([^\}]+)\}/g;
4
- const EMAIL_REGEXP =
5
- // eslint-disable-next-line no-control-regex
6
- /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i;
3
+ const FORMAT_REGEXP = /(%?)%\{([^}]+)\}/g;
7
4
  /**
8
5
  * Checks if the value is a number. This function does not consider NaN a number
9
6
  * like many other `isNumber` functions do.
@@ -320,7 +317,7 @@ export const validators = {
320
317
  if (!isString(value)) {
321
318
  return [message];
322
319
  }
323
- if (!EMAIL_REGEXP.exec(value)) {
320
+ if (!EmailValidator.validate(value)) {
324
321
  return [message];
325
322
  }
326
323
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"validate-dot-js.js","sourceRoot":"","sources":["../../../src/services/form-validation/validate-dot-js.ts"],"names":[],"mappings":"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","sourcesContent":["const EMPTY_STRING_REGEXP = /^\\s*$/\n// eslint-disable-next-line no-useless-escape\nconst FORMAT_REGEXP = /(%?)%\\{([^\\}]+)\\}/g\nconst EMAIL_REGEXP =\n // eslint-disable-next-line no-control-regex\n /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i\n\n/**\n * Checks if the value is a number. This function does not consider NaN a number\n * like many other `isNumber` functions do.\n *\n * @param value\n * @returns\n */\nfunction isNumber(value: unknown): value is number {\n return typeof value === 'number' && !isNaN(value)\n}\n\n/**\n * Returns false if the object is not a function\n *\n * @param value\n * @returns\n */\nfunction isFunction(value: unknown) {\n return typeof value === 'function'\n}\n\n/**\n * A simple check to verify that the value is an integer. Uses `isNumber` and a\n * simple modulo check.\n *\n * @param value\n * @returns\n */\nfunction isInteger(value: unknown): value is number {\n return isNumber(value) && value % 1 === 0\n}\n\n/**\n * Uses the `Object` function to check if the given argument is an object.\n *\n * @param obj\n * @returns\n */\nfunction isObject(obj: unknown): obj is object {\n return obj === Object(obj)\n}\n\n/**\n * Simply checks if the object is an instance of a date\n *\n * @param obj\n * @returns\n */\nfunction isDate(obj: unknown): obj is Date {\n return obj instanceof Date\n}\n\n/**\n * Returns false if the object is `null` of `undefined`\n *\n * @param obj\n * @returns\n */\nfunction isDefined(obj: unknown) {\n return obj !== null && obj !== undefined\n}\n\nexport function isEmpty(value: unknown) {\n // Null and undefined are empty\n if (!isDefined(value)) {\n return true\n }\n\n // functions are non empty\n if (isFunction(value)) {\n return false\n }\n\n // Whitespace only strings are empty\n if (isString(value)) {\n return EMPTY_STRING_REGEXP.test(value)\n }\n\n // For arrays we use the length property\n if (isArray(value)) {\n return value.length === 0\n }\n\n // Dates have no attributes but aren't empty\n if (isDate(value)) {\n return false\n }\n\n // If we find at least one property we consider it non empty\n if (isObject(value)) {\n for (const _attr in value) {\n return false\n }\n return true\n }\n\n return false\n}\n\n/**\n * Formats the specified strings with the given values like so:\n *\n * format('Foo: %{foo}', { foo: 'bar' }) // \"Foo bar\"\n *\n * If you want to write %{...} without having it replaced simply prefix it with\n * % like this `Foo: %%{foo}` and it will be returned as `\"Foo: %{foo}\"`\n *\n * @param str\n * @param vals\n * @returns\n */\nfunction formatValidationMessage(\n str: string,\n vals: Record<string, unknown>,\n): string {\n if (!isString(str)) {\n return str\n }\n return str.replace(FORMAT_REGEXP, function (m0, m1, m2) {\n if (m1 === '%') {\n return '%{' + m2 + '}'\n } else {\n return String(vals[m2])\n }\n })\n}\n\nfunction isString(value: unknown) {\n return typeof value === 'string'\n}\n\nfunction isArray(value: unknown) {\n return Array.isArray(value)\n}\n\nexport const validators = {\n /**\n * Presence validates that the value isn't empty\n *\n * @param value\n * @param options\n * @returns\n */\n presence(\n value: unknown,\n options?: { allowEmpty?: boolean; message?: string },\n ): string[] {\n if (options?.allowEmpty !== false ? !isDefined(value) : isEmpty(value)) {\n return [options?.message || \"can't be blank\"]\n }\n\n return []\n },\n\n length(\n value: unknown,\n options?: {\n message?: string\n is?: number\n minimum?: number\n maximum?: number\n tooShort?: string\n tooLong?: string\n wrongLength?: string\n },\n ): string[] {\n // Empty values are allowed\n if (!isDefined(value)) {\n return []\n }\n\n const length = (value as { length?: unknown } | string | Array<unknown>)\n ?.length\n const { message, is, minimum, maximum, tooShort, tooLong, wrongLength } =\n options || {}\n\n if (!isNumber(length)) {\n return [message || 'has an incorrect length']\n }\n\n const errors: string[] = []\n // Is checks\n if (isNumber(is) && length !== is) {\n const err =\n wrongLength || 'is the wrong length (should be %{count} characters)'\n errors.push(formatValidationMessage(err, { count: is }))\n }\n\n if (isNumber(minimum) && length < minimum) {\n const err = tooShort || 'is too short (minimum is %{count} characters)'\n errors.push(formatValidationMessage(err, { count: minimum }))\n }\n\n if (isNumber(maximum) && length > maximum) {\n const err = tooLong || 'is too long (maximum is %{count} characters)'\n errors.push(formatValidationMessage(err, { count: maximum }))\n }\n\n if (errors.length > 0) {\n return message ? [message] : errors\n }\n\n return []\n },\n numericality(\n value: unknown,\n options?: {\n message?: string\n notValid?: string\n onlyInteger?: boolean\n notInteger?: string\n greaterThan?: number\n notGreaterThan?: string\n greaterThanOrEqualTo?: number\n notGreaterThanOrEqualTo?: string\n lessThanOrEqualTo?: number\n notLessThanOrEqualTo?: string\n equalTo?: number\n notEqualTo?: string\n lessThan?: number\n notLessThan?: string\n divisibleBy?: number\n notDivisibleBy?: string\n odd?: boolean\n notOdd?: string\n even?: boolean\n notEven?: string\n },\n ): string[] {\n // Empty values are fine\n if (!isDefined(value)) {\n return []\n }\n\n // If it's not a number we shouldn't continue since it will compare it.\n if (!isNumber(value)) {\n return [options?.message || options?.notValid || 'is not a number']\n }\n\n // Same logic as above, sort of. Don't bother with comparisons if this\n // doesn't pass.\n if (options?.onlyInteger && !isInteger(value)) {\n return [options?.message || options?.notInteger || 'must be an integer']\n }\n\n const checks = [\n {\n name: 'greater than',\n message: options?.notGreaterThan,\n predicateValue: options?.greaterThan,\n predicate(predicateValue: number) {\n return value > predicateValue\n },\n },\n {\n name: 'greater than or equal to',\n message: options?.notGreaterThanOrEqualTo,\n predicateValue: options?.greaterThanOrEqualTo,\n predicate(predicateValue: number) {\n return value >= predicateValue\n },\n },\n {\n name: 'equal to',\n message: options?.notEqualTo,\n predicateValue: options?.equalTo,\n predicate(predicateValue: number) {\n return value === predicateValue\n },\n },\n {\n name: 'less than',\n message: options?.notLessThan,\n predicateValue: options?.lessThan,\n predicate(predicateValue: number) {\n return value < predicateValue\n },\n },\n {\n name: 'less than or equal to',\n message: options?.notLessThanOrEqualTo,\n predicateValue: options?.lessThanOrEqualTo,\n predicate(predicateValue: number) {\n return value <= predicateValue\n },\n },\n {\n name: 'divisible by',\n message: options?.notDivisibleBy,\n predicateValue: options?.divisibleBy,\n predicate(predicateValue: number) {\n return value % predicateValue === 0\n },\n },\n ]\n\n const errors: string[] = []\n\n for (const check of checks) {\n if (\n isNumber(check.predicateValue) &&\n !check.predicate(check.predicateValue)\n ) {\n // This picks the default message if specified\n // For example the greaterThan check uses the message from\n // this.notGreaterThan so we capitalize the name and prepend \"not\"\n const msg = check.message || 'must be %{type} %{count}'\n\n errors.push(\n formatValidationMessage(msg, {\n count: check.predicateValue,\n type: check.name,\n }),\n )\n }\n }\n\n if (options?.odd && value % 2 !== 1) {\n errors.push(options.notOdd || 'must be odd')\n }\n if (options?.even && value % 2 !== 0) {\n errors.push(options.notEven || 'must be even')\n }\n\n if (errors.length) {\n return options?.message ? [options.message] : errors\n }\n\n return []\n },\n\n datetime(\n value: unknown,\n {\n format,\n ...options\n }: {\n format: (date: Date) => string\n earliest?: string\n latest?: string\n tooEarly?: string\n tooLate?: string\n dateOnly?: boolean\n notValid?: string\n message?: string\n },\n ): string[] {\n // Empty values are fine\n if (!isDefined(value)) {\n return []\n }\n\n let num = value\n if (isString(value)) {\n num = Date.parse(value)\n }\n\n // 86400000 is the number of milliseconds in a day, this is used to remove\n // the time from the date\n if (\n !isNumber(num) ||\n isNaN(num) ||\n (options.dateOnly && num % 86400000 !== 0)\n ) {\n const err = options.notValid || options.message || 'must be a valid date'\n return [formatValidationMessage(err, { value })]\n }\n\n const errors = []\n\n const earliest = options.earliest ? Date.parse(options.earliest) : NaN\n if (!isNaN(earliest) && num < earliest) {\n const err =\n options.tooEarly || options.message || 'must be no earlier than %{date}'\n errors.push(\n formatValidationMessage(err, {\n value: format(new Date(num)),\n date: format(new Date(earliest)),\n }),\n )\n }\n\n const latest = options.latest ? Date.parse(options.latest) : NaN\n if (!isNaN(latest) && num > latest) {\n const err =\n options.tooLate || options.message || 'must be no later than %{date}'\n errors.push(\n formatValidationMessage(err, {\n date: format(new Date(latest)),\n value: format(new Date(num)),\n }),\n )\n }\n\n return errors\n },\n\n regexValidation(\n value: unknown,\n options:\n | {\n pattern: RegExp | string\n message?: string\n flags?: string\n }\n | RegExp\n | string,\n ): string[] {\n if (isString(options) || options instanceof RegExp) {\n options = { pattern: options }\n }\n\n const message = options.message || 'is invalid'\n\n // Empty values are allowed\n if (!isDefined(value)) {\n return []\n }\n if (!isString(value)) {\n return [message]\n }\n\n let pattern = options.pattern\n if (isString(pattern)) {\n pattern = new RegExp(options.pattern, options.flags)\n }\n const match = pattern.exec(value)\n if (!match || match[0].length != value.length) {\n return [message]\n }\n\n return []\n },\n\n email(value: unknown, options?: { message?: string }): string[] {\n // Empty values are fine\n if (!isDefined(value)) {\n return []\n }\n\n const message = options?.message || 'is not a valid email'\n if (!isString(value)) {\n return [message]\n }\n if (!EMAIL_REGEXP.exec(value)) {\n return [message]\n }\n\n return []\n },\n}\n"]}
1
+ {"version":3,"file":"validate-dot-js.js","sourceRoot":"","sources":["../../../src/services/form-validation/validate-dot-js.ts"],"names":[],"mappings":"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","sourcesContent":["import * as EmailValidator from 'email-validator'\n\nconst EMPTY_STRING_REGEXP = /^\\s*$/\nconst FORMAT_REGEXP = /(%?)%\\{([^}]+)\\}/g\n\n/**\n * Checks if the value is a number. This function does not consider NaN a number\n * like many other `isNumber` functions do.\n *\n * @param value\n * @returns\n */\nfunction isNumber(value: unknown): value is number {\n return typeof value === 'number' && !isNaN(value)\n}\n\n/**\n * Returns false if the object is not a function\n *\n * @param value\n * @returns\n */\nfunction isFunction(value: unknown) {\n return typeof value === 'function'\n}\n\n/**\n * A simple check to verify that the value is an integer. Uses `isNumber` and a\n * simple modulo check.\n *\n * @param value\n * @returns\n */\nfunction isInteger(value: unknown): value is number {\n return isNumber(value) && value % 1 === 0\n}\n\n/**\n * Uses the `Object` function to check if the given argument is an object.\n *\n * @param obj\n * @returns\n */\nfunction isObject(obj: unknown): obj is object {\n return obj === Object(obj)\n}\n\n/**\n * Simply checks if the object is an instance of a date\n *\n * @param obj\n * @returns\n */\nfunction isDate(obj: unknown): obj is Date {\n return obj instanceof Date\n}\n\n/**\n * Returns false if the object is `null` of `undefined`\n *\n * @param obj\n * @returns\n */\nfunction isDefined(obj: unknown) {\n return obj !== null && obj !== undefined\n}\n\nexport function isEmpty(value: unknown) {\n // Null and undefined are empty\n if (!isDefined(value)) {\n return true\n }\n\n // functions are non empty\n if (isFunction(value)) {\n return false\n }\n\n // Whitespace only strings are empty\n if (isString(value)) {\n return EMPTY_STRING_REGEXP.test(value)\n }\n\n // For arrays we use the length property\n if (isArray(value)) {\n return value.length === 0\n }\n\n // Dates have no attributes but aren't empty\n if (isDate(value)) {\n return false\n }\n\n // If we find at least one property we consider it non empty\n if (isObject(value)) {\n for (const _attr in value) {\n return false\n }\n return true\n }\n\n return false\n}\n\n/**\n * Formats the specified strings with the given values like so:\n *\n * format('Foo: %{foo}', { foo: 'bar' }) // \"Foo bar\"\n *\n * If you want to write %{...} without having it replaced simply prefix it with\n * % like this `Foo: %%{foo}` and it will be returned as `\"Foo: %{foo}\"`\n *\n * @param str\n * @param vals\n * @returns\n */\nfunction formatValidationMessage(\n str: string,\n vals: Record<string, unknown>,\n): string {\n if (!isString(str)) {\n return str\n }\n return str.replace(FORMAT_REGEXP, function (m0, m1, m2) {\n if (m1 === '%') {\n return '%{' + m2 + '}'\n } else {\n return String(vals[m2])\n }\n })\n}\n\nfunction isString(value: unknown) {\n return typeof value === 'string'\n}\n\nfunction isArray(value: unknown) {\n return Array.isArray(value)\n}\n\nexport const validators = {\n /**\n * Presence validates that the value isn't empty\n *\n * @param value\n * @param options\n * @returns\n */\n presence(\n value: unknown,\n options?: { allowEmpty?: boolean; message?: string },\n ): string[] {\n if (options?.allowEmpty !== false ? !isDefined(value) : isEmpty(value)) {\n return [options?.message || \"can't be blank\"]\n }\n\n return []\n },\n\n length(\n value: unknown,\n options?: {\n message?: string\n is?: number\n minimum?: number\n maximum?: number\n tooShort?: string\n tooLong?: string\n wrongLength?: string\n },\n ): string[] {\n // Empty values are allowed\n if (!isDefined(value)) {\n return []\n }\n\n const length = (value as { length?: unknown } | string | Array<unknown>)\n ?.length\n const { message, is, minimum, maximum, tooShort, tooLong, wrongLength } =\n options || {}\n\n if (!isNumber(length)) {\n return [message || 'has an incorrect length']\n }\n\n const errors: string[] = []\n // Is checks\n if (isNumber(is) && length !== is) {\n const err =\n wrongLength || 'is the wrong length (should be %{count} characters)'\n errors.push(formatValidationMessage(err, { count: is }))\n }\n\n if (isNumber(minimum) && length < minimum) {\n const err = tooShort || 'is too short (minimum is %{count} characters)'\n errors.push(formatValidationMessage(err, { count: minimum }))\n }\n\n if (isNumber(maximum) && length > maximum) {\n const err = tooLong || 'is too long (maximum is %{count} characters)'\n errors.push(formatValidationMessage(err, { count: maximum }))\n }\n\n if (errors.length > 0) {\n return message ? [message] : errors\n }\n\n return []\n },\n numericality(\n value: unknown,\n options?: {\n message?: string\n notValid?: string\n onlyInteger?: boolean\n notInteger?: string\n greaterThan?: number\n notGreaterThan?: string\n greaterThanOrEqualTo?: number\n notGreaterThanOrEqualTo?: string\n lessThanOrEqualTo?: number\n notLessThanOrEqualTo?: string\n equalTo?: number\n notEqualTo?: string\n lessThan?: number\n notLessThan?: string\n divisibleBy?: number\n notDivisibleBy?: string\n odd?: boolean\n notOdd?: string\n even?: boolean\n notEven?: string\n },\n ): string[] {\n // Empty values are fine\n if (!isDefined(value)) {\n return []\n }\n\n // If it's not a number we shouldn't continue since it will compare it.\n if (!isNumber(value)) {\n return [options?.message || options?.notValid || 'is not a number']\n }\n\n // Same logic as above, sort of. Don't bother with comparisons if this\n // doesn't pass.\n if (options?.onlyInteger && !isInteger(value)) {\n return [options?.message || options?.notInteger || 'must be an integer']\n }\n\n const checks = [\n {\n name: 'greater than',\n message: options?.notGreaterThan,\n predicateValue: options?.greaterThan,\n predicate(predicateValue: number) {\n return value > predicateValue\n },\n },\n {\n name: 'greater than or equal to',\n message: options?.notGreaterThanOrEqualTo,\n predicateValue: options?.greaterThanOrEqualTo,\n predicate(predicateValue: number) {\n return value >= predicateValue\n },\n },\n {\n name: 'equal to',\n message: options?.notEqualTo,\n predicateValue: options?.equalTo,\n predicate(predicateValue: number) {\n return value === predicateValue\n },\n },\n {\n name: 'less than',\n message: options?.notLessThan,\n predicateValue: options?.lessThan,\n predicate(predicateValue: number) {\n return value < predicateValue\n },\n },\n {\n name: 'less than or equal to',\n message: options?.notLessThanOrEqualTo,\n predicateValue: options?.lessThanOrEqualTo,\n predicate(predicateValue: number) {\n return value <= predicateValue\n },\n },\n {\n name: 'divisible by',\n message: options?.notDivisibleBy,\n predicateValue: options?.divisibleBy,\n predicate(predicateValue: number) {\n return value % predicateValue === 0\n },\n },\n ]\n\n const errors: string[] = []\n\n for (const check of checks) {\n if (\n isNumber(check.predicateValue) &&\n !check.predicate(check.predicateValue)\n ) {\n // This picks the default message if specified\n // For example the greaterThan check uses the message from\n // this.notGreaterThan so we capitalize the name and prepend \"not\"\n const msg = check.message || 'must be %{type} %{count}'\n\n errors.push(\n formatValidationMessage(msg, {\n count: check.predicateValue,\n type: check.name,\n }),\n )\n }\n }\n\n if (options?.odd && value % 2 !== 1) {\n errors.push(options.notOdd || 'must be odd')\n }\n if (options?.even && value % 2 !== 0) {\n errors.push(options.notEven || 'must be even')\n }\n\n if (errors.length) {\n return options?.message ? [options.message] : errors\n }\n\n return []\n },\n\n datetime(\n value: unknown,\n {\n format,\n ...options\n }: {\n format: (date: Date) => string\n earliest?: string\n latest?: string\n tooEarly?: string\n tooLate?: string\n dateOnly?: boolean\n notValid?: string\n message?: string\n },\n ): string[] {\n // Empty values are fine\n if (!isDefined(value)) {\n return []\n }\n\n let num = value\n if (isString(value)) {\n num = Date.parse(value)\n }\n\n // 86400000 is the number of milliseconds in a day, this is used to remove\n // the time from the date\n if (\n !isNumber(num) ||\n isNaN(num) ||\n (options.dateOnly && num % 86400000 !== 0)\n ) {\n const err = options.notValid || options.message || 'must be a valid date'\n return [formatValidationMessage(err, { value })]\n }\n\n const errors = []\n\n const earliest = options.earliest ? Date.parse(options.earliest) : NaN\n if (!isNaN(earliest) && num < earliest) {\n const err =\n options.tooEarly || options.message || 'must be no earlier than %{date}'\n errors.push(\n formatValidationMessage(err, {\n value: format(new Date(num)),\n date: format(new Date(earliest)),\n }),\n )\n }\n\n const latest = options.latest ? Date.parse(options.latest) : NaN\n if (!isNaN(latest) && num > latest) {\n const err =\n options.tooLate || options.message || 'must be no later than %{date}'\n errors.push(\n formatValidationMessage(err, {\n date: format(new Date(latest)),\n value: format(new Date(num)),\n }),\n )\n }\n\n return errors\n },\n\n regexValidation(\n value: unknown,\n options:\n | {\n pattern: RegExp | string\n message?: string\n flags?: string\n }\n | RegExp\n | string,\n ): string[] {\n if (isString(options) || options instanceof RegExp) {\n options = { pattern: options }\n }\n\n const message = options.message || 'is invalid'\n\n // Empty values are allowed\n if (!isDefined(value)) {\n return []\n }\n if (!isString(value)) {\n return [message]\n }\n\n let pattern = options.pattern\n if (isString(pattern)) {\n pattern = new RegExp(options.pattern, options.flags)\n }\n const match = pattern.exec(value)\n if (!match || match[0].length != value.length) {\n return [message]\n }\n\n return []\n },\n\n email(value: unknown, options?: { message?: string }): string[] {\n // Empty values are fine\n if (!isDefined(value)) {\n return []\n }\n\n const message = options?.message || 'is not a valid email'\n if (!isString(value)) {\n return [message]\n }\n if (!EmailValidator.validate(value)) {\n return [message]\n }\n\n return []\n },\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oneblink/apps-react",
3
3
  "description": "Helper functions for OneBlink apps in ReactJS.",
4
- "version": "6.11.0-beta.4",
4
+ "version": "6.11.0-beta.5",
5
5
  "author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/oneblink/apps-react/issues"
@@ -22,6 +22,7 @@
22
22
  "color": "^4.2.3",
23
23
  "copy-to-clipboard": "^3.3.3",
24
24
  "date-fns": "^2.30.0",
25
+ "email-validator": "^2.0.4",
25
26
  "escape-string-regexp": "^5.0.0",
26
27
  "file-saver": "^2.0.5",
27
28
  "flatpickr": "^4.6.13",