Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

String uri domain option does not allow Unicode when option is enabled #3068

Open
danillouz opened this issue Feb 27, 2025 · 0 comments
Open
Labels
bug Bug or defect

Comments

@danillouz
Copy link

danillouz commented Feb 27, 2025

Runtime

node.js

Runtime version

v23.7.0

Module version

17.13.3

Last module version without issue

No response

Used with

express

Any other relevant information

I found this issue: #2889

Which introduced encodeUri. But this option can't be used (while it is documented).

Is this a regression?

What are you trying to achieve or the steps to reproduce?

From what I understand, I should be able to use the domain option to validate URIs that contain Unicode characters (IDN):
https://joi.dev/api/?v=17.13.3#stringurioptions

For example:

Joi.object({
  url: Joi.string().uri({
    allowRelative: false,
    domain: {
      allowUnicode: true,
      tlds: false,
    }
  })
})

But that does not work. Am I doing something wrong, or is this indeed a bug?

What was the result you got?

Schema:

Joi.object({
  url: Joi.string().uri({
    allowRelative: false,
    domain: {
      allowUnicode: true,
      tlds: false,
    }
  })
})

Data to validate:

{
  url: "https://ëxample.com"
}

Output:

{
  "url" /* "url" must be a valid uri */: "https://ëxample.com"
}

Sandbox reproduction:

Image

What result did you expect?

For it to validate URIs that contain IDN, when the allowUnicode domain option is enabled.

IOW: for it to behave like domain (which does work as expected)

@danillouz danillouz added the bug Bug or defect label Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug or defect
Projects
None yet
Development

No branches or pull requests

1 participant