Fix sudo handling for MySQL socket directory permissions in migrate commands

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-12-23 21:23:23 +00:00
parent 77663169a2
commit 678ff17ad6
35 changed files with 1998 additions and 733 deletions

View File

@@ -4875,34 +4875,43 @@ function init_jquery_plugin(jQuery) {
};
// Store original jQuery.fn.on
const originalOn = jQuery.fn.on;
// Common jQuery DOM events - no warning for these
const COMMON_JQUERY_EVENTS = new Set([
'click', 'dblclick', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave',
'keydown', 'keyup', 'keypress',
'focus', 'blur', 'focusin', 'focusout',
'change', 'input', 'submit', 'reset', 'select',
'scroll', 'resize',
'load', 'unload', 'error',
'touchstart', 'touchend', 'touchmove', 'touchcancel',
'contextmenu', 'wheel',
'copy', 'cut', 'paste',
'drag', 'dragstart', 'dragend', 'dragenter', 'dragleave', 'dragover', 'drop'
]);
/**
* Override jQuery.fn.on() to warn when attaching events to component root elements
* Override jQuery.fn.on() to warn when attaching non-DOM events to component root elements
*
* JQHTML components have their own .on() method for lifecycle events.
* Attaching jQuery events to a component's root element usually indicates
* JQHTML components have their own .on() method for lifecycle events (ready, create, render, etc).
* Attaching these via jQuery .on() to a component's root element usually indicates
* the developer meant to use component.on() instead.
*
* To suppress the warning, pass 'intentional' as any argument.
* Common jQuery DOM events (click, change, focus, etc.) do not trigger a warning.
*/
jQuery.fn.on = function (...args) {
// Check if 'intentional' flag is present in any argument
const intentional = args.some(arg => arg === 'intentional');
// Filter out 'intentional' from args before passing to original .on()
const cleanArgs = intentional ? args.filter(arg => arg !== 'intentional') : args;
// Get event name (first argument)
const eventName = typeof args[0] === 'string' ? args[0].split('.')[0] : null; // Strip namespace
// Check first element for Component class and warn if needed
if (!intentional && this.length > 0) {
if (eventName && !COMMON_JQUERY_EVENTS.has(eventName) && this.length > 0) {
const firstEl = this.first();
if (firstEl.hasClass('Component')) {
const component = firstEl.data('_component');
const componentName = component?.component_name?.() || 'Component';
console.warn(`[JQHTML] jQuery .on('${cleanArgs[0]}') called on <${componentName}> root element.\n` +
`You may have meant to use component.on() for lifecycle events, or attach to a child element.\n` +
`If attaching jQuery events to the component root is intentional, pass 'intentional' as an argument:\n` +
` $(element).on('${cleanArgs[0]}', 'intentional', handler)`);
console.warn(`[JQHTML] jQuery .on('${args[0]}') called on <${componentName}> root element.\n` +
`You may have meant to use component.on() for lifecycle events, or attach to a child element.`);
}
}
// Call original .on() with cleaned arguments and return result
return originalOn.apply(this, cleanArgs);
// Call original .on() with all arguments
return originalOn.apply(this, args);
};
// Store original jQuery.fn.find
const originalFind = jQuery.fn.find;
@@ -4957,7 +4966,7 @@ function init(jQuery) {
}
}
// Version - will be replaced during build with actual version from package.json
const version = '2.3.28';
const version = '2.3.29';
// Default export with all functionality
const jqhtml = {
// Core

File diff suppressed because one or more lines are too long

View File

@@ -4871,34 +4871,43 @@ function init_jquery_plugin(jQuery) {
};
// Store original jQuery.fn.on
const originalOn = jQuery.fn.on;
// Common jQuery DOM events - no warning for these
const COMMON_JQUERY_EVENTS = new Set([
'click', 'dblclick', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave',
'keydown', 'keyup', 'keypress',
'focus', 'blur', 'focusin', 'focusout',
'change', 'input', 'submit', 'reset', 'select',
'scroll', 'resize',
'load', 'unload', 'error',
'touchstart', 'touchend', 'touchmove', 'touchcancel',
'contextmenu', 'wheel',
'copy', 'cut', 'paste',
'drag', 'dragstart', 'dragend', 'dragenter', 'dragleave', 'dragover', 'drop'
]);
/**
* Override jQuery.fn.on() to warn when attaching events to component root elements
* Override jQuery.fn.on() to warn when attaching non-DOM events to component root elements
*
* JQHTML components have their own .on() method for lifecycle events.
* Attaching jQuery events to a component's root element usually indicates
* JQHTML components have their own .on() method for lifecycle events (ready, create, render, etc).
* Attaching these via jQuery .on() to a component's root element usually indicates
* the developer meant to use component.on() instead.
*
* To suppress the warning, pass 'intentional' as any argument.
* Common jQuery DOM events (click, change, focus, etc.) do not trigger a warning.
*/
jQuery.fn.on = function (...args) {
// Check if 'intentional' flag is present in any argument
const intentional = args.some(arg => arg === 'intentional');
// Filter out 'intentional' from args before passing to original .on()
const cleanArgs = intentional ? args.filter(arg => arg !== 'intentional') : args;
// Get event name (first argument)
const eventName = typeof args[0] === 'string' ? args[0].split('.')[0] : null; // Strip namespace
// Check first element for Component class and warn if needed
if (!intentional && this.length > 0) {
if (eventName && !COMMON_JQUERY_EVENTS.has(eventName) && this.length > 0) {
const firstEl = this.first();
if (firstEl.hasClass('Component')) {
const component = firstEl.data('_component');
const componentName = component?.component_name?.() || 'Component';
console.warn(`[JQHTML] jQuery .on('${cleanArgs[0]}') called on <${componentName}> root element.\n` +
`You may have meant to use component.on() for lifecycle events, or attach to a child element.\n` +
`If attaching jQuery events to the component root is intentional, pass 'intentional' as an argument:\n` +
` $(element).on('${cleanArgs[0]}', 'intentional', handler)`);
console.warn(`[JQHTML] jQuery .on('${args[0]}') called on <${componentName}> root element.\n` +
`You may have meant to use component.on() for lifecycle events, or attach to a child element.`);
}
}
// Call original .on() with cleaned arguments and return result
return originalOn.apply(this, cleanArgs);
// Call original .on() with all arguments
return originalOn.apply(this, args);
};
// Store original jQuery.fn.find
const originalFind = jQuery.fn.find;
@@ -4953,7 +4962,7 @@ function init(jQuery) {
}
}
// Version - will be replaced during build with actual version from package.json
const version = '2.3.28';
const version = '2.3.29';
// Default export with all functionality
const jqhtml = {
// Core

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/**
* JQHTML Core v2.3.28
* JQHTML Core v2.3.29
* (c) 2025 JQHTML Team
* Released under the MIT License
*/
@@ -4876,34 +4876,43 @@ function init_jquery_plugin(jQuery) {
};
// Store original jQuery.fn.on
const originalOn = jQuery.fn.on;
// Common jQuery DOM events - no warning for these
const COMMON_JQUERY_EVENTS = new Set([
'click', 'dblclick', 'mousedown', 'mouseup', 'mousemove', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave',
'keydown', 'keyup', 'keypress',
'focus', 'blur', 'focusin', 'focusout',
'change', 'input', 'submit', 'reset', 'select',
'scroll', 'resize',
'load', 'unload', 'error',
'touchstart', 'touchend', 'touchmove', 'touchcancel',
'contextmenu', 'wheel',
'copy', 'cut', 'paste',
'drag', 'dragstart', 'dragend', 'dragenter', 'dragleave', 'dragover', 'drop'
]);
/**
* Override jQuery.fn.on() to warn when attaching events to component root elements
* Override jQuery.fn.on() to warn when attaching non-DOM events to component root elements
*
* JQHTML components have their own .on() method for lifecycle events.
* Attaching jQuery events to a component's root element usually indicates
* JQHTML components have their own .on() method for lifecycle events (ready, create, render, etc).
* Attaching these via jQuery .on() to a component's root element usually indicates
* the developer meant to use component.on() instead.
*
* To suppress the warning, pass 'intentional' as any argument.
* Common jQuery DOM events (click, change, focus, etc.) do not trigger a warning.
*/
jQuery.fn.on = function (...args) {
// Check if 'intentional' flag is present in any argument
const intentional = args.some(arg => arg === 'intentional');
// Filter out 'intentional' from args before passing to original .on()
const cleanArgs = intentional ? args.filter(arg => arg !== 'intentional') : args;
// Get event name (first argument)
const eventName = typeof args[0] === 'string' ? args[0].split('.')[0] : null; // Strip namespace
// Check first element for Component class and warn if needed
if (!intentional && this.length > 0) {
if (eventName && !COMMON_JQUERY_EVENTS.has(eventName) && this.length > 0) {
const firstEl = this.first();
if (firstEl.hasClass('Component')) {
const component = firstEl.data('_component');
const componentName = component?.component_name?.() || 'Component';
console.warn(`[JQHTML] jQuery .on('${cleanArgs[0]}') called on <${componentName}> root element.\n` +
`You may have meant to use component.on() for lifecycle events, or attach to a child element.\n` +
`If attaching jQuery events to the component root is intentional, pass 'intentional' as an argument:\n` +
` $(element).on('${cleanArgs[0]}', 'intentional', handler)`);
console.warn(`[JQHTML] jQuery .on('${args[0]}') called on <${componentName}> root element.\n` +
`You may have meant to use component.on() for lifecycle events, or attach to a child element.`);
}
}
// Call original .on() with cleaned arguments and return result
return originalOn.apply(this, cleanArgs);
// Call original .on() with all arguments
return originalOn.apply(this, args);
};
// Store original jQuery.fn.find
const originalFind = jQuery.fn.find;
@@ -4958,7 +4967,7 @@ function init(jQuery) {
}
}
// Version - will be replaced during build with actual version from package.json
const version = '2.3.28';
const version = '2.3.29';
// Default export with all functionality
const jqhtml = {
// Core

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"jquery-plugin.d.ts","sourceRoot":"","sources":["../src/jquery-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQpE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd;;WAEG;QACH,SAAS,IAAI,gBAAgB,GAAG,IAAI,CAAC;QACrC,SAAS,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAC9F,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAE/E;;;;;;;WAOG;QACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KACvC;CACF;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA+YpD"}
{"version":3,"file":"jquery-plugin.d.ts","sourceRoot":"","sources":["../src/jquery-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQpE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd;;WAEG;QACH,SAAS,IAAI,gBAAgB,GAAG,IAAI,CAAC;QACrC,SAAS,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAC9F,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAE/E;;;;;;;WAOG;QACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;KACvC;CACF;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAwZpD"}

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/core",
"version": "2.3.28",
"version": "2.3.29",
"description": "Core runtime library for JQHTML",
"type": "module",
"main": "./dist/index.js",

View File

@@ -1377,7 +1377,7 @@ export class CodeGenerator {
for (const [name, component] of this.components) {
code += `// Component: ${name}\n`;
code += `jqhtml_components.set('${name}', {\n`;
code += ` _jqhtml_version: '2.3.28',\n`; // Version will be replaced during build
code += ` _jqhtml_version: '2.3.29',\n`; // Version will be replaced during build
code += ` name: '${name}',\n`;
code += ` tag: '${component.tagName}',\n`;
code += ` defaultAttributes: ${this.serializeAttributeObject(component.defaultAttributes)},\n`;

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/parser",
"version": "2.3.28",
"version": "2.3.29",
"description": "JQHTML template parser - converts templates to JavaScript",
"type": "module",
"main": "dist/index.js",

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/ssr",
"version": "2.3.28",
"version": "2.3.29",
"description": "Server-Side Rendering for JQHTML components - renders components to HTML for SEO",
"main": "src/index.js",
"bin": {

View File

@@ -1 +1 @@
2.3.28
2.3.29

View File

@@ -2,7 +2,7 @@
"name": "@jqhtml/vscode-extension",
"displayName": "JQHTML",
"description": "Syntax highlighting and language support for JQHTML template files",
"version": "2.3.28",
"version": "2.3.29",
"publisher": "jqhtml",
"license": "MIT",
"publishConfig": {