HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode/one-time-popup/node_modules/eslint/lib/rules/no-script-url.js
/**
 * @fileoverview Rule to disallow `javascript:` URLs
 * @author Ilya Volodin
 */
/* eslint no-script-url: 0 -- Code is checking to report such URLs */

"use strict";

const astUtils = require("./utils/ast-utils");

//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------

/** @type {import('../types').Rule.RuleModule} */
module.exports = {
	meta: {
		type: "suggestion",

		docs: {
			description: "Disallow `javascript:` URLs",
			recommended: false,
			url: "https://eslint.org/docs/latest/rules/no-script-url",
		},

		schema: [],

		messages: {
			unexpectedScriptURL: "Script URL is a form of eval.",
		},
	},

	create(context) {
		/**
		 * Check whether a node's static value starts with `javascript:` or not.
		 * And report an error for unexpected script URL.
		 * @param {ASTNode} node node to check
		 * @returns {void}
		 */
		function check(node) {
			const value = astUtils.getStaticStringValue(node);

			if (
				typeof value === "string" &&
				value.toLowerCase().indexOf("javascript:") === 0
			) {
				context.report({ node, messageId: "unexpectedScriptURL" });
			}
		}
		return {
			Literal(node) {
				if (node.value && typeof node.value === "string") {
					check(node);
				}
			},
			TemplateLiteral(node) {
				if (
					!(
						node.parent &&
						node.parent.type === "TaggedTemplateExpression"
					)
				) {
					check(node);
				}
			},
		};
	},
};