add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

add valid_tlds option for isFQDN, isURL and isEmail - #1297

Closed
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option
Closed

add valid_tlds option for isFQDN, isURL and isEmail#1297
subalee wants to merge 5 commits into
validatorjs:masterfrom
subalee:feature/valid_tlds_option

Conversation

@subalee

Copy link
Copy Markdown

Hey! this builds heavily on #1248 but since that has been inactive for a couple of weeks I've decided to give it a go.

This PR adds the valid_tlds option to isURL, isFQDN, isEmail with default set to [].
While being a standalone option it only works as long as require_tld is set to true.

Disclaimer: This is my first time submitting PR to OS project so I'm not quite sure whether i'm not breaking any code of conduct by creating this PR when there is already a similar one. I haven't found any contribution guidelines or anything.

@profnandaa

Copy link
Copy Markdown
Member

You have done it right, no worries. Welcome to the project!

I have some reservation on this approach. May be we need to step back and ask why would someone what to limit the tlds? I feel the array may grow a little too long, also now that we have so many other tlds that have been added recently, the list keeps growing. I don't see the reason why an email like me@someonewho.codes should be dimmed as an invalid email when .codes now is a TLD...

@askel4dd

askel4dd commented May 28, 2020

Copy link
Copy Markdown

Imagine if you have a really long list of TLDs (taken from here for example) and using that you can tell if blah.comm is valid or not and highlight it as clickable. You can't be sure that blah.com exist or not, but you can tell for sure that blah.comm does not exist

@profnandaa

Copy link
Copy Markdown
Member

Cross referencing - #1180

@subalee

Copy link
Copy Markdown
Author

Hey everyone, I'm not sure what's the best way to move forward now. Is this something you guys want to pursue or should I just go ahead and close this? @profnandaa@askel4dd

@subaleesubalee closed this Apr 5, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@subalee@profnandaa@askel4dd