This commit is contained in:
2026-07-02 15:54:39 -06:00
commit 9883323161
17470 changed files with 4470592 additions and 0 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+53
View File
@@ -0,0 +1,53 @@
/**
* JSHINT has some GPL Compatability issues, so we are faking it out and using esprima for validation
* Based on https://github.com/jquery/esprima/blob/gh-pages/demo/validate.js which is MIT licensed.
* This is now deprecated in favor of Espree.
*
* @since 4.9.3
* @deprecated 7.0.0
* @output wp-includes/js/codemirror/fakejshint.js
* @see https://core.trac.wordpress.org/ticket/42850
* @see https://core.trac.wordpress.org/ticket/64558
*/
/* jshint -W057, -W058 */
var fakeJSHINT = new function() {
var syntax, errors;
var that = this;
this.data = [];
this.convertError = function( error ){
return {
line: error.lineNumber,
character: error.column,
reason: error.description,
code: 'E'
};
};
this.parse = function( code ){
try {
syntax = window.esprima.parse(code, { tolerant: true, loc: true });
errors = syntax.errors;
if ( errors.length > 0 ) {
for ( var i = 0; i < errors.length; i++) {
var error = errors[i];
that.data.push( that.convertError( error ) );
}
} else {
that.data = [];
}
} catch (e) {
that.data.push( that.convertError( e ) );
}
};
};
window.JSHINT = function( text ){
fakeJSHINT.parse( text );
};
window.JSHINT.data = function(){
return {
errors: fakeJSHINT.data
};
};
@@ -0,0 +1,47 @@
/* global HTMLHint */
/* eslint no-magic-numbers: ["error", { "ignore": [1] }] */
HTMLHint.addRule( {
id: 'kses',
description: 'Element or attribute cannot be used.',
/**
* Initialize.
*
* @this {import('htmlhint/types').Rule}
* @param {import('htmlhint').HTMLParser} parser - Parser.
* @param {import('htmlhint').Reporter} reporter - Reporter.
* @param {Record<string, Record<string, boolean>>} options - KSES options.
* @return {void}
*/
init: function ( parser, reporter, options ) {
'use strict';
parser.addListener( 'tagstart', ( event ) => {
const tagName = event.tagName.toLowerCase();
if ( ! options[ tagName ] ) {
reporter.error(
`Tag <${ event.tagName }> is not allowed.`,
event.line,
event.col,
this,
event.raw
);
return;
}
const allowedAttributes = options[ tagName ];
const column = event.col + event.tagName.length + 1;
for ( const attribute of event.attrs ) {
if ( ! allowedAttributes[ attribute.name.toLowerCase() ] ) {
reporter.error(
`Tag attribute [${ attribute.raw }] is not allowed.`,
event.line,
column + attribute.index,
this,
attribute.raw
);
}
}
} );
},
} );
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long