diff --git a/app/RSpade/Core/Debug/Debugger.php b/app/RSpade/Core/Debug/Debugger.php index 200784886..8f4c58cac 100755 --- a/app/RSpade/Core/Debug/Debugger.php +++ b/app/RSpade/Core/Debug/Debugger.php @@ -997,6 +997,11 @@ class Debugger return; } + // Don't output if suppressed (e.g., for IDE service requests) + if (defined('SUPPRESS_CONSOLE_DEBUG_OUTPUT') && SUPPRESS_CONSOLE_DEBUG_OUTPUT) { + return; + } + // Don't output if console HTML is disabled (e.g., for AJAX requests) if (static::$console_html_disabled) { return; diff --git a/app/RSpade/Core/Providers/Rsx_Framework_Provider.php b/app/RSpade/Core/Providers/Rsx_Framework_Provider.php index 3cfde7c6f..038d8976a 100755 --- a/app/RSpade/Core/Providers/Rsx_Framework_Provider.php +++ b/app/RSpade/Core/Providers/Rsx_Framework_Provider.php @@ -8,6 +8,7 @@ namespace App\RSpade\Core\Providers; use Blade; +use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; use Log; @@ -297,6 +298,13 @@ class Rsx_Framework_Provider extends ServiceProvider }); } + // Register Request helper macros + if (!Request::hasMacro('is_post')) { + Request::macro('is_post', function () { + return $this->isMethod('post'); + }); + } + // Handle IDE integration domain auto-discovery $this->handle_ide_domain_discovery(); } diff --git a/app/RSpade/Ide/Services/auth.php b/app/RSpade/Ide/Services/auth.php new file mode 100755 index 000000000..b53160724 --- /dev/null +++ b/app/RSpade/Ide/Services/auth.php @@ -0,0 +1,193 @@ + false, 'error' => $message], $code); +} + +// Check if IDE services are enabled +$env_file = IDE_AUTH_BASE_PATH . '/.env'; +if (file_exists($env_file)) { + $env_content = file_get_contents($env_file); + // Check if production + if (preg_match('/^APP_ENV=production$/m', $env_content)) { + // Check if explicitly enabled in production + if (!preg_match('/^RSX_IDE_SERVICES_ENABLED=true$/m', $env_content)) { + ide_auth_error_response('IDE services disabled in production', 403); + } + } +} + +// Parse request URI to get service +$request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); +$service_path = str_replace('/_ide/service', '', $request_uri); +$service_path = trim($service_path, '/'); + +// Get request body for signature verification +$request_body = file_get_contents('php://input'); + +// Handle authentication +$auth_data = []; +$session_header = $_SERVER['HTTP_X_SESSION'] ?? null; +$signature_header = $_SERVER['HTTP_X_SIGNATURE'] ?? null; + +// Check if this is auth/create request (no auth required for session creation) +if ($service_path === 'auth/create' && $_SERVER['REQUEST_METHOD'] === 'POST') { + // Generate new auth session + $session = bin2hex(random_bytes(20)); + $client_key = bin2hex(random_bytes(20)); + $server_key = bin2hex(random_bytes(20)); + + $auth_data_new = [ + 'session' => $session, + 'client_key' => $client_key, + 'server_key' => $server_key, + 'created' => time() + ]; + + // Save auth file + $bridge_dir = ide_auth_framework_path('storage/rsx-ide-bridge'); + if (!is_dir($bridge_dir)) { + mkdir($bridge_dir, 0755, true); + } + + // Rotate old sessions - keep max 100 auth files + $auth_files = glob($bridge_dir . '/auth-*.json'); + if (count($auth_files) >= 100) { + // Sort by modification time (oldest first) + usort($auth_files, function($a, $b) { + return filemtime($a) - filemtime($b); + }); + + // Delete oldest files to get down to 99 (so we can add the new one) + $files_to_delete = count($auth_files) - 99; + for ($i = 0; $i < $files_to_delete; $i++) { + unlink($auth_files[$i]); + } + } + + $auth_file = $bridge_dir . '/auth-' . $session . '.json'; + file_put_contents($auth_file, json_encode($auth_data_new, JSON_PRETTY_PRINT)); + + // Return auth data (unsigned response since client doesn't have keys yet) + http_response_code(200); + header('Content-Type: application/json'); + echo json_encode([ + 'success' => true, + 'session' => $session, + 'client_key' => $client_key, + 'server_key' => $server_key + ]); + exit; +} + +// Authentication required for all other requests +// Handle authentication with localhost bypass + +// Localhost bypass for IDE integration +$is_localhost_bypass = false; +$request_host = $_SERVER['HTTP_HOST'] ?? ''; +$request_scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http'; +$remote_addr = $_SERVER['REMOTE_ADDR'] ?? ''; + +// Check for proxy headers +$has_proxy_headers = false; +foreach ($_SERVER as $key => $value) { + if (str_starts_with($key, 'HTTP_X_')) { + if ($key === 'HTTP_X_SESSION' || $key === 'HTTP_X_SIGNATURE') { + continue; + } + $has_proxy_headers = true; + break; + } +} + +// Check if request is from loopback +$is_loopback_ip = ( + !$has_proxy_headers && + ($remote_addr === '127.0.0.1' || + $remote_addr === '::1' || + str_starts_with($remote_addr, '127.')) +); + +// Check if not in production +$is_not_production = true; +if (file_exists($env_file)) { + $env_content = file_get_contents($env_file); + if (preg_match('/^APP_ENV=production$/m', $env_content)) { + $is_not_production = false; + } +} + +// All conditions must be true for bypass +if ( + $request_host === 'localhost' && + $request_scheme === 'http' && + $is_loopback_ip && + $is_not_production +) { + $is_localhost_bypass = true; + $auth_data = [ + 'session' => 'localhost-bypass', + 'client_key' => '', + 'server_key' => '' + ]; +} + +if (!$is_localhost_bypass) { + // Require authentication for non-localhost + if (!$session_header || !$signature_header) { + ide_auth_error_response('Authentication required', 401); + } + + // Load and validate session + $auth_file = ide_auth_framework_path('storage/rsx-ide-bridge/auth-' . $session_header . '.json'); + if (!file_exists($auth_file)) { + ide_auth_error_response('Session not found', 401); + } + + $auth_data = json_decode(file_get_contents($auth_file), true); + $expected_signature = sha1($request_body . $auth_data['client_key']); + if ($signature_header !== $expected_signature) { + ide_auth_error_response('Invalid signature', 401); + } +} + +// Authentication passed - store auth data for handlers to use if needed +define('IDE_AUTH_PASSED', true); +define('IDE_AUTH_DATA', json_encode($auth_data)); +define('IDE_AUTH_IS_LOCALHOST_BYPASS', $is_localhost_bypass); + +// Suppress console_debug output for IDE service requests +// These are programmatic API calls, not user-facing pages +define('SUPPRESS_CONSOLE_DEBUG_OUTPUT', true); diff --git a/app/RSpade/Ide/Services/handler.php b/app/RSpade/Ide/Services/handler.php index 1e0191784..0e4352a79 100755 --- a/app/RSpade/Ide/Services/handler.php +++ b/app/RSpade/Ide/Services/handler.php @@ -11,6 +11,18 @@ * 3. Server validates client signature * 4. Server signs response with SHA1(body + server_key) * 5. Client validates server signature + * + * Localhost Bypass: + * Authentication can be bypassed when ALL of the following conditions are met: + * 1. Request is to hostname 'localhost' (not 127.0.0.1, not any other domain) + * 2. Request is NOT HTTPS (must be http://) + * 3. Request comes from a loopback IP address (127.x.x.x or ::1) + * 4. No X-* proxy headers present (except X-Session/X-Signature) + * 5. Laravel is NOT in production mode + * + * This allows the VS Code extension to make unauthenticated requests when running + * on the same machine as the dev server, eliminating session management overhead + * for local development while maintaining security for remote connections. */ // Error reporting for development @@ -39,8 +51,34 @@ function storage_path($path = '') { // Load exec_safe() function require_once ide_framework_path('app/RSpade/helpers.php'); +// Helper to normalize file paths for IDE consumption +// Framework files (not starting with rsx/) need system/ prefix +function normalize_ide_path($path) { + if (!$path || str_starts_with($path, 'rsx/')) { + return $path; + } + return 'system/' . $path; +} + +// Helper to recursively normalize all 'file' keys in response data +function normalize_response_paths($data) { + if (is_array($data)) { + foreach ($data as $key => $value) { + if ($key === 'file' && is_string($value)) { + $data[$key] = normalize_ide_path($value); + } elseif (is_array($value)) { + $data[$key] = normalize_response_paths($value); + } + } + } + return $data; +} + // JSON response helper function json_response($data, $code = 200) { + // Normalize all file paths in response for IDE consumption + $data = normalize_response_paths($data); + http_response_code($code); header('Content-Type: application/json'); $json = json_encode($data); @@ -61,19 +99,14 @@ function error_response($message, $code = 400) { json_response(['success' => false, 'error' => $message], $code); } -// Check if IDE services are enabled -$env_file = IDE_BASE_PATH . '/.env'; -if (file_exists($env_file)) { - $env_content = file_get_contents($env_file); - // Check if production - if (preg_match('/^APP_ENV=production$/m', $env_content)) { - // Check if explicitly enabled in production - if (!preg_match('/^RSX_IDE_SERVICES_ENABLED=true$/m', $env_content)) { - error_response('IDE services disabled in production', 403); - } - } +// Authentication already handled by auth.php before this file is loaded +// Retrieve auth data from constants set by auth.php +if (!defined('IDE_AUTH_PASSED')) { + error_response('Authentication check did not run - this should never happen', 500); } +$auth_data = json_decode(IDE_AUTH_DATA, true); + // Parse request URI to get service $request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $service_path = str_replace('/_ide/service', '', $request_uri); @@ -88,75 +121,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $request_data = array_merge($request_data ?? [], $_GET); } -// Handle authentication -$auth_data = []; -$session_header = $_SERVER['HTTP_X_SESSION'] ?? null; -$signature_header = $_SERVER['HTTP_X_SIGNATURE'] ?? null; - -if ($session_header && $signature_header) { - // Load auth data for session - $auth_file = ide_framework_path('storage/rsx-ide-bridge/auth-' . $session_header . '.json'); - - if (file_exists($auth_file)) { - $auth_data = json_decode(file_get_contents($auth_file), true); - - // Validate signature - $expected_signature = sha1($request_body . $auth_data['client_key']); - if ($signature_header !== $expected_signature) { - error_response('Invalid signature', 401); - } - } else { - // Session not found - provide recovery hint - http_response_code(401); - header('Content-Type: application/json'); - echo json_encode([ - 'error' => 'Session not found', - 'code' => 401, - 'recoverable' => true, - 'recovery' => 'Create new session via POST /_ide/service/auth/create' - ]); - exit; - } -} else { - // No auth provided - check if this is an auth creation request - if ($service_path === 'auth/create' && $_SERVER['REQUEST_METHOD'] === 'POST') { - // Generate new auth session - $session = bin2hex(random_bytes(20)); - $client_key = bin2hex(random_bytes(20)); - $server_key = bin2hex(random_bytes(20)); - - $auth_data = [ - 'session' => $session, - 'client_key' => $client_key, - 'server_key' => $server_key, - 'created' => time() - ]; - - // Save auth file - $bridge_dir = ide_framework_path('storage/rsx-ide-bridge'); - if (!is_dir($bridge_dir)) { - mkdir($bridge_dir, 0755, true); - } - - $auth_file = $bridge_dir . '/auth-' . $session . '.json'; - file_put_contents($auth_file, json_encode($auth_data, JSON_PRETTY_PRINT)); - - // Return auth data (unsigned response since client doesn't have keys yet) - http_response_code(200); - header('Content-Type: application/json'); - echo json_encode([ - 'success' => true, - 'session' => $session, - 'client_key' => $client_key, - 'server_key' => $server_key - ]); - exit; - } else { - error_response('Authentication required', 401); - } -} - // Route to appropriate service handler +// This handler handles lightweight services that don't need Laravel bootstrap +// All services requiring Manifest/Laravel are handled by laravel_handler.php +// Note: auth/create is handled in auth.php before routing switch ($service_path) { case 'format': handle_format_service($request_data); @@ -171,9 +139,14 @@ switch ($service_path) { break; case 'exec': + case 'command': handle_exec_service($request_data); break; + case 'resolve_class': + handle_resolve_class_service($request_data); + break; + case 'git': handle_git_service($request_data); break; @@ -182,28 +155,12 @@ switch ($service_path) { handle_git_diff_service($request_data); break; - case 'command': - handle_command_service($request_data); - break; - case 'health': - json_response(['success' => true, 'service' => 'ide', 'version' => '1.0.0']); - break; - - case 'resolve_class': - handle_resolve_class_service($request_data); - break; - - case 'js_lineage': - handle_js_lineage_service($request_data); - break; - - case 'resolve_url': - handle_resolve_url_service($request_data); + json_response(['success' => true, 'service' => 'ide-standalone', 'version' => '1.0.0']); break; default: - error_response('Unknown service: ' . $service_path, 404); + error_response('Unknown service: ' . $service_path . ' (standalone handler supports: format, definition, complete, exec, command, resolve_class, git, git/diff)', 404); } /** @@ -784,9 +741,448 @@ function handle_command_service($data) { ]); } +/** + * Try to resolve identifier as a PHP class + */ +function try_resolve_php_class($identifier, $method_name, $find_php_class) { + $class_data = $find_php_class($identifier); + + if (!$class_data) { + return null; + } + + $file_path = $class_data['file']; + $line_number = 1; + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + $lines = explode("\n", $content); + + if ($method_name) { + // Check if method metadata exists + if (isset($class_data['public_static_methods'][$method_name])) { + $method_metadata = $class_data['public_static_methods'][$method_name]; + if (isset($method_metadata['line'])) { + $line_number = $method_metadata['line']; + } + } else if (isset($class_data['public_instance_methods'][$method_name])) { + $method_metadata = $class_data['public_instance_methods'][$method_name]; + if (isset($method_metadata['line'])) { + $line_number = $method_metadata['line']; + } + } + + // If we don't have line number from metadata, search manually + if ($line_number === 1 && !empty($lines)) { + $in_class_or_trait = false; + $brace_count = 0; + + foreach ($lines as $index => $line) { + if (preg_match('/^\s*(class|trait)\s+\w+(\s|$)/', $line)) { + $in_class_or_trait = true; + } + + if ($in_class_or_trait) { + $brace_count += substr_count($line, '{'); + $brace_count -= substr_count($line, '}'); + + if (preg_match('/^\s*(public|protected|private)?\s*(static\s+)?function\s+' . preg_quote($method_name, '/') . '\s*\(/', $line)) { + $line_number = $index + 1; + break; + } + + if ($brace_count === 0 && strpos($line, '}') !== false) { + break; + } + } + } + } + } else { + // Find the line with the class definition + foreach ($lines as $index => $line) { + if (preg_match('/^\s*class\s+' . preg_quote($identifier, '/') . '(\s|$)/', $line)) { + $line_number = $index + 1; + break; + } + } + } + } + + $response_data = [ + 'found' => true, + 'type' => 'php_class', + 'file' => $file_path, + 'line' => $line_number, + 'metadata' => [ + 'namespace' => $class_data['namespace'] ?? null, + 'extends' => $class_data['extends'] ?? null, + 'fqcn' => $class_data['fqcn'] ?? null, + ], + ]; + + if ($method_name) { + $response_data['method'] = $method_name; + } + + return $response_data; +} + +/** + * Try to resolve identifier as a JavaScript class + */ +function try_resolve_js_class($identifier, $method_name, $files) { + foreach ($files as $file_path => $file_data) { + // Only check .js files (not .jqhtml) + if (str_ends_with($file_path, '.js') && !str_ends_with($file_path, '.jqhtml')) { + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + + // Check for JavaScript class (not specifically Jqhtml_Component) + if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends\s+([A-Za-z_][A-Za-z0-9_]*)/', $content, $matches)) { + $lines = explode("\n", $content); + $line_number = 1; + + foreach ($lines as $index => $line) { + if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends/', $line)) { + $line_number = $index + 1; + break; + } + } + + return [ + 'found' => true, + 'type' => 'js_class', + 'file' => $file_path, + 'line' => $line_number, + 'identifier' => $identifier, + 'extends' => $matches[1] ?? null, + ]; + } + } + } + } + return null; +} + +/** + * Try to resolve identifier as a jqhtml component class + * + * Note: This resolver does NOT check inheritance chains. It's a simple file lookup. + * VS Code extension should use js_is_subclass_of() RPC to determine if a class + * is actually a Jqhtml_Component before choosing this resolver type. + */ +function try_resolve_jqhtml_class($identifier, $method_name, $files) { + // Load manifest to get js_classes index + $manifest_file = ide_framework_path('storage/rsx-build/manifest_data.php'); + if (!file_exists($manifest_file)) { + return null; + } + + $manifest_raw = include $manifest_file; + $manifest_data = $manifest_raw['data'] ?? $manifest_raw; + $js_classes = $manifest_data['js_classes'] ?? []; + + // Check if this class exists in js_classes + if (!isset($js_classes[$identifier])) { + return null; + } + + // Get the file path + $file_path = $js_classes[$identifier]; + + // Find the line number + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + $line_number = 1; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + $lines = explode("\n", $content); + + foreach ($lines as $index => $line) { + if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends/', $line)) { + $line_number = $index + 1; + break; + } + } + } + + return [ + 'found' => true, + 'type' => 'jqhtml_class', + 'file' => $file_path, + 'line' => $line_number, + 'identifier' => $identifier, + ]; +} + +/** + * Try to resolve identifier as a view + */ +function try_resolve_view($identifier, $find_view) { + $view_data = $find_view($identifier); + + if (!$view_data) { + return null; + } + + $file_path = $view_data['file']; + $line_number = 1; + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + $lines = explode("\n", $content); + + // Look for @rsx_id('identifier') + foreach ($lines as $index => $line) { + if (preg_match('/@rsx_id\s*\(\s*[\'"]' . preg_quote($identifier, '/') . '[\'"]\s*\)/', $line)) { + $line_number = $index + 1; + break; + } + } + } + + return [ + 'found' => true, + 'type' => 'view', + 'file' => $file_path, + 'line' => $line_number, + 'identifier' => $identifier, + ]; +} + +/** + * Try to resolve identifier as a bundle alias + */ +function try_resolve_bundle_alias($identifier, $find_php_class) { + $config_path = IDE_SYSTEM_PATH . '/config/rsx.php'; + if (!file_exists($config_path)) { + return null; + } + + $config = include $config_path; + if (!isset($config['bundle_aliases'][$identifier])) { + return null; + } + + $bundle_class = $config['bundle_aliases'][$identifier]; + $class_parts = explode('\\', $bundle_class); + $class_name = end($class_parts); + + $class_data = $find_php_class($class_name); + if (!$class_data) { + return null; + } + + $file_path = $class_data['file']; + $line_number = 1; + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + $lines = explode("\n", $content); + + foreach ($lines as $index => $line) { + if (preg_match('/^\s*class\s+' . preg_quote($class_name, '/') . '(\s|$)/', $line)) { + $line_number = $index + 1; + break; + } + } + } + + return [ + 'found' => true, + 'type' => 'bundle_alias', + 'file' => $file_path, + 'line' => $line_number, + 'identifier' => $identifier, + 'resolved_class' => $bundle_class, + ]; +} + +/** + * Try to resolve identifier as a jqhtml template + */ +function try_resolve_jqhtml_template($identifier, $files, $camel_to_snake, $snake_to_pascal) { + $component_snake = $camel_to_snake($identifier); + + foreach ($files as $file_path => $file_data) { + if (str_ends_with($file_path, '.jqhtml')) { + $basename = basename($file_path, '.jqhtml'); + + if ($basename === $component_snake || $snake_to_pascal($basename) === $identifier) { + $line_number = 1; + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + $lines = explode("\n", $content); + + foreach ($lines as $index => $line) { + if (preg_match('/ true, + 'type' => 'jqhtml_template', + 'file' => $file_path, + 'line' => $line_number, + 'identifier' => $identifier, + ]; + } + } + } + return null; +} + +/** + * Try to resolve method in jqhtml component + */ +function try_resolve_jqhtml_method($identifier, $method_name, $files) { + $search_method = ($method_name === 'data') ? 'on_load' : $method_name; + + foreach ($files as $file_path => $file_data) { + if (str_ends_with($file_path, '.js')) { + $absolute_path = IDE_BASE_PATH . '/' . $file_path; + + if (file_exists($absolute_path)) { + $content = file_get_contents($absolute_path); + + if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends\s+[A-Za-z_]*Jqhtml_Component/', $content)) { + $lines = explode("\n", $content); + $line_number = 1; + $in_class = false; + $brace_count = 0; + + foreach ($lines as $index => $line) { + if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends/', $line)) { + $in_class = true; + } + + if ($in_class) { + $brace_count += substr_count($line, '{'); + $brace_count -= substr_count($line, '}'); + + if (preg_match('/(?:async\s+)?' . preg_quote($search_method, '/') . '\s*\(/', $line)) { + $line_number = $index + 1; + break; + } + + if ($brace_count === 0 && strpos($line, '}') !== false) { + break; + } + } + } + + return [ + 'found' => true, + 'type' => 'jqhtml_class_method', + 'file' => $file_path, + 'line' => $line_number, + 'identifier' => $identifier, + 'method' => $method_name, + ]; + } + } + } + } + return null; +} + /** * Handle resolve_class service - resolve class/view/component definitions - * This is a port of the Ide_Helper_Controller::resolve_class() method + * + * RESOLUTION TYPE SYSTEM + * ====================== + * + * This endpoint resolves identifiers to file locations based on type priority. + * It supports CSV type lists for priority-based resolution. + * + * AVAILABLE TYPES: + * + * 1. php_class - PHP class files (*.php) + * - Searches manifest for PHP classes + * - Supports method lookup with fallback to class + * - Returns: file path, line number, namespace, extends, fqcn + * + * 2. js_class - JavaScript class files (*.js, not .jqhtml) + * - Searches for JS classes with extends clause + * - Does NOT require extending Jqhtml_Component + * - Returns: file path, line number, extends + * + * 3. jqhtml_class - jqhtml component JavaScript files (*.js) + * - Searches for classes extending Jqhtml_Component + * - Returns: file path, line number + * + * 4. view - Blade view templates (*.blade.php) + * - Searches for @rsx_id directives + * - Returns: file path, line number + * + * 5. bundle_alias - Bundle configuration aliases + * - Resolves bundle aliases from config/rsx.php + * - Returns: bundle class file location + * + * 6. jqhtml_template - jqhtml template files (*.jqhtml) + * - Searches for tags + * - Returns: template file path, line number + * + * 7. jqhtml_class_method - Methods in jqhtml component classes + * - Requires both identifier and method parameters + * - Searches within Jqhtml_Component subclasses + * - Returns: file path, method line number + * + * CSV TYPE LISTS: + * =============== + * + * The type parameter accepts comma-separated lists for priority-based resolution. + * The server tries each type in order and returns the first match found. + * + * Examples: + * - type=php_class,js_class + * Try PHP classes first, then JavaScript classes + * Use case: From PHP files (always want PHP), fallback to JS + * + * - type=js_class,php_class + * Try JavaScript classes first, then PHP classes + * Use case: From JS files (component inheritance), fallback to PHP controllers + * + * - type=jqhtml_class,js_class + * Try jqhtml components first, then general JS classes + * Use case: jqhtml extends="" attribute resolution + * + * METHOD RESOLUTION: + * ================== + * + * When the method parameter is provided, the resolver attempts to find the specific + * method within the class. If the method exists, returns its line number. If the + * method doesn't exist but the class does, returns the class line number as fallback. + * + * This allows graceful degradation: clicking on Controller.missing_method() will + * navigate to the Controller class even if missing_method() doesn't exist. + * + * USAGE FROM VS CODE: + * =================== + * + * The VS Code extension determines which types to use based on context: + * + * - Route patterns → php_class (routes are always PHP) + * - PHP class references → php_class (PHP files only reference PHP) + * - JS class references → js_class,php_class (try JS first, then PHP controllers) + * - jqhtml extends="" → jqhtml_class,js_class (component inheritance) + * - jqhtml $xxx=Class.method → js_class,php_class (components or controllers) + * - jqhtml $xxx=this.method → jqhtml_class_method (current component only) + * + * PARAMETERS: + * - identifier/class (required): The class/view/component name to resolve + * - method (optional): Method name within the class + * - type (optional): Single type or CSV list of types to try in order */ function handle_resolve_class_service($data) { $identifier = $data['class'] ?? $data['identifier'] ?? null; @@ -800,6 +1196,12 @@ function handle_resolve_class_service($data) { ], 400); } + // Support CSV type list for priority ordering + $type_list = []; + if ($type) { + $type_list = array_map('trim', explode(',', $type)); + } + // Load manifest data $manifest_file = ide_framework_path('storage/rsx-build/manifest_data.php'); if (!file_exists($manifest_file)) { @@ -813,8 +1215,14 @@ function handle_resolve_class_service($data) { // Helper function to find PHP class in manifest $find_php_class = function($class_name) use ($files) { foreach ($files as $file_path => $file_data) { + // Only match PHP files - check file extension and presence of PHP-specific metadata if (isset($file_data['class']) && $file_data['class'] === $class_name) { - return $file_data; + // Must be a PHP file (not .js, not .jqhtml) + if (str_ends_with($file_path, '.php')) { + // Add file path to the data so caller knows which file it came from + $file_data['file'] = $file_path; + return $file_data; + } } } return null; @@ -842,292 +1250,82 @@ function handle_resolve_class_service($data) { return implode('_', array_map('ucfirst', $parts)); }; - // Priority 1: Try as PHP class - if (!$type || $type === 'class' || preg_match('/^[A-Z][A-Za-z0-9_]*$/', $identifier)) { - $class_data = $find_php_class($identifier); + // If no type list specified, try auto-detection with legacy 'class' type + if (empty($type_list)) { + if (!$type || $type === 'class' || preg_match('/^[A-Z][A-Za-z0-9_]*$/', $identifier)) { + // Legacy: Try PHP class with auto-detection fallback + $type_list = ['php_class', 'view', 'bundle_alias', 'jqhtml_template', 'jqhtml_class']; + } + } - if ($class_data) { - $file_path = $class_data['file']; - $line_number = 1; - $absolute_path = IDE_BASE_PATH . '/' . $file_path; + // Try each type in priority order + foreach ($type_list as $current_type) { + $result = null; - if (file_exists($absolute_path)) { - $content = file_get_contents($absolute_path); - $lines = explode("\n", $content); + switch ($current_type) { + case 'php_class': + $result = try_resolve_php_class($identifier, $method_name, $find_php_class); + break; + case 'js_class': + $result = try_resolve_js_class($identifier, $method_name, $files); + break; + + case 'jqhtml_class': + $result = try_resolve_jqhtml_class($identifier, $method_name, $files); + break; + + case 'view': + $result = try_resolve_view($identifier, $find_view); + break; + + case 'bundle_alias': + $result = try_resolve_bundle_alias($identifier, $find_php_class); + break; + + case 'jqhtml_template': + $result = try_resolve_jqhtml_template($identifier, $files, $camel_to_snake, $snake_to_pascal); + break; + + case 'jqhtml_class_method': if ($method_name) { - // Check if method metadata exists - if (isset($class_data['public_static_methods'][$method_name])) { - $method_metadata = $class_data['public_static_methods'][$method_name]; - if (isset($method_metadata['line'])) { - $line_number = $method_metadata['line']; - } - } else if (isset($class_data['public_instance_methods'][$method_name])) { - $method_metadata = $class_data['public_instance_methods'][$method_name]; - if (isset($method_metadata['line'])) { - $line_number = $method_metadata['line']; - } - } - - // If we don't have line number from metadata, search manually - if ($line_number === 1 && !empty($lines)) { - $in_class_or_trait = false; - $brace_count = 0; - - foreach ($lines as $index => $line) { - if (preg_match('/^\s*(class|trait)\s+\w+(\s|$)/', $line)) { - $in_class_or_trait = true; - } - - if ($in_class_or_trait) { - $brace_count += substr_count($line, '{'); - $brace_count -= substr_count($line, '}'); - - if (preg_match('/^\s*(public|protected|private)?\s*(static\s+)?function\s+' . preg_quote($method_name, '/') . '\s*\(/', $line)) { - $line_number = $index + 1; - break; - } - - if ($brace_count === 0 && strpos($line, '}') !== false) { - break; - } - } - } - } - } else { - // Find the line with the class definition - foreach ($lines as $index => $line) { - if (preg_match('/^\s*class\s+' . preg_quote($identifier, '/') . '(\s|$)/', $line)) { - $line_number = $index + 1; - break; - } - } + $result = try_resolve_jqhtml_method($identifier, $method_name, $files); } - } + break; + } - $response_data = [ - 'found' => true, - 'type' => 'class', - 'file' => $file_path, - 'line' => $line_number, - 'metadata' => [ - 'namespace' => $class_data['namespace'] ?? null, - 'extends' => $class_data['extends'] ?? null, - 'fqcn' => $class_data['fqcn'] ?? null, - ], - ]; - - if ($method_name) { - $response_data['method'] = $method_name; - } - - json_response($response_data); + // If we found a result, return it immediately + if ($result && ($result['found'] ?? false)) { + json_response($result); } } - // Priority 2: Try as RSX blade view - if (!$type || $type === 'view' || !preg_match('/Controller$/', $identifier)) { - $view_data = $find_view($identifier); - - if ($view_data) { - $file_path = $view_data['file']; - $line_number = 1; - $absolute_path = IDE_BASE_PATH . '/' . $file_path; - - if (file_exists($absolute_path)) { - $content = file_get_contents($absolute_path); - $lines = explode("\n", $content); - - // Look for @rsx_id('identifier') - foreach ($lines as $index => $line) { - if (preg_match('/@rsx_id\s*\(\s*[\'"]' . preg_quote($identifier, '/') . '[\'"]\s*\)/', $line)) { - $line_number = $index + 1; - break; - } - } - } - - json_response([ - 'found' => true, - 'type' => 'view', - 'file' => $file_path, - 'line' => $line_number, - 'identifier' => $identifier, - ]); - } - } - - // Priority 3: Try as bundle alias - if (!$type || $type === 'bundle_alias' || preg_match('/^[a-z0-9]+$/', $identifier)) { - $config_path = IDE_SYSTEM_PATH . '/config/rsx.php'; - if (file_exists($config_path)) { - $config = include $config_path; - if (isset($config['bundle_aliases'][$identifier])) { - $bundle_class = $config['bundle_aliases'][$identifier]; - - $class_parts = explode('\\', $bundle_class); - $class_name = end($class_parts); - - $class_data = $find_php_class($class_name); - if ($class_data) { - $file_path = $class_data['file']; - $line_number = 1; - $absolute_path = IDE_BASE_PATH . '/' . $file_path; - - if (file_exists($absolute_path)) { - $content = file_get_contents($absolute_path); - $lines = explode("\n", $content); - - foreach ($lines as $index => $line) { - if (preg_match('/^\s*class\s+' . preg_quote($class_name, '/') . '(\s|$)/', $line)) { - $line_number = $index + 1; - break; - } - } - } - - json_response([ - 'found' => true, - 'type' => 'bundle_alias', - 'file' => $file_path, - 'line' => $line_number, - 'identifier' => $identifier, - 'resolved_class' => $bundle_class, - ]); - } - } - } - } - - // Priority 4: jqhtml template files - if ($type === 'jqhtml_template') { - $component_snake = $camel_to_snake($identifier); - - foreach ($files as $file_path => $file_data) { - if (str_ends_with($file_path, '.jqhtml')) { - $basename = basename($file_path, '.jqhtml'); - - if ($basename === $component_snake || $snake_to_pascal($basename) === $identifier) { - $line_number = 1; - $absolute_path = IDE_BASE_PATH . '/' . $file_path; - - if (file_exists($absolute_path)) { - $content = file_get_contents($absolute_path); - $lines = explode("\n", $content); - - foreach ($lines as $index => $line) { - if (preg_match('/ true, - 'type' => 'jqhtml_template', - 'file' => $file_path, - 'line' => $line_number, - 'identifier' => $identifier, - ]); - } - } - } - } - - // Priority 5: jqhtml JavaScript classes - if ($type === 'jqhtml_class') { - foreach ($files as $file_path => $file_data) { - if (str_ends_with($file_path, '.js')) { - $absolute_path = IDE_BASE_PATH . '/' . $file_path; - - if (file_exists($absolute_path)) { - $content = file_get_contents($absolute_path); - - if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends\s+[A-Za-z_]*Jqhtml_Component/', $content)) { - $lines = explode("\n", $content); - $line_number = 1; - - foreach ($lines as $index => $line) { - if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends/', $line)) { - $line_number = $index + 1; - break; - } - } - - json_response([ - 'found' => true, - 'type' => 'jqhtml_class', - 'file' => $file_path, - 'line' => $line_number, - 'identifier' => $identifier, - ]); - } - } - } - } - } - - // Priority 6: jqhtml class methods - if ($type === 'jqhtml_class_method' && $method_name) { - $search_method = ($method_name === 'data') ? 'on_load' : $method_name; - - foreach ($files as $file_path => $file_data) { - if (str_ends_with($file_path, '.js')) { - $absolute_path = IDE_BASE_PATH . '/' . $file_path; - - if (file_exists($absolute_path)) { - $content = file_get_contents($absolute_path); - - if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends\s+[A-Za-z_]*Jqhtml_Component/', $content)) { - $lines = explode("\n", $content); - $line_number = 1; - $in_class = false; - $brace_count = 0; - - foreach ($lines as $index => $line) { - if (preg_match('/class\s+' . preg_quote($identifier, '/') . '\s+extends/', $line)) { - $in_class = true; - } - - if ($in_class) { - $brace_count += substr_count($line, '{'); - $brace_count -= substr_count($line, '}'); - - if (preg_match('/(?:async\s+)?' . preg_quote($search_method, '/') . '\s*\(/', $line)) { - $line_number = $index + 1; - break; - } - - if ($brace_count === 0 && strpos($line, '}') !== false) { - break; - } - } - } - - json_response([ - 'found' => true, - 'type' => 'jqhtml_class_method', - 'file' => $file_path, - 'line' => $line_number, - 'identifier' => $identifier, - 'method' => $method_name, - ]); - } - } - } - } - } - - // Nothing found + // Nothing found after trying all types json_response([ 'found' => false, 'error' => 'Identifier not found in manifest', 'identifier' => $identifier, - 'searched_types' => ['class', 'view', 'bundle_alias', 'jqhtml_template', 'jqhtml_class', 'jqhtml_class_method'], + 'searched_types' => $type_list, ]); } +/** + * OBSOLETE LEGACY CODE REMOVED + * ============================= + * The code below (approximately lines 1410-1685) was the old resolution system + * that tried each type individually without CSV support. It has been replaced + * by the new CSV type list system above with dedicated resolver functions. + * + * Removed sections: + * - Legacy PHP class fallback (duplicate of try_resolve_php_class) + * - Legacy view resolution (duplicate of try_resolve_view) + * - Legacy bundle alias resolution (duplicate of try_resolve_bundle_alias) + * - Legacy jqhtml template resolution (duplicate of try_resolve_jqhtml_template) + * - Legacy jqhtml class resolution (duplicate of try_resolve_jqhtml_class) + * - Legacy jqhtml method resolution (duplicate of try_resolve_jqhtml_method) + */ + + /** * Handle js_lineage service - get JavaScript class inheritance chain * This is a port of the Ide_Helper_Controller::js_lineage() method @@ -1201,6 +1399,155 @@ function handle_js_lineage_service($data) { ]); } +/** + * Handle js_is_subclass_of service - check if JS class extends another + * + * This is a direct RPC wrapper around Manifest::js_is_subclass_of() + * + * PARAMETERS: + * - subclass (required): The potential subclass name + * - superclass (required): The potential superclass name + * + * RETURNS: + * - is_subclass: boolean - true if subclass extends superclass anywhere in chain + */ +function handle_js_is_subclass_of_service($data) { + $subclass = $data['subclass'] ?? null; + $superclass = $data['superclass'] ?? null; + + if (!$subclass || !$superclass) { + json_response([ + 'error' => 'Missing required parameters: subclass and superclass', + ], 400); + } + + // Load manifest + $manifest_file = ide_framework_path('storage/rsx-build/manifest_data.php'); + if (!file_exists($manifest_file)) { + error_response('Manifest not found - run php artisan rsx:manifest:build', 500); + } + + $manifest_raw = include $manifest_file; + $manifest_data = $manifest_raw['data'] ?? $manifest_raw; + $js_classes = $manifest_data['js_classes'] ?? []; + $files = $manifest_data['files'] ?? []; + + // Implement same logic as Manifest::js_is_subclass_of + $current_class = $subclass; + $visited = []; + + while ($current_class) { + // Prevent infinite loops + if (in_array($current_class, $visited)) { + json_response(['is_subclass' => false]); + } + + $visited[] = $current_class; + + // Find the current class in the manifest + if (!isset($js_classes[$current_class])) { + json_response(['is_subclass' => false]); + } + + // Get file metadata + $file_path = $js_classes[$current_class]; + $metadata = $files[$file_path] ?? null; + + if (!$metadata || empty($metadata['extends'])) { + json_response(['is_subclass' => false]); + } + + if ($metadata['extends'] == $superclass) { + json_response(['is_subclass' => true]); + } + + // Move up the chain to the parent class + $current_class = $metadata['extends']; + } + + json_response(['is_subclass' => false]); +} + +/** + * Handle php_is_subclass_of service - check if PHP class extends another + * + * This is a direct RPC wrapper around Manifest::php_is_subclass_of() + * + * PARAMETERS: + * - subclass (required): The potential subclass name + * - superclass (required): The potential superclass name + * + * RETURNS: + * - is_subclass: boolean - true if subclass extends superclass anywhere in chain + */ +function handle_php_is_subclass_of_service($data) { + $subclass = $data['subclass'] ?? null; + $superclass = $data['superclass'] ?? null; + + if (!$subclass || !$superclass) { + json_response([ + 'error' => 'Missing required parameters: subclass and superclass', + ], 400); + } + + // Load manifest + $manifest_file = ide_framework_path('storage/rsx-build/manifest_data.php'); + if (!file_exists($manifest_file)) { + error_response('Manifest not found - run php artisan rsx:manifest:build', 500); + } + + $manifest_raw = include $manifest_file; + $manifest_data = $manifest_raw['data'] ?? $manifest_raw; + $files = $manifest_data['files'] ?? []; + + // Implement same logic as Manifest::php_is_subclass_of + $current_class = $subclass; + $visited = []; + + while ($current_class) { + // Prevent infinite loops + if (in_array($current_class, $visited)) { + json_response(['is_subclass' => false]); + } + + $visited[] = $current_class; + + // Find the current class in files + $found = false; + foreach ($files as $file_path => $file_data) { + if (isset($file_data['class']) && $file_data['class'] === $current_class) { + // Must be a PHP file + if (str_ends_with($file_path, '.php')) { + $extends = $file_data['extends'] ?? null; + + if (!$extends) { + json_response(['is_subclass' => false]); + } + + // Normalize the extends class name (strip namespace) + $extends_parts = explode('\\', $extends); + $extends_simple = end($extends_parts); + + if ($extends_simple == $superclass) { + json_response(['is_subclass' => true]); + } + + // Move up the chain + $current_class = $extends_simple; + $found = true; + break; + } + } + } + + if (!$found) { + json_response(['is_subclass' => false]); + } + } + + json_response(['is_subclass' => false]); +} + /** * Handle resolve_url service - resolve URL to controller/method * Takes a URL path and returns the controller and method that handles it @@ -1250,4 +1597,5 @@ function handle_resolve_url_service($data) { 'found' => false, 'url' => $url, ]); -} \ No newline at end of file +} + diff --git a/app/RSpade/Ide/Services/laravel_handler.php b/app/RSpade/Ide/Services/laravel_handler.php new file mode 100755 index 000000000..e265383b2 --- /dev/null +++ b/app/RSpade/Ide/Services/laravel_handler.php @@ -0,0 +1,192 @@ +make('Illuminate\Contracts\Console\Kernel')->bootstrap(); + +// JSON response helper +function json_response($data, $code = 200) { + http_response_code($code); + header('Content-Type: application/json'); + echo json_encode($data); + exit; +} + +// Error response helper +function error_response($message, $code = 400) { + json_response(['success' => false, 'error' => $message], $code); +} + +// Authentication already handled by auth.php before this file is loaded +// Retrieve auth data from constants set by auth.php +if (!defined('IDE_AUTH_PASSED')) { + error_response('Authentication check did not run - this should never happen', 500); +} + +$auth_data = json_decode(IDE_AUTH_DATA, true); + +// Parse request URI to get service +$request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); +$service_path = str_replace('/_ide/service', '', $request_uri); +$service_path = trim($service_path, '/'); + +// Get request body +$request_body = file_get_contents('php://input'); +$request_data = json_decode($request_body, true); + +// Merge GET parameters (for backward compatibility) +if ($_SERVER['REQUEST_METHOD'] === 'GET') { + $request_data = array_merge($request_data ?? [], $_GET); +} + +// Route to appropriate service handler +// This handler provides Laravel-based services (can access Manifest, models, etc.) +// Format service is handled by handler.php (standalone, no Laravel) +switch ($service_path) { + case 'manifest_build': + handle_manifest_build_service($request_data); + break; + + case 'js_is_subclass_of': + handle_js_is_subclass_of_service($request_data); + break; + + case 'php_is_subclass_of': + handle_php_is_subclass_of_service($request_data); + break; + + case 'resolve_class': + // TODO: Migrate from handler.php and refactor to use Manifest directly + error_response('Service not yet migrated to Laravel handler', 501); + break; + + case 'definition': + // TODO: Migrate from handler.php and refactor to use Manifest directly + error_response('Service not yet migrated to Laravel handler', 501); + break; + + case 'complete': + // TODO: Migrate from handler.php and refactor to use Manifest directly + error_response('Service not yet migrated to Laravel handler', 501); + break; + + case 'exec': + case 'command': + // TODO: Migrate from handler.php + error_response('Service not yet migrated to Laravel handler', 501); + break; + + // git and git/diff services are handled by handler.php (standalone, no Laravel needed) + + case 'js_lineage': + // TODO: Migrate from handler.php - or remove if js_is_subclass_of replaces it + error_response('Service not yet migrated to Laravel handler', 501); + break; + + case 'resolve_url': + // TODO: Migrate from handler.php and refactor to use Manifest directly + error_response('Service not yet migrated to Laravel handler', 501); + break; + + case 'health': + json_response(['success' => true, 'service' => 'ide-laravel', 'version' => '1.0.0']); + break; + + default: + error_response('Unknown service: ' . $service_path, 404); +} + +/** + * Handle manifest_build service - trigger incremental manifest update + * + * Calls Manifest::init() which performs incremental update if needed. + * Does NOT clear the manifest, just updates changed files. + */ +function handle_manifest_build_service($data) { + try { + // Manifest::init() will do incremental update if needed + \App\RSpade\Core\Manifest\Manifest::init(); + json_response(['success' => true]); + } catch (\Exception $e) { + // Return error but VS Code extension will suppress user notification + json_response(['success' => false, 'error' => $e->getMessage()], 500); + } +} + +/** + * Handle js_is_subclass_of service - check if JS class extends another + * + * Direct RPC wrapper around Manifest::js_is_subclass_of() + */ +function handle_js_is_subclass_of_service($data) { + $subclass = $data['subclass'] ?? null; + $superclass = $data['superclass'] ?? null; + + if (!$subclass || !$superclass) { + json_response([ + 'error' => 'Missing required parameters: subclass and superclass', + ], 400); + } + + try { + $is_subclass = \App\RSpade\Core\Manifest\Manifest::js_is_subclass_of($subclass, $superclass); + json_response(['is_subclass' => $is_subclass]); + } catch (\Exception $e) { + error_response('Manifest error: ' . $e->getMessage(), 500); + } +} + +/** + * Handle php_is_subclass_of service - check if PHP class extends another + * + * Direct RPC wrapper around Manifest::php_is_subclass_of() + */ +function handle_php_is_subclass_of_service($data) { + $subclass = $data['subclass'] ?? null; + $superclass = $data['superclass'] ?? null; + + if (!$subclass || !$superclass) { + json_response([ + 'error' => 'Missing required parameters: subclass and superclass', + ], 400); + } + + try { + $is_subclass = \App\RSpade\Core\Manifest\Manifest::php_is_subclass_of($subclass, $superclass); + json_response(['is_subclass' => $is_subclass]); + } catch (\Exception $e) { + error_response('Manifest error: ' . $e->getMessage(), 500); + } +} diff --git a/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js b/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js index d066baeec..f4573898b 100644 --- a/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js +++ b/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js @@ -27,6 +27,7 @@ exports.AutoRenameProvider = void 0; const vscode = __importStar(require("vscode")); const path = __importStar(require("path")); const fs = __importStar(require("fs")); +const ide_bridge_client_1 = require("./ide_bridge_client"); /** * Provides automatic file renaming based on RSX naming conventions * @@ -43,6 +44,7 @@ class AutoRenameProvider { this.config_enabled = false; this.workspace_root = ''; this.is_checking = false; + this.ide_bridge_client = null; this.init(); } find_rspade_root() { @@ -327,9 +329,24 @@ class AutoRenameProvider { return class_name.toLowerCase() + '.php'; } async get_suggested_js_filename(file_path, class_name, content) { - // Check if this extends Jqhtml_Component - const is_jqhtml = content.includes('extends Jqhtml_Component') || - content.match(/extends\s+[A-Za-z0-9_]+\s+extends Jqhtml_Component/); + // Check if this extends Jqhtml_Component (directly or via inheritance) + let is_jqhtml = content.includes('extends Jqhtml_Component'); + // If not directly extending, check via API + if (!is_jqhtml && content.includes('extends ')) { + // Initialize IDE bridge client if needed + if (!this.ide_bridge_client) { + const output_channel = vscode.window.createOutputChannel('RSpade Auto Rename'); + this.ide_bridge_client = new ide_bridge_client_1.IdeBridgeClient(output_channel); + } + try { + const response = await this.ide_bridge_client.js_is_subclass_of(class_name, 'Jqhtml_Component'); + is_jqhtml = response.is_subclass || false; + } + catch (error) { + // If API call fails, fall back to direct check only + console.log('[AutoRename] JS - Failed to check inheritance:', error); + } + } console.log('[AutoRename] JS - Is Jqhtml_Component:', is_jqhtml); const dir = path.dirname(file_path); const relative_dir = path.relative(this.workspace_root, dir); diff --git a/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js.map b/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js.map index 350f482dc..2bbadb9fc 100644 --- a/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js.map +++ b/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js.map @@ -1 +1 @@ -{"version":3,"file":"auto_rename_provider.js","sourceRoot":"","sources":["../src/auto_rename_provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"auto_rename_provider.js","sourceRoot":"","sources":["../src/auto_rename_provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/RSpade/resource/vscode_extension/out/definition_provider.js b/app/RSpade/resource/vscode_extension/out/definition_provider.js index c752d3a0f..272bc106d 100644 --- a/app/RSpade/resource/vscode_extension/out/definition_provider.js +++ b/app/RSpade/resource/vscode_extension/out/definition_provider.js @@ -1,4 +1,77 @@ "use strict"; +/** + * RSpade Definition Provider - "Go to Definition" for RSX Classes, Routes, and Components + * + * RESOLUTION TYPE PRIORITY MATRIX + * ================================ + * + * This provider determines what to navigate to when you click "Go to Definition" on various + * identifiers across different file types. The resolution logic uses CSV type lists sent to + * the server endpoint `/_ide/service/resolve_class?type=X,Y,Z` which tries each type in order. + * + * FILE TYPE HANDLERS & RESOLUTION RULES: + * + * 1. ROUTE PATTERNS (all files) + * Pattern: Rsx::Route('Controller') or Rsx.Route('Controller', 'method') + * Type: 'php_class' + * Reason: Routes always point to PHP controllers (server-side) + * + * 2. HREF PATTERNS (Blade, jqhtml) + * Pattern: href="/" + * Type: 'php_class' + * Reason: Resolves URL to controller, always PHP + * + * 3. JQHTML EXTENDS ATTRIBUTE (jqhtml only) + * Pattern: + * Type: 'jqhtml_class,js_class' + * Reason: Component inheritance - try jqhtml component first, then JS class + * + * 4. JQHTML $xxx ATTRIBUTES (jqhtml only) + * Pattern: $data_source=Frontend_Controller.fetch_data + * Type: 'js_class,php_class' + * Reason: Try JS class first (for components), then PHP (for controllers/models) + * + * Pattern: $handler=this.on_click + * Type: 'jqhtml_class_method' + * Special: Resolves to current component's method + * + * 5. THIS REFERENCES (jqhtml only) + * Pattern: <%= this.data.users %> + * Type: 'jqhtml_class_method' + * Reason: Always current component's method/property + * + * 6. JAVASCRIPT CLASS REFERENCES (JS, jqhtml) + * Pattern: class My_Component extends DataGrid_Abstract + * Pattern: User_Controller.fetch_all() + * Type: 'js_class,php_class' + * Reason: Try JS first (component inheritance), then PHP (controllers/models) + * Note: JS stub files (auto-generated from PHP) are client-side only, not in manifest + * + * 7. PHP CLASS REFERENCES (PHP, Blade) + * Pattern: class Contacts_DataGrid extends DataGrid_Abstract + * Pattern: use Rsx\Lib\DataGrid_QueryBuilder; + * Type: 'php_class' + * Reason: In PHP files, class references are always PHP (not JavaScript) + * + * 8. BUNDLE ALIASES (PHP only) + * Pattern: 'include' => ['jqhtml', 'frontend'] + * Type: 'bundle_alias' + * Reason: Resolves to bundle class definition + * + * 9. VIEW REFERENCES (PHP, Blade) + * Pattern: @rsx_extends('frontend.layout') + * Pattern: rsx_view('frontend.dashboard') + * Type: 'view' + * Reason: Resolves to Blade view template files + * + * METHOD RESOLUTION: + * When a pattern includes a method (e.g., Controller.method), the server attempts to find + * the specific method in the class. If the method isn't found but the class is, it returns + * the class location as a fallback. + * + * IMPORTANT: The server endpoint supports CSV type lists for priority ordering. + * Example: type='php_class,js_class' tries PHP first, then JavaScript. + */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); @@ -88,8 +161,19 @@ class RspadeDefinitionProvider { return hrefResult; } } - // Handle "this.xxx" references in .jqhtml files (highest priority for jqhtml files) + // Handle jqhtml-specific patterns if (fileName.endsWith('.jqhtml')) { + // Check for extends="ClassName" attribute + const extendsResult = await this.handleJqhtmlExtends(document, position); + if (extendsResult) { + return extendsResult; + } + // Check for $xxx=... attributes (must come before handleThisReference) + const attrResult = await this.handleJqhtmlAttribute(document, position); + if (attrResult) { + return attrResult; + } + // Handle "this.xxx" references in template expressions const thisResult = await this.handleThisReference(document, position); if (thisResult) { return thisResult; @@ -132,6 +216,9 @@ class RspadeDefinitionProvider { * - Rsx::Route('Controller', 'method') (PHP) * - Rsx.Route('Controller') (JavaScript, defaults to 'index') * - Rsx.Route('Controller', 'method') (JavaScript) + * + * Resolution: Routes always point to PHP controllers (server-side) + * Type: 'php_class' */ async handleRoutePattern(document, position) { const line = document.lineAt(position.line).text; @@ -148,13 +235,13 @@ class RspadeDefinitionProvider { // Always go to the method when clicking anywhere in Route() // This takes precedence over individual class name lookups try { - const result = await this.queryIdeHelper(controller, method, 'class'); + const result = await this.queryIdeHelper(controller, method, 'php_class'); return this.createLocationFromResult(result); } catch (error) { // If method lookup fails, try just the controller try { - const result = await this.queryIdeHelper(controller, undefined, 'class'); + const result = await this.queryIdeHelper(controller, undefined, 'php_class'); return this.createLocationFromResult(result); } catch (error2) { @@ -178,13 +265,13 @@ class RspadeDefinitionProvider { // Single parameter - default to 'index' const method = 'index'; try { - const result = await this.queryIdeHelper(controller, method, 'class'); + const result = await this.queryIdeHelper(controller, method, 'php_class'); return this.createLocationFromResult(result); } catch (error) { // If method lookup fails, try just the controller try { - const result = await this.queryIdeHelper(controller, undefined, 'class'); + const result = await this.queryIdeHelper(controller, undefined, 'php_class'); return this.createLocationFromResult(result); } catch (error2) { @@ -215,8 +302,8 @@ class RspadeDefinitionProvider { // Query IDE bridge to resolve "/" URL to route const result = await this.ide_bridge.queryUrl('/'); if (result && result.found && result.controller && result.method) { - // Resolved to controller/method - navigate to it - const phpResult = await this.queryIdeHelper(result.controller, result.method, 'class'); + // Resolved to controller/method - navigate to it (always PHP) + const phpResult = await this.queryIdeHelper(result.controller, result.method, 'php_class'); return this.createLocationFromResult(phpResult); } } @@ -227,6 +314,106 @@ class RspadeDefinitionProvider { } return undefined; } + /** + * Handle jqhtml extends="" attribute + * Detects patterns like: + * - + * + * Resolution: Try jqhtml component first, then JS class + * Type: 'jqhtml_class,js_class' + */ + async handleJqhtmlExtends(document, position) { + const line = document.lineAt(position.line).text; + // Match extends="ClassName" or extends='ClassName' + const extendsPattern = /extends\s*=\s*(['"])([A-Z][A-Za-z0-9_]*)\1/g; + let match; + while ((match = extendsPattern.exec(line)) !== null) { + const className = match[2]; + const classStart = match.index + match[0].indexOf(className); + const classEnd = classStart + className.length; + // Check if cursor is on the class name + if (position.character >= classStart && position.character < classEnd) { + try { + // Try jqhtml component first, then JS class + const result = await this.queryIdeHelper(className, undefined, 'jqhtml_class,js_class'); + return this.createLocationFromResult(result); + } + catch (error) { + console.error('Error resolving jqhtml extends:', error); + } + } + } + return undefined; + } + /** + * Handle jqhtml $xxx=... attributes + * Detects patterns like: + * - $data_source=Frontend_Controller.fetch_data + * - $on_click=this.handle_click + * + * Resolution logic: + * - If starts with "this.", resolve to current component's jqhtml class methods + * - Otherwise, resolve like JS class references: 'js_class,php_class' + */ + async handleJqhtmlAttribute(document, position) { + const line = document.lineAt(position.line).text; + // Match $attribute=Value or $attribute=this.method or $attribute=Class.method + // Pattern: $word=(this.)?(Word)(.word)? + const attrPattern = /\$[a-z_][a-z0-9_]*\s*=\s*(this\.)?([A-Z][A-Za-z0-9_]*)(?:\.([a-z_][a-z0-9_]*))?/gi; + let match; + while ((match = attrPattern.exec(line)) !== null) { + const hasThis = !!match[1]; // "this." prefix + const className = match[2]; + const methodName = match[3]; // Optional method after dot + const classStart = match.index + match[0].indexOf(className); + const classEnd = classStart + className.length; + // Check if cursor is on the class name + if (position.character >= classStart && position.character < classEnd) { + if (hasThis) { + // this.method - resolve to current component's methods + // Get the component name from the file + let componentName; + const fullText = document.getText(); + const defineMatch = fullText.match(/ part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join('_'); + } + } + if (!componentName) { + return undefined; + } + try { + // The className here is actually the method name after "this." + // We need to use the component name as the identifier + const result = await this.queryIdeHelper(componentName, className.toLowerCase(), 'jqhtml_class_method'); + return this.createLocationFromResult(result); + } + catch (error) { + console.error('Error resolving jqhtml this reference:', error); + } + } + else { + // Class.method or Class - resolve like JS class references + try { + const result = await this.queryIdeHelper(className, methodName, 'js_class,php_class'); + return this.createLocationFromResult(result); + } + catch (error) { + console.error('Error resolving jqhtml attribute class:', error); + } + } + } + } + return undefined; + } /** * Handle "this.xxx" references in .jqhtml files * Only handles patterns where cursor is on a word after "this." @@ -340,6 +527,19 @@ class RspadeDefinitionProvider { console.log('[JQHTML Component] Returning location:', component_def.uri.fsPath, 'at position', component_def.position); return new vscode.Location(component_def.uri, component_def.position); } + /** + * Handle JavaScript class references in .js and .jqhtml files + * Detects patterns like: + * - class My_Component extends DataGrid_Abstract + * - User_Controller.fetch_all() + * - await Product_Model.fetch(123) + * + * Resolution: Try JS classes first (for component inheritance), then PHP classes (for controllers/models) + * Type: 'js_class,php_class' + * + * Note: JS stub files (auto-generated from PHP) are client-side only and not in the manifest, + * so there's no conflict - the server will correctly return PHP classes when they exist. + */ async handleJavaScriptDefinition(document, position) { // Get the word at the current position const wordRange = document.getWordRangeAtPosition(position, /[A-Z][A-Za-z0-9_]*/); @@ -361,8 +561,9 @@ class RspadeDefinitionProvider { method_name = methodMatch[1]; } // Query the IDE helper endpoint + // Try JS classes first (component inheritance), then PHP (controllers/models) try { - const result = await this.queryIdeHelper(word, method_name, 'class'); + const result = await this.queryIdeHelper(word, method_name, 'js_class,php_class'); return this.createLocationFromResult(result); } catch (error) { @@ -488,7 +689,9 @@ class RspadeDefinitionProvider { // Check if this looks like an RSX class name if (word.includes('_') && /^[A-Z]/.test(word)) { try { - const result = await this.queryIdeHelper(word, undefined, 'class'); + // When resolving from PHP files, only look for PHP classes + // This prevents jumping to JavaScript files when clicking on PHP class references + const result = await this.queryIdeHelper(word, undefined, 'php_class'); return this.createLocationFromResult(result); } catch (error) { diff --git a/app/RSpade/resource/vscode_extension/out/definition_provider.js.map b/app/RSpade/resource/vscode_extension/out/definition_provider.js.map index 22fcc73fd..7ba8e27a6 100644 --- a/app/RSpade/resource/vscode_extension/out/definition_provider.js.map +++ b/app/RSpade/resource/vscode_extension/out/definition_provider.js.map @@ -1 +1 @@ -{"version":3,"file":"definition_provider.js","sourceRoot":"","sources":["../src/definition_provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"definition_provider.js","sourceRoot":"","sources":["../src/definition_provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js b/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js index d5aff7258..c5aaa4b19 100644 --- a/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js +++ b/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js @@ -5,7 +5,7 @@ * Centralized client for communicating with RSpade framework IDE helper endpoints. * * AUTO-DISCOVERY SYSTEM: - * 1. Server creates storage/rsx-ide-bridge/domain.txt on first web request + * 1. Server creates system/storage/rsx-ide-bridge/domain.txt on first web request * 2. Client reads domain.txt to discover server URL * 3. Falls back to VS Code setting: rspade.serverUrl * 4. Auto-retries with refreshed URL on connection failure @@ -128,6 +128,44 @@ class IdeBridgeClient { async queryUrl(url) { return this.request('/_ide/service/resolve_url', { url }, 'GET'); } + /** + * Check if a JavaScript class extends another class (anywhere in the inheritance chain) + * + * @param subclass The potential subclass name + * @param superclass The potential superclass name + * @returns Promise with { is_subclass: boolean } + */ + async js_is_subclass_of(subclass, superclass) { + return this.request('/_ide/service/js_is_subclass_of', { subclass, superclass }, 'GET'); + } + /** + * Check if a PHP class extends another class (anywhere in the inheritance chain) + * + * @param subclass The potential subclass name + * @param superclass The potential superclass name + * @returns Promise with { is_subclass: boolean } + */ + async php_is_subclass_of(subclass, superclass) { + return this.request('/_ide/service/php_is_subclass_of', { subclass, superclass }, 'GET'); + } + /** + * Trigger incremental manifest build + * + * Calls Manifest::init() on the server to update the manifest cache. + * Does NOT clear the manifest, just performs incremental update of changed files. + * + * @returns Promise with { success: boolean } + */ + async manifest_build() { + try { + return await this.request('/_ide/service/manifest_build', {}, 'GET'); + } + catch (error) { + // Log to console but don't throw - errors are silent to user + console.warn('[IdeBridge] Manifest build failed:', error.message); + return { success: false }; + } + } async make_request_with_retry(endpoint, data, method, retry_count) { if (retry_count > 0) { this.output_channel.appendLine(`\n--- RETRY ATTEMPT ${retry_count} ---`); @@ -146,9 +184,14 @@ class IdeBridgeClient { // Only retry once if (retry_count === 0) { const error_msg = error.message || ''; - // Session expired or signature invalid - recreate session - if (error_msg.includes('Session not found') || error_msg.includes('Invalid signature')) { - this.output_channel.appendLine('Session/signature error, recreating session...'); + // Authentication failure - recreate session + // Handles: "Session not found", "Invalid signature", "Authentication required" + // or any HTTP 401 response + if (error_msg.includes('Session not found') || + error_msg.includes('Invalid signature') || + error_msg.includes('Authentication required') || + error_msg.includes('HTTP 401')) { + this.output_channel.appendLine('Authentication failed, recreating session...'); this.auth_data = null; return this.make_request_with_retry(endpoint, data, method, retry_count + 1); } @@ -327,7 +370,7 @@ class IdeBridgeClient { this.show_detailed_error(); throw new Error('RSpade project root not found'); } - const domain_file = path.join(rspade_root, 'storage', 'rsx-ide-bridge', 'domain.txt'); + const domain_file = path.join(rspade_root, 'system', 'storage', 'rsx-ide-bridge', 'domain.txt'); this.output_channel.appendLine(`Checking for domain file: ${domain_file}`); if (await exists(domain_file)) { const domain = (await read_file(domain_file, 'utf8')).trim(); @@ -338,7 +381,7 @@ class IdeBridgeClient { // domain.txt doesn't exist yet - schedule retry this.schedule_retry(); this.show_detailed_error(); - throw new Error('RSpade: storage/rsx-ide-bridge/domain.txt not found. Please load site in browser or configure server URL.'); + throw new Error('RSpade: system/storage/rsx-ide-bridge/domain.txt not found. Please load site in browser or configure server URL.'); } async negotiate_protocol(url_or_hostname) { // Parse the input to extract hostname @@ -427,7 +470,7 @@ class IdeBridgeClient { if (!rspade_root) { return; } - const domain_file = path.join(rspade_root, 'storage', 'rsx-ide-bridge', 'domain.txt'); + const domain_file = path.join(rspade_root, 'system', 'storage', 'rsx-ide-bridge', 'domain.txt'); const domain_dir = path.dirname(domain_file); // Watch the directory (file might not exist yet) if (fs.existsSync(domain_dir)) { @@ -469,10 +512,11 @@ class IdeBridgeClient { return undefined; } for (const folder of vscode.workspace.workspaceFolders) { - // Try new structure first + // Try new structure first - check for system/app/RSpade const system_app_rspade = path.join(folder.uri.fsPath, 'system', 'app', 'RSpade'); if (fs.existsSync(system_app_rspade)) { - return path.join(folder.uri.fsPath, 'system'); + // Return project root (not system directory) + return folder.uri.fsPath; } // Fall back to legacy structure const app_rspade = path.join(folder.uri.fsPath, 'app', 'RSpade'); @@ -507,7 +551,7 @@ class IdeBridgeClient { this.output_channel.appendLine('\nThe extension needs to know your development server URL.'); this.output_channel.appendLine('\nPlease do ONE of the following:\n'); this.output_channel.appendLine('1. Load your site in a web browser'); - this.output_channel.appendLine(' This will auto-create: storage/rsx-ide-bridge/domain.txt\n'); + this.output_channel.appendLine(' This will auto-create: system/storage/rsx-ide-bridge/domain.txt\n'); this.output_channel.appendLine('2. Set VS Code setting: rspade.serverUrl'); this.output_channel.appendLine(' File → Preferences → Settings → Search "rspade"'); this.output_channel.appendLine(' Set to your development URL (e.g., https://myapp.test)\n'); diff --git a/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js.map b/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js.map index 107acb8b8..d3c16106e 100644 --- a/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js.map +++ b/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js.map @@ -1 +1 @@ -{"version":3,"file":"ide_bridge_client.js","sourceRoot":"","sources":["../src/ide_bridge_client.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ide_bridge_client.js","sourceRoot":"","sources":["../src/ide_bridge_client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js b/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js index a15ab3cfc..152f7c65e 100644 --- a/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js +++ b/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js @@ -56,20 +56,21 @@ const LIFECYCLE_DOCS = { on_destroy: 'Component destruction phase - cleanup resources. Called before component is removed. MUST be synchronous.', }; /** - * Cache for lineage lookups + * Cache for subclass checks */ -const lineage_cache = new Map(); +const subclass_cache = new Map(); /** * IDE Bridge client instance (shared across all providers) */ let ide_bridge_client = null; /** - * Get JavaScript class lineage from backend via IDE bridge + * Check if a JavaScript class extends another class (anywhere in inheritance chain) */ -async function get_js_lineage(class_name) { +async function is_subclass_of_jqhtml_component(class_name) { + const cache_key = `${class_name}:Jqhtml_Component`; // Check cache first - if (lineage_cache.has(class_name)) { - return lineage_cache.get(class_name); + if (subclass_cache.has(cache_key)) { + return subclass_cache.get(cache_key); } // Initialize IDE bridge client if needed if (!ide_bridge_client) { @@ -77,15 +78,15 @@ async function get_js_lineage(class_name) { ide_bridge_client = new ide_bridge_client_1.IdeBridgeClient(output_channel); } try { - const response = await ide_bridge_client.request('/_ide/service/js_lineage', { class: class_name }); - const lineage = response.lineage || []; + const response = await ide_bridge_client.js_is_subclass_of(class_name, 'Jqhtml_Component'); + const is_subclass = response.is_subclass || false; // Cache the result - lineage_cache.set(class_name, lineage); - return lineage; + subclass_cache.set(cache_key, is_subclass); + return is_subclass; } catch (error) { // Re-throw error to fail loud - no silent fallbacks - throw new Error(`Failed to get JS lineage for ${class_name}: ${error.message}`); + throw new Error(`Failed to check if ${class_name} extends Jqhtml_Component: ${error.message}`); } } /** @@ -169,16 +170,14 @@ class JqhtmlLifecycleSemanticTokensProvider { // Check if directly extends Jqhtml_Component const is_jqhtml = directly_extends_jqhtml(text); console.log(`[JQHTML] Directly extends Jqhtml_Component: ${is_jqhtml}`); - // If not directly extending, check lineage + // If not directly extending, check inheritance chain let extends_jqhtml = is_jqhtml; if (!is_jqhtml && has_extends_clause(text)) { const class_name = extract_class_name(text); - console.log(`[JQHTML] Checking lineage for class: ${class_name}`); + console.log(`[JQHTML] Checking inheritance for class: ${class_name}`); if (class_name) { - const lineage = await get_js_lineage(class_name); - console.log(`[JQHTML] Lineage: ${JSON.stringify(lineage)}`); - extends_jqhtml = lineage.includes('Jqhtml_Component'); - console.log(`[JQHTML] Extends Jqhtml_Component via lineage: ${extends_jqhtml}`); + extends_jqhtml = await is_subclass_of_jqhtml_component(class_name); + console.log(`[JQHTML] Extends Jqhtml_Component via inheritance: ${extends_jqhtml}`); } } // Highlight lifecycle methods (only if extends Jqhtml_Component) @@ -271,8 +270,7 @@ class JqhtmlLifecycleHoverProvider { if (!is_jqhtml) { const class_name = extract_class_name(text); if (class_name) { - const lineage = await get_js_lineage(class_name); - extends_jqhtml = lineage.includes('Jqhtml_Component'); + extends_jqhtml = await is_subclass_of_jqhtml_component(class_name); } } if (!extends_jqhtml) { @@ -346,8 +344,7 @@ class JqhtmlLifecycleDiagnosticProvider { if (!is_jqhtml) { const class_name = extract_class_name(text); if (class_name) { - const lineage = await get_js_lineage(class_name); - extends_jqhtml = lineage.includes('Jqhtml_Component'); + extends_jqhtml = await is_subclass_of_jqhtml_component(class_name); } } this.document_cache.set(cache_key, extends_jqhtml); diff --git a/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js.map b/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js.map index 0b4a7af2d..e899d14a9 100644 --- a/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js.map +++ b/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js.map @@ -1 +1 @@ -{"version":3,"file":"jqhtml_lifecycle_provider.js","sourceRoot":"","sources":["../src/jqhtml_lifecycle_provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jqhtml_lifecycle_provider.js","sourceRoot":"","sources":["../src/jqhtml_lifecycle_provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/RSpade/resource/vscode_extension/package.json b/app/RSpade/resource/vscode_extension/package.json index c31d3989c..da51742fe 100755 --- a/app/RSpade/resource/vscode_extension/package.json +++ b/app/RSpade/resource/vscode_extension/package.json @@ -2,7 +2,7 @@ "name": "rspade-framework", "displayName": "RSpade Framework Support", "description": "VS Code extension for RSpade framework with code folding, formatting, and namespace management", - "version": "0.1.182", + "version": "0.1.186", "publisher": "rspade", "engines": { "vscode": "^1.74.0" diff --git a/app/RSpade/resource/vscode_extension/rspade-framework.vsix b/app/RSpade/resource/vscode_extension/rspade-framework.vsix index 72e56f17e..e1cb322b2 100755 Binary files a/app/RSpade/resource/vscode_extension/rspade-framework.vsix and b/app/RSpade/resource/vscode_extension/rspade-framework.vsix differ diff --git a/app/RSpade/resource/vscode_extension/src/auto_rename_provider.ts b/app/RSpade/resource/vscode_extension/src/auto_rename_provider.ts index b4226d9f7..6a8e13401 100755 --- a/app/RSpade/resource/vscode_extension/src/auto_rename_provider.ts +++ b/app/RSpade/resource/vscode_extension/src/auto_rename_provider.ts @@ -1,6 +1,7 @@ import * as vscode from 'vscode'; import * as path from 'path'; import * as fs from 'fs'; +import { IdeBridgeClient } from './ide_bridge_client'; /** * Provides automatic file renaming based on RSX naming conventions @@ -17,6 +18,7 @@ export class AutoRenameProvider { private config_enabled: boolean = false; private workspace_root: string = ''; private is_checking = false; + private ide_bridge_client: IdeBridgeClient | null = null; constructor() { this.init(); @@ -354,9 +356,25 @@ export class AutoRenameProvider { } private async get_suggested_js_filename(file_path: string, class_name: string, content: string): Promise { - // Check if this extends Jqhtml_Component - const is_jqhtml = content.includes('extends Jqhtml_Component') || - content.match(/extends\s+[A-Za-z0-9_]+\s+extends Jqhtml_Component/); + // Check if this extends Jqhtml_Component (directly or via inheritance) + let is_jqhtml = content.includes('extends Jqhtml_Component'); + + // If not directly extending, check via API + if (!is_jqhtml && content.includes('extends ')) { + // Initialize IDE bridge client if needed + if (!this.ide_bridge_client) { + const output_channel = vscode.window.createOutputChannel('RSpade Auto Rename'); + this.ide_bridge_client = new IdeBridgeClient(output_channel); + } + + try { + const response = await this.ide_bridge_client.js_is_subclass_of(class_name, 'Jqhtml_Component'); + is_jqhtml = response.is_subclass || false; + } catch (error) { + // If API call fails, fall back to direct check only + console.log('[AutoRename] JS - Failed to check inheritance:', error); + } + } console.log('[AutoRename] JS - Is Jqhtml_Component:', is_jqhtml); diff --git a/app/RSpade/resource/vscode_extension/src/definition_provider.ts b/app/RSpade/resource/vscode_extension/src/definition_provider.ts index 200285f66..09ef9b3dd 100755 --- a/app/RSpade/resource/vscode_extension/src/definition_provider.ts +++ b/app/RSpade/resource/vscode_extension/src/definition_provider.ts @@ -1,3 +1,77 @@ +/** + * RSpade Definition Provider - "Go to Definition" for RSX Classes, Routes, and Components + * + * RESOLUTION TYPE PRIORITY MATRIX + * ================================ + * + * This provider determines what to navigate to when you click "Go to Definition" on various + * identifiers across different file types. The resolution logic uses CSV type lists sent to + * the server endpoint `/_ide/service/resolve_class?type=X,Y,Z` which tries each type in order. + * + * FILE TYPE HANDLERS & RESOLUTION RULES: + * + * 1. ROUTE PATTERNS (all files) + * Pattern: Rsx::Route('Controller') or Rsx.Route('Controller', 'method') + * Type: 'php_class' + * Reason: Routes always point to PHP controllers (server-side) + * + * 2. HREF PATTERNS (Blade, jqhtml) + * Pattern: href="/" + * Type: 'php_class' + * Reason: Resolves URL to controller, always PHP + * + * 3. JQHTML EXTENDS ATTRIBUTE (jqhtml only) + * Pattern: + * Type: 'jqhtml_class,js_class' + * Reason: Component inheritance - try jqhtml component first, then JS class + * + * 4. JQHTML $xxx ATTRIBUTES (jqhtml only) + * Pattern: $data_source=Frontend_Controller.fetch_data + * Type: 'js_class,php_class' + * Reason: Try JS class first (for components), then PHP (for controllers/models) + * + * Pattern: $handler=this.on_click + * Type: 'jqhtml_class_method' + * Special: Resolves to current component's method + * + * 5. THIS REFERENCES (jqhtml only) + * Pattern: <%= this.data.users %> + * Type: 'jqhtml_class_method' + * Reason: Always current component's method/property + * + * 6. JAVASCRIPT CLASS REFERENCES (JS, jqhtml) + * Pattern: class My_Component extends DataGrid_Abstract + * Pattern: User_Controller.fetch_all() + * Type: 'js_class,php_class' + * Reason: Try JS first (component inheritance), then PHP (controllers/models) + * Note: JS stub files (auto-generated from PHP) are client-side only, not in manifest + * + * 7. PHP CLASS REFERENCES (PHP, Blade) + * Pattern: class Contacts_DataGrid extends DataGrid_Abstract + * Pattern: use Rsx\Lib\DataGrid_QueryBuilder; + * Type: 'php_class' + * Reason: In PHP files, class references are always PHP (not JavaScript) + * + * 8. BUNDLE ALIASES (PHP only) + * Pattern: 'include' => ['jqhtml', 'frontend'] + * Type: 'bundle_alias' + * Reason: Resolves to bundle class definition + * + * 9. VIEW REFERENCES (PHP, Blade) + * Pattern: @rsx_extends('frontend.layout') + * Pattern: rsx_view('frontend.dashboard') + * Type: 'view' + * Reason: Resolves to Blade view template files + * + * METHOD RESOLUTION: + * When a pattern includes a method (e.g., Controller.method), the server attempts to find + * the specific method in the class. If the method isn't found but the class is, it returns + * the class location as a fallback. + * + * IMPORTANT: The server endpoint supports CSV type lists for priority ordering. + * Example: type='php_class,js_class' tries PHP first, then JavaScript. + */ + import * as vscode from 'vscode'; import * as path from 'path'; import * as fs from 'fs'; @@ -94,8 +168,21 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { } } - // Handle "this.xxx" references in .jqhtml files (highest priority for jqhtml files) + // Handle jqhtml-specific patterns if (fileName.endsWith('.jqhtml')) { + // Check for extends="ClassName" attribute + const extendsResult = await this.handleJqhtmlExtends(document, position); + if (extendsResult) { + return extendsResult; + } + + // Check for $xxx=... attributes (must come before handleThisReference) + const attrResult = await this.handleJqhtmlAttribute(document, position); + if (attrResult) { + return attrResult; + } + + // Handle "this.xxx" references in template expressions const thisResult = await this.handleThisReference(document, position); if (thisResult) { return thisResult; @@ -143,6 +230,9 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { * - Rsx::Route('Controller', 'method') (PHP) * - Rsx.Route('Controller') (JavaScript, defaults to 'index') * - Rsx.Route('Controller', 'method') (JavaScript) + * + * Resolution: Routes always point to PHP controllers (server-side) + * Type: 'php_class' */ private async handleRoutePattern( document: vscode.TextDocument, @@ -165,12 +255,12 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { // Always go to the method when clicking anywhere in Route() // This takes precedence over individual class name lookups try { - const result = await this.queryIdeHelper(controller, method, 'class'); + const result = await this.queryIdeHelper(controller, method, 'php_class'); return this.createLocationFromResult(result); } catch (error) { // If method lookup fails, try just the controller try { - const result = await this.queryIdeHelper(controller, undefined, 'class'); + const result = await this.queryIdeHelper(controller, undefined, 'php_class'); return this.createLocationFromResult(result); } catch (error2) { console.error('Error querying IDE helper for route:', error); @@ -196,12 +286,12 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { // Single parameter - default to 'index' const method = 'index'; try { - const result = await this.queryIdeHelper(controller, method, 'class'); + const result = await this.queryIdeHelper(controller, method, 'php_class'); return this.createLocationFromResult(result); } catch (error) { // If method lookup fails, try just the controller try { - const result = await this.queryIdeHelper(controller, undefined, 'class'); + const result = await this.queryIdeHelper(controller, undefined, 'php_class'); return this.createLocationFromResult(result); } catch (error2) { console.error('Error querying IDE helper for route:', error); @@ -240,8 +330,8 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { const result = await this.ide_bridge.queryUrl('/'); if (result && result.found && result.controller && result.method) { - // Resolved to controller/method - navigate to it - const phpResult = await this.queryIdeHelper(result.controller, result.method, 'class'); + // Resolved to controller/method - navigate to it (always PHP) + const phpResult = await this.queryIdeHelper(result.controller, result.method, 'php_class'); return this.createLocationFromResult(phpResult); } } catch (error) { @@ -253,6 +343,123 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { return undefined; } + /** + * Handle jqhtml extends="" attribute + * Detects patterns like: + * - + * + * Resolution: Try jqhtml component first, then JS class + * Type: 'jqhtml_class,js_class' + */ + private async handleJqhtmlExtends( + document: vscode.TextDocument, + position: vscode.Position + ): Promise { + const line = document.lineAt(position.line).text; + + // Match extends="ClassName" or extends='ClassName' + const extendsPattern = /extends\s*=\s*(['"])([A-Z][A-Za-z0-9_]*)\1/g; + let match; + + while ((match = extendsPattern.exec(line)) !== null) { + const className = match[2]; + const classStart = match.index + match[0].indexOf(className); + const classEnd = classStart + className.length; + + // Check if cursor is on the class name + if (position.character >= classStart && position.character < classEnd) { + try { + // Try jqhtml component first, then JS class + const result = await this.queryIdeHelper(className, undefined, 'jqhtml_class,js_class'); + return this.createLocationFromResult(result); + } catch (error) { + console.error('Error resolving jqhtml extends:', error); + } + } + } + + return undefined; + } + + /** + * Handle jqhtml $xxx=... attributes + * Detects patterns like: + * - $data_source=Frontend_Controller.fetch_data + * - $on_click=this.handle_click + * + * Resolution logic: + * - If starts with "this.", resolve to current component's jqhtml class methods + * - Otherwise, resolve like JS class references: 'js_class,php_class' + */ + private async handleJqhtmlAttribute( + document: vscode.TextDocument, + position: vscode.Position + ): Promise { + const line = document.lineAt(position.line).text; + + // Match $attribute=Value or $attribute=this.method or $attribute=Class.method + // Pattern: $word=(this.)?(Word)(.word)? + const attrPattern = /\$[a-z_][a-z0-9_]*\s*=\s*(this\.)?([A-Z][A-Za-z0-9_]*)(?:\.([a-z_][a-z0-9_]*))?/gi; + let match; + + while ((match = attrPattern.exec(line)) !== null) { + const hasThis = !!match[1]; // "this." prefix + const className = match[2]; + const methodName = match[3]; // Optional method after dot + + const classStart = match.index + match[0].indexOf(className); + const classEnd = classStart + className.length; + + // Check if cursor is on the class name + if (position.character >= classStart && position.character < classEnd) { + if (hasThis) { + // this.method - resolve to current component's methods + // Get the component name from the file + let componentName: string | undefined; + const fullText = document.getText(); + const defineMatch = fullText.match(/ + part.charAt(0).toUpperCase() + part.slice(1).toLowerCase() + ).join('_'); + } + } + + if (!componentName) { + return undefined; + } + + try { + // The className here is actually the method name after "this." + // We need to use the component name as the identifier + const result = await this.queryIdeHelper(componentName, className.toLowerCase(), 'jqhtml_class_method'); + return this.createLocationFromResult(result); + } catch (error) { + console.error('Error resolving jqhtml this reference:', error); + } + } else { + // Class.method or Class - resolve like JS class references + try { + const result = await this.queryIdeHelper(className, methodName, 'js_class,php_class'); + return this.createLocationFromResult(result); + } catch (error) { + console.error('Error resolving jqhtml attribute class:', error); + } + } + } + } + + return undefined; + } + /** * Handle "this.xxx" references in .jqhtml files * Only handles patterns where cursor is on a word after "this." @@ -391,6 +598,19 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { return new vscode.Location(component_def.uri, component_def.position); } + /** + * Handle JavaScript class references in .js and .jqhtml files + * Detects patterns like: + * - class My_Component extends DataGrid_Abstract + * - User_Controller.fetch_all() + * - await Product_Model.fetch(123) + * + * Resolution: Try JS classes first (for component inheritance), then PHP classes (for controllers/models) + * Type: 'js_class,php_class' + * + * Note: JS stub files (auto-generated from PHP) are client-side only and not in the manifest, + * so there's no conflict - the server will correctly return PHP classes when they exist. + */ private async handleJavaScriptDefinition( document: vscode.TextDocument, position: vscode.Position @@ -420,8 +640,9 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { } // Query the IDE helper endpoint + // Try JS classes first (component inheritance), then PHP (controllers/models) try { - const result = await this.queryIdeHelper(word, method_name, 'class'); + const result = await this.queryIdeHelper(word, method_name, 'js_class,php_class'); return this.createLocationFromResult(result); } catch (error) { console.error('Error querying IDE helper:', error); @@ -563,7 +784,9 @@ export class RspadeDefinitionProvider implements vscode.DefinitionProvider { // Check if this looks like an RSX class name if (word.includes('_') && /^[A-Z]/.test(word)) { try { - const result = await this.queryIdeHelper(word, undefined, 'class'); + // When resolving from PHP files, only look for PHP classes + // This prevents jumping to JavaScript files when clicking on PHP class references + const result = await this.queryIdeHelper(word, undefined, 'php_class'); return this.createLocationFromResult(result); } catch (error) { console.error('Error querying IDE helper for class:', error); diff --git a/app/RSpade/resource/vscode_extension/src/ide_bridge_client.ts b/app/RSpade/resource/vscode_extension/src/ide_bridge_client.ts index 1b642eab8..55f72611f 100755 --- a/app/RSpade/resource/vscode_extension/src/ide_bridge_client.ts +++ b/app/RSpade/resource/vscode_extension/src/ide_bridge_client.ts @@ -4,7 +4,7 @@ * Centralized client for communicating with RSpade framework IDE helper endpoints. * * AUTO-DISCOVERY SYSTEM: - * 1. Server creates storage/rsx-ide-bridge/domain.txt on first web request + * 1. Server creates system/storage/rsx-ide-bridge/domain.txt on first web request * 2. Client reads domain.txt to discover server URL * 3. Falls back to VS Code setting: rspade.serverUrl * 4. Auto-retries with refreshed URL on connection failure @@ -119,6 +119,46 @@ export class IdeBridgeClient { return this.request('/_ide/service/resolve_url', { url }, 'GET'); } + /** + * Check if a JavaScript class extends another class (anywhere in the inheritance chain) + * + * @param subclass The potential subclass name + * @param superclass The potential superclass name + * @returns Promise with { is_subclass: boolean } + */ + public async js_is_subclass_of(subclass: string, superclass: string): Promise<{ is_subclass: boolean }> { + return this.request('/_ide/service/js_is_subclass_of', { subclass, superclass }, 'GET'); + } + + /** + * Check if a PHP class extends another class (anywhere in the inheritance chain) + * + * @param subclass The potential subclass name + * @param superclass The potential superclass name + * @returns Promise with { is_subclass: boolean } + */ + public async php_is_subclass_of(subclass: string, superclass: string): Promise<{ is_subclass: boolean }> { + return this.request('/_ide/service/php_is_subclass_of', { subclass, superclass }, 'GET'); + } + + /** + * Trigger incremental manifest build + * + * Calls Manifest::init() on the server to update the manifest cache. + * Does NOT clear the manifest, just performs incremental update of changed files. + * + * @returns Promise with { success: boolean } + */ + public async manifest_build(): Promise<{ success: boolean }> { + try { + return await this.request('/_ide/service/manifest_build', {}, 'GET'); + } catch (error: any) { + // Log to console but don't throw - errors are silent to user + console.warn('[IdeBridge] Manifest build failed:', error.message); + return { success: false }; + } + } + private async make_request_with_retry( endpoint: string, data: any, @@ -145,9 +185,14 @@ export class IdeBridgeClient { if (retry_count === 0) { const error_msg = error.message || ''; - // Session expired or signature invalid - recreate session - if (error_msg.includes('Session not found') || error_msg.includes('Invalid signature')) { - this.output_channel.appendLine('Session/signature error, recreating session...'); + // Authentication failure - recreate session + // Handles: "Session not found", "Invalid signature", "Authentication required" + // or any HTTP 401 response + if (error_msg.includes('Session not found') || + error_msg.includes('Invalid signature') || + error_msg.includes('Authentication required') || + error_msg.includes('HTTP 401')) { + this.output_channel.appendLine('Authentication failed, recreating session...'); this.auth_data = null; return this.make_request_with_retry(endpoint, data, method, retry_count + 1); } @@ -367,7 +412,7 @@ export class IdeBridgeClient { throw new Error('RSpade project root not found'); } - const domain_file = path.join(rspade_root, 'storage', 'rsx-ide-bridge', 'domain.txt'); + const domain_file = path.join(rspade_root, 'system', 'storage', 'rsx-ide-bridge', 'domain.txt'); this.output_channel.appendLine(`Checking for domain file: ${domain_file}`); if (await exists(domain_file)) { @@ -380,7 +425,7 @@ export class IdeBridgeClient { // domain.txt doesn't exist yet - schedule retry this.schedule_retry(); this.show_detailed_error(); - throw new Error('RSpade: storage/rsx-ide-bridge/domain.txt not found. Please load site in browser or configure server URL.'); + throw new Error('RSpade: system/storage/rsx-ide-bridge/domain.txt not found. Please load site in browser or configure server URL.'); } private async negotiate_protocol(url_or_hostname: string): Promise { @@ -483,7 +528,7 @@ export class IdeBridgeClient { return; } - const domain_file = path.join(rspade_root, 'storage', 'rsx-ide-bridge', 'domain.txt'); + const domain_file = path.join(rspade_root, 'system', 'storage', 'rsx-ide-bridge', 'domain.txt'); const domain_dir = path.dirname(domain_file); // Watch the directory (file might not exist yet) @@ -531,10 +576,11 @@ export class IdeBridgeClient { } for (const folder of vscode.workspace.workspaceFolders) { - // Try new structure first + // Try new structure first - check for system/app/RSpade const system_app_rspade = path.join(folder.uri.fsPath, 'system', 'app', 'RSpade'); if (fs.existsSync(system_app_rspade)) { - return path.join(folder.uri.fsPath, 'system'); + // Return project root (not system directory) + return folder.uri.fsPath; } // Fall back to legacy structure @@ -576,7 +622,7 @@ export class IdeBridgeClient { this.output_channel.appendLine('\nThe extension needs to know your development server URL.'); this.output_channel.appendLine('\nPlease do ONE of the following:\n'); this.output_channel.appendLine('1. Load your site in a web browser'); - this.output_channel.appendLine(' This will auto-create: storage/rsx-ide-bridge/domain.txt\n'); + this.output_channel.appendLine(' This will auto-create: system/storage/rsx-ide-bridge/domain.txt\n'); this.output_channel.appendLine('2. Set VS Code setting: rspade.serverUrl'); this.output_channel.appendLine(' File → Preferences → Settings → Search "rspade"'); this.output_channel.appendLine(' Set to your development URL (e.g., https://myapp.test)\n'); diff --git a/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts b/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts index 89b4c74c5..1f408c4de 100755 --- a/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts +++ b/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts @@ -34,9 +34,9 @@ const LIFECYCLE_DOCS: { [key: string]: string } = { }; /** - * Cache for lineage lookups + * Cache for subclass checks */ -const lineage_cache = new Map(); +const subclass_cache = new Map(); /** * IDE Bridge client instance (shared across all providers) @@ -44,12 +44,14 @@ const lineage_cache = new Map(); let ide_bridge_client: IdeBridgeClient | null = null; /** - * Get JavaScript class lineage from backend via IDE bridge + * Check if a JavaScript class extends another class (anywhere in inheritance chain) */ -async function get_js_lineage(class_name: string): Promise { +async function is_subclass_of_jqhtml_component(class_name: string): Promise { + const cache_key = `${class_name}:Jqhtml_Component`; + // Check cache first - if (lineage_cache.has(class_name)) { - return lineage_cache.get(class_name)!; + if (subclass_cache.has(cache_key)) { + return subclass_cache.get(cache_key)!; } // Initialize IDE bridge client if needed @@ -59,16 +61,16 @@ async function get_js_lineage(class_name: string): Promise { } try { - const response = await ide_bridge_client.request('/_ide/service/js_lineage', { class: class_name }); - const lineage = response.lineage || []; + const response = await ide_bridge_client.js_is_subclass_of(class_name, 'Jqhtml_Component'); + const is_subclass = response.is_subclass || false; // Cache the result - lineage_cache.set(class_name, lineage); + subclass_cache.set(cache_key, is_subclass); - return lineage; + return is_subclass; } catch (error: any) { // Re-throw error to fail loud - no silent fallbacks - throw new Error(`Failed to get JS lineage for ${class_name}: ${error.message}`); + throw new Error(`Failed to check if ${class_name} extends Jqhtml_Component: ${error.message}`); } } @@ -164,17 +166,15 @@ export class JqhtmlLifecycleSemanticTokensProvider implements vscode.DocumentSem const is_jqhtml = directly_extends_jqhtml(text); console.log(`[JQHTML] Directly extends Jqhtml_Component: ${is_jqhtml}`); - // If not directly extending, check lineage + // If not directly extending, check inheritance chain let extends_jqhtml = is_jqhtml; if (!is_jqhtml && has_extends_clause(text)) { const class_name = extract_class_name(text); - console.log(`[JQHTML] Checking lineage for class: ${class_name}`); + console.log(`[JQHTML] Checking inheritance for class: ${class_name}`); if (class_name) { - const lineage = await get_js_lineage(class_name); - console.log(`[JQHTML] Lineage: ${JSON.stringify(lineage)}`); - extends_jqhtml = lineage.includes('Jqhtml_Component'); - console.log(`[JQHTML] Extends Jqhtml_Component via lineage: ${extends_jqhtml}`); + extends_jqhtml = await is_subclass_of_jqhtml_component(class_name); + console.log(`[JQHTML] Extends Jqhtml_Component via inheritance: ${extends_jqhtml}`); } } @@ -286,8 +286,7 @@ export class JqhtmlLifecycleHoverProvider implements vscode.HoverProvider { if (!is_jqhtml) { const class_name = extract_class_name(text); if (class_name) { - const lineage = await get_js_lineage(class_name); - extends_jqhtml = lineage.includes('Jqhtml_Component'); + extends_jqhtml = await is_subclass_of_jqhtml_component(class_name); } } @@ -385,8 +384,7 @@ export class JqhtmlLifecycleDiagnosticProvider { if (!is_jqhtml) { const class_name = extract_class_name(text); if (class_name) { - const lineage = await get_js_lineage(class_name); - extends_jqhtml = lineage.includes('Jqhtml_Component'); + extends_jqhtml = await is_subclass_of_jqhtml_component(class_name); } } diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 9b9e274b7..fa4a44fd4 100755 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,5 +1,5 @@ { - "name": "html", + "name": "system", "lockfileVersion": 3, "requires": true, "packages": { @@ -2227,9 +2227,9 @@ } }, "node_modules/@jqhtml/core": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.137.tgz", - "integrity": "sha512-GViirzsF3VfYe7boTyeP35VxhrWSkerbghnzrPwdag+9LrDKqjc76tDCP8XtO7ddgVlm/VDZpvUQQUXEd57eDA==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.142.tgz", + "integrity": "sha512-8X1p+z82Y1sRm6pp7tfuakfN43xx0BgIEXf2Wz/C6mTSn8pygmOREE8Leodwdy9EQtZXif8N8Qmtz50s7X4wjA==", "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^16.0.1", @@ -2253,9 +2253,9 @@ } }, "node_modules/@jqhtml/parser": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.137.tgz", - "integrity": "sha512-DC1GlzZvMhlqxJDNjJ184r+h21W+HhS6GRcG2W/Eo75LnmehakMG9yO4WHeZ9809isl/7+fEwZbk2jM+FD3KVA==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.142.tgz", + "integrity": "sha512-ATn7qrZPWNi/G2WkDUchicGyCTqDLKFYjfE69ckie5S+zRS8zTAUJSS60N+LzUdwgM5N9v8V7C//6P85fggYuw==", "license": "MIT", "dependencies": { "@types/jest": "^29.5.11", @@ -2273,9 +2273,9 @@ } }, "node_modules/@jqhtml/router": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.137.tgz", - "integrity": "sha512-ybiQ6SRZxbYDPwrOML99T9gWJqNM2w43QnptJwWMg+E2zvAr48KpVJhcNJlsOlqGykME5PJOvxioMdMlfaEG5A==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.142.tgz", + "integrity": "sha512-x9gCid0jvkMWFKSbFEcFl6iygFGiDtYbZBai5LOBipUMXUlQw13rJv+ZBe1W+SM2PorUTuJXoTY6O+OxDJS/1g==", "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^16.0.1", @@ -2293,21 +2293,21 @@ } }, "node_modules/@jqhtml/vscode-extension": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.137.tgz", - "integrity": "sha512-9xM9/JqXKestgeivCCWfr49RD0D279ZG/K/PxU2u4kc+mE1kEwpkmVnN4QGGw4rzXUjPFdIoG3ogaMY2gRjFew==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.142.tgz", + "integrity": "sha512-3A8dOjpK01SgxMC3rTjgHNgRvQLKHdBnGFlWCu2Qk1f70DqTHGGwPUbWHNEQcpQw3LhjINYF8WQ8yu/Dkl9Qnw==", "license": "MIT", "engines": { "vscode": "^1.74.0" } }, "node_modules/@jqhtml/webpack-loader": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.137.tgz", - "integrity": "sha512-kSWsTnGa5USX8HKFYdAhfdAD5l/UiIwBJXmUZeLYaLSZvCePBEMfrk9rKbPtfkpNrbTnHhipF6DZmSOElmoPAg==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.142.tgz", + "integrity": "sha512-SUTREV2M1bUJb5s9h4b4q6cTDAl6EBtbPk7J2hMFpy7XwKpv68DVI2lCAOVOwjM1xQXDiTGOM+0gwWqwzEqE+w==", "license": "MIT", "dependencies": { - "@jqhtml/parser": "2.2.137", + "@jqhtml/parser": "2.2.142", "@types/loader-utils": "^2.0.6", "@types/node": "^20.0.0", "@types/webpack": "^5.28.5", diff --git a/node_modules/@jqhtml/core/dist/index.cjs b/node_modules/@jqhtml/core/dist/index.cjs index 95d009a26..50225fe15 100755 --- a/node_modules/@jqhtml/core/dist/index.cjs +++ b/node_modules/@jqhtml/core/dist/index.cjs @@ -2728,7 +2728,7 @@ function init(jQuery) { } } // Version - will be replaced during build with actual version from package.json -const version = '2.2.137'; +const version = '2.2.142'; // Default export with all functionality const jqhtml = { // Core diff --git a/node_modules/@jqhtml/core/dist/index.js b/node_modules/@jqhtml/core/dist/index.js index e4c49fedd..f2a3715de 100755 --- a/node_modules/@jqhtml/core/dist/index.js +++ b/node_modules/@jqhtml/core/dist/index.js @@ -2724,7 +2724,7 @@ function init(jQuery) { } } // Version - will be replaced during build with actual version from package.json -const version = '2.2.137'; +const version = '2.2.142'; // Default export with all functionality const jqhtml = { // Core diff --git a/node_modules/@jqhtml/core/dist/jqhtml-core.esm.js b/node_modules/@jqhtml/core/dist/jqhtml-core.esm.js index df5be8d3c..a72b6fbe5 100755 --- a/node_modules/@jqhtml/core/dist/jqhtml-core.esm.js +++ b/node_modules/@jqhtml/core/dist/jqhtml-core.esm.js @@ -1,5 +1,5 @@ /** - * JQHTML Core v2.2.137 + * JQHTML Core v2.2.142 * (c) 2025 JQHTML Team * Released under the MIT License */ @@ -2729,7 +2729,7 @@ function init(jQuery) { } } // Version - will be replaced during build with actual version from package.json -const version = '2.2.137'; +const version = '2.2.142'; // Default export with all functionality const jqhtml = { // Core diff --git a/node_modules/@jqhtml/core/package.json b/node_modules/@jqhtml/core/package.json index b35a13a6a..a938b1a59 100755 --- a/node_modules/@jqhtml/core/package.json +++ b/node_modules/@jqhtml/core/package.json @@ -1,6 +1,6 @@ { "name": "@jqhtml/core", - "version": "2.2.137", + "version": "2.2.142", "description": "Core runtime library for JQHTML", "type": "module", "main": "./dist/index.js", diff --git a/node_modules/@jqhtml/parser/dist/codegen.js b/node_modules/@jqhtml/parser/dist/codegen.js index ae8314865..aaed7e3e6 100755 --- a/node_modules/@jqhtml/parser/dist/codegen.js +++ b/node_modules/@jqhtml/parser/dist/codegen.js @@ -1201,7 +1201,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.2.137',\n`; // Version will be replaced during build + code += ` _jqhtml_version: '2.2.142',\n`; // Version will be replaced during build code += ` name: '${name}',\n`; code += ` tag: '${component.tagName}',\n`; code += ` defaultAttributes: ${this.serializeAttributeObject(component.defaultAttributes)},\n`; diff --git a/node_modules/@jqhtml/parser/package.json b/node_modules/@jqhtml/parser/package.json index 942c85a35..7049268da 100755 --- a/node_modules/@jqhtml/parser/package.json +++ b/node_modules/@jqhtml/parser/package.json @@ -1,6 +1,6 @@ { "name": "@jqhtml/parser", - "version": "2.2.137", + "version": "2.2.142", "description": "JQHTML template parser - converts templates to JavaScript", "type": "module", "main": "dist/index.js", diff --git a/node_modules/@jqhtml/router/dist/jqhtml-router.esm.js b/node_modules/@jqhtml/router/dist/jqhtml-router.esm.js index e789aaeb2..e7d6942f9 100755 --- a/node_modules/@jqhtml/router/dist/jqhtml-router.esm.js +++ b/node_modules/@jqhtml/router/dist/jqhtml-router.esm.js @@ -1,5 +1,5 @@ /** - * JQHTML Router v2.2.137 + * JQHTML Router v2.2.142 * (c) 2025 JQHTML Team * Released under the MIT License */ diff --git a/node_modules/@jqhtml/router/package.json b/node_modules/@jqhtml/router/package.json index a037c8f36..1ba464e76 100755 --- a/node_modules/@jqhtml/router/package.json +++ b/node_modules/@jqhtml/router/package.json @@ -1,6 +1,6 @@ { "name": "@jqhtml/router", - "version": "2.2.137", + "version": "2.2.142", "description": "Client-side routing for JQHTML applications", "type": "module", "main": "dist/index.js", diff --git a/node_modules/@jqhtml/vscode-extension/.version b/node_modules/@jqhtml/vscode-extension/.version index 2a526afe1..c303fe247 100755 --- a/node_modules/@jqhtml/vscode-extension/.version +++ b/node_modules/@jqhtml/vscode-extension/.version @@ -1 +1 @@ -2.2.137 +2.2.142 diff --git a/node_modules/@jqhtml/vscode-extension/jqhtml-vscode-extension-2.2.137.vsix b/node_modules/@jqhtml/vscode-extension/jqhtml-vscode-extension-2.2.137.vsix deleted file mode 100755 index b1a767a8a..000000000 Binary files a/node_modules/@jqhtml/vscode-extension/jqhtml-vscode-extension-2.2.137.vsix and /dev/null differ diff --git a/node_modules/@jqhtml/vscode-extension/jqhtml-vscode-extension-2.2.142.vsix b/node_modules/@jqhtml/vscode-extension/jqhtml-vscode-extension-2.2.142.vsix new file mode 100755 index 000000000..ff23fde28 Binary files /dev/null and b/node_modules/@jqhtml/vscode-extension/jqhtml-vscode-extension-2.2.142.vsix differ diff --git a/node_modules/@jqhtml/vscode-extension/out/componentIndex.js b/node_modules/@jqhtml/vscode-extension/out/componentIndex.js index a3885a4c8..0bd4ab6a7 100755 --- a/node_modules/@jqhtml/vscode-extension/out/componentIndex.js +++ b/node_modules/@jqhtml/vscode-extension/out/componentIndex.js @@ -44,6 +44,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge Object.defineProperty(exports, "__esModule", { value: true }); exports.JqhtmlComponentIndex = void 0; const vscode = __importStar(require("vscode")); +const path = __importStar(require("path")); /** * JQHTML Component Indexer * @@ -97,6 +98,11 @@ class JqhtmlComponentIndex { const files = yield vscode.workspace.findFiles(new vscode.RelativePattern(folder, '**/*.jqhtml'), new vscode.RelativePattern(folder, '**/node_modules/**')); allFiles.push(...files); } + // Debug: Log all discovered files + console.log(`JQHTML: Found ${allFiles.length} .jqhtml files to index:`); + allFiles.forEach(uri => { + console.log(` - ${uri.fsPath}`); + }); // Index each file const promises = allFiles.map(uri => this.indexFile(uri)); yield Promise.all(promises); @@ -155,8 +161,8 @@ class JqhtmlComponentIndex { position: new vscode.Position(lineNum, charPos), line: line.trim() }); - // Debug: Log each component as it's indexed (commented out - too verbose) - // console.log(`JQHTML Index: Indexed "${componentName}" from ${path.basename(uri.fsPath)}:${lineNum + 1}`); + // Debug: Log each component as it's indexed + console.log(`JQHTML Index: Indexed "${componentName}" from ${path.basename(uri.fsPath)}:${lineNum + 1}`); } } } diff --git a/node_modules/@jqhtml/vscode-extension/out/componentIndex.js.map b/node_modules/@jqhtml/vscode-extension/out/componentIndex.js.map index 581ca6013..15e8f457e 100755 --- a/node_modules/@jqhtml/vscode-extension/out/componentIndex.js.map +++ b/node_modules/@jqhtml/vscode-extension/out/componentIndex.js.map @@ -1 +1 @@ -{"version":3,"file":"componentIndex.js","sourceRoot":"","sources":["../src/componentIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAcjC;;;;;GAKG;AACH,MAAa,oBAAoB;IAK7B;QAJQ,iBAAY,GAAqC,IAAI,GAAG,EAAE,CAAC;QAK/D,yBAAyB;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,qCAAqC;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACpB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAE3E,uDAAuD;QACvD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACU,gBAAgB;;YACzB,uCAAuC;YACvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,YAAY,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,YAAY,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAClC,CAAC;KAAA;IAEa,iBAAiB;;YAC3B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAE1B,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YAED,2EAA2E;YAC3E,MAAM,QAAQ,GAAiB,EAAE,CAAC;YAClC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAC1C,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,EACjD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC3D,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,kBAAkB;YAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,YAAY,CAAC,IAAI,oBAAoB,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;QACtG,CAAC;KAAA;IAED;;OAEG;IACW,SAAS,CAAC,GAAe;;YACnC,IAAI,CAAC;gBACD,oCAAoC;gBACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAE9B,oBAAoB;gBACpB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE/B,iCAAiC;gBACjC,8EAA8E;gBAC9E,EAAE;gBACF,sBAAsB;gBACtB,4DAA4D;gBAC5D,0DAA0D;gBAC1D,4FAA4F;gBAC5F,2CAA2C;gBAC3C,EAAE;gBACF,0CAA0C;gBAC1C,uEAAuE;gBACvE,wDAAwD;gBACxD,wBAAwB;gBACxB,2EAA2E;gBAC3E,qEAAqE;gBACrE,kDAAkD;gBAClD,qDAAqD;gBACrD,kEAAkE;gBAClE,EAAE;gBACF,mBAAmB;gBACnB,sEAAsE;gBACtE,uEAAuE;gBACvE,qDAAqD;gBACrD,gDAAgD;gBAChD,MAAM,aAAa,GAAG,4CAA4C,CAAC;gBAEnE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;oBACtD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC5B,IAAI,KAAK,CAAC;oBAEV,4BAA4B;oBAC5B,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;oBAE5B,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;wBACjD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;wBAEhD,6BAA6B;wBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE;4BACjC,IAAI,EAAE,aAAa;4BACnB,GAAG,EAAE,GAAG;4BACR,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;4BAC/C,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;yBACpB,CAAC,CAAC;wBAEH,0EAA0E;wBAC1E,4GAA4G;oBAChH,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACK,mBAAmB,CAAC,GAAe;QACvC,6CAA6C;QAC7C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACpC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wDAAwD;QACxD,6BAA6B;QAC7B,8GAA8G;QAC9G,+EAA+E;QAC/E,IAAI;QAEJ,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,uGAAuG;IAC3G,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,oBAAoB,CAAC,OAAe;QAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,OAAO;QACV,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACJ;AA7LD,oDA6LC"} \ No newline at end of file +{"version":3,"file":"componentIndex.js","sourceRoot":"","sources":["../src/componentIndex.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js b/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js index 6da477dfe..62854087d 100755 --- a/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js +++ b/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js @@ -69,6 +69,19 @@ class JqhtmlDefinitionProvider { console.log(`JQHTML: In $ attribute context:`, dollarAttrResult); return yield this.handleDollarAttributeDefinition(document, position, dollarAttrResult); } + // IMPORTANT: Check for slot syntax BEFORE extracting word + // This prevents slot names from being treated as component names + // Check if we're in a slot tag by looking for <# or or - if (beforeWord.match(/<#\s*$/) || beforeWord.match(/<\/#\s*$/)) { - // This is a slot, not a component - return undefined; - } if (!isInTagContext) { // Also check if cursor is inside the tag name (not in attributes) const afterWord = line.substring(wordRange.end.character); @@ -483,6 +491,171 @@ class JqhtmlDefinitionProvider { } return undefined; } + /** + * Handle goto definition for slot tags (<#SlotName>) + * + * IMPLEMENTATION SCOPE (Narrow, for now): + * - Handles direct extends="ComponentName" on tags + * - Handles direct invocation tags + * - Does NOT traverse full inheritance chain (TODO: add later) + * - Just looks for direct parent component + * + * LOGIC: + * 1. Extract slot name from cursor position + * 2. Find parent component: + * - If inside , use Parent + * - If inside invocation, use Parent + * 3. Find Parent.jqhtml file + * 4. Search for <%= content('SlotName') %> + * 5. Navigate to that line + */ + handleSlotDefinition(document, position, slotName) { + return __awaiter(this, void 0, void 0, function* () { + console.log(`JQHTML: Handling slot definition for: ${slotName}`); + // Find the parent component that defines this slot + const parentComponentName = this.findParentComponentForSlot(document, position); + if (!parentComponentName) { + console.log(`JQHTML: Could not determine parent component for slot`); + return undefined; + } + console.log(`JQHTML: Parent component for slot: ${parentComponentName}`); + // Debug: Show what's in the index + const allComponents = this.componentIndex.getAllComponentNames(); + console.log(`JQHTML: Index currently contains ${allComponents.length} components:`, allComponents.join(', ')); + // Find the parent component definition file + const parentComponent = this.componentIndex.findComponent(parentComponentName); + if (!parentComponent) { + console.log(`JQHTML: Parent component '${parentComponentName}' not found in index`); + return undefined; + } + console.log(`JQHTML: Found parent component file: ${parentComponent.uri.fsPath}`); + // Search for content('SlotName') in the parent component file + const slotUsageLocation = yield this.findSlotUsageInTemplate(parentComponent.uri, slotName); + if (!slotUsageLocation) { + console.log(`JQHTML: Slot usage content('${slotName}') not found in ${parentComponent.uri.fsPath}`); + return undefined; + } + console.log(`JQHTML: Found slot usage at line ${slotUsageLocation.range.start.line + 1}`); + return slotUsageLocation; + }); + } + /** + * Find the parent component that should define this slot + * + * Looks for either: + * 1. - check if slots are top-level + * 2. - find enclosing component invocation tag + */ + findParentComponentForSlot(document, position) { + const currentLine = position.line; + // Strategy 1: Look for where slots are at top level + // Scan upward to find the Define tag + let defineTagStartLine = -1; + for (let i = currentLine; i >= 0; i--) { + const lineText = document.lineAt(i).text; + // Check if we found a = 0) { + // Collect all lines from Define tag start until we find the closing > + let tagContent = ''; + for (let i = defineTagStartLine; i < document.lineCount; i++) { + const lineText = document.lineAt(i).text; + tagContent += lineText + ' '; + // Stop when we find the closing > of the opening tag + if (lineText.includes('>')) { + break; + } + } + // Now check if this multi-line tag has extends attribute + const extendsMatch = tagContent.match(/\bextends\s*=\s*["']([A-Z][A-Za-z0-9_]*)["']/); + if (extendsMatch) { + const parentComponentName = extendsMatch[1]; + console.log(`JQHTML: Found extends="${parentComponentName}" in Define tag`); + // TODO: Verify that the slot is at top level (not nested inside other tags) + // For now, we assume if we found a Define with extends, that's the parent + return parentComponentName; + } + else { + console.log(`JQHTML: Define tag found but no extends attribute`); + } + } + // Strategy 2: Look for enclosing invocation tag + // Scan upward to find opening tag + let tagStack = []; + for (let i = currentLine; i >= 0; i--) { + const lineText = document.lineAt(i).text; + // Find all component tags on this line (both opening and closing) + // Component tags: or + const tagRegex = /<\/?([A-Z][A-Za-z0-9_]*)[^>]*>/g; + let match; + // Collect all tags on this line + const tagsOnLine = []; + while ((match = tagRegex.exec(lineText)) !== null) { + const fullMatch = match[0]; + const componentName = match[1]; + const isClosing = fullMatch.startsWith('= 0; j--) { + const { tag, isClosing } = tagsOnLine[j]; + if (isClosing) { + // Closing tag - add to stack + tagStack.push(tag); + } + else { + // Opening tag + if (tagStack.length > 0 && tagStack[tagStack.length - 1] === tag) { + // This opening tag matches the last closing tag on stack - they cancel out + tagStack.pop(); + } + else { + // This is an unclosed opening tag - this is our parent! + console.log(`JQHTML: Found enclosing component invocation: <${tag}>`); + return tag; + } + } + } + } + console.log(`JQHTML: No parent component found for slot`); + return undefined; + } + /** + * Search for <%= content('SlotName') %> in a template file + */ + findSlotUsageInTemplate(templateUri, slotName) { + return __awaiter(this, void 0, void 0, function* () { + try { + const templateDoc = yield vscode.workspace.openTextDocument(templateUri); + const templateText = templateDoc.getText(); + // Search for content('SlotName') or content("SlotName") + // Also handle optional whitespace + const contentRegex = new RegExp(`<%=\\s*content\\s*\\(\\s*['"]${slotName}['"]\\s*\\)`, 'g'); + const match = contentRegex.exec(templateText); + if (match) { + const matchPosition = templateDoc.positionAt(match.index); + console.log(`JQHTML: Found content('${slotName}') at line ${matchPosition.line + 1}`); + // Return location pointing to the slot name within content('SlotName') + const slotNameStartIndex = match.index + match[0].indexOf(slotName); + const slotNamePosition = templateDoc.positionAt(slotNameStartIndex); + const slotNameRange = new vscode.Range(slotNamePosition, new vscode.Position(slotNamePosition.line, slotNamePosition.character + slotName.length)); + return new vscode.Location(templateUri, slotNameRange); + } + console.log(`JQHTML: No content('${slotName}') found in template`); + return undefined; + } + catch (error) { + console.error(`JQHTML: Error reading template file:`, error); + return undefined; + } + }); + } } exports.JqhtmlDefinitionProvider = JqhtmlDefinitionProvider; /** diff --git a/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js.map b/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js.map index 576dd596d..a2672e34a 100755 --- a/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js.map +++ b/node_modules/@jqhtml/vscode-extension/out/definitionProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"definitionProvider.js","sourceRoot":"","sources":["../src/definitionProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"definitionProvider.js","sourceRoot":"","sources":["../src/definitionProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,qDAAwD;AAExD;;;;;;GAMG;AACH,MAAa,wBAAwB;IACjC,YAAoB,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;IAAG,CAAC;IAE/C,iBAAiB,CAC1B,QAA6B,EAC7B,QAAyB,EACzB,KAA+B;;YAE/B,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,GAAG,CAAC,eAAe,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YAEpF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;YAE5C,sDAAsD;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpF,IAAI,gBAAgB,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;gBACjE,OAAO,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAC5F,CAAC;YAED,0DAA0D;YAC1D,iEAAiE;YACjE,sEAAsE;YACtE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,YAAY,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBACpD,iEAAiE;gBACjE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACjE,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,8CAA8C,QAAQ,EAAE,CAAC,CAAC;oBACtE,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACzE,CAAC;YACL,CAAC;YAED,sCAAsC;YACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;gBACvD,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;YAEjD,iDAAiD;YACjD,IAAI,CAAC,qCAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,6DAA6D,CAAC,CAAC;gBAC3F,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,2CAA2C;YAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEpD,6DAA6D;YAC7D,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4DAA4D,CAAC,CAAC;gBAC1F,mEAAmE;gBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,sBAAsB,CAAC,CAAC;oBAC9D,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,CAAC;oBACD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,oCAAoC,CAAC,CAAC;oBAC5E,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;oBACvC,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,QAAQ,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtH,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxE,CAAC;YAED,yCAAyC;YACzC,uEAAuE;YACvE,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,iEAAiE;YACjE,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChE,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;YAED,mEAAmE;YACnE,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpE,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,kEAAkE;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAE1D,oEAAoE;gBACpE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpF,yCAAyC;oBACzC,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjD,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAEpD,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;wBACjC,cAAc,GAAG,IAAI,CAAC;oBAC1B,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,gCAAgC,CAAC,CAAC;gBAC9D,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,6CAA6C,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,MAAM,aAAa,CAAC,CAAC;YAC3G,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhG,qCAAqC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,+BAA+B;gBAC/B,EAAE;gBACF,sBAAsB;gBACtB,yEAAyE;gBACzE,wEAAwE;gBACxE,2CAA2C;gBAC3C,kDAAkD;gBAClD,6DAA6D;gBAC7D,EAAE;gBACF,oBAAoB;gBACpB,uEAAuE;gBACvE,yEAAyE;gBACzE,+DAA+D;gBAC/D,qDAAqD;gBACrD,EAAE;gBACF,+BAA+B;gBAC/B,uEAAuE;gBACvE,sEAAsE;gBACtE,6BAA6B;gBAC7B,EAAE;gBACF,yBAAyB;gBACzB,wDAAwD;gBACxD,qDAAqD;gBACrD,0EAA0E;gBAC1E,6DAA6D;gBAC7D,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,sBAAsB,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;gBAClG,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,6DAA6D;YAC7D,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,+DAA+D;gBAC/D,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,uCAAuC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxG,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;gBACvD,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,sBAAsB;gBAC9D,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,QAAQ,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;YACtH,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YAEtE,kDAAkD;YAClD,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxE,CAAC;KAAA;IAED;;;OAGG;IACK,2BAA2B,CAAC,QAA6B,EAAE,QAAyB,EAAE,IAAY;;QAGtG,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,8DAA8D;QAC9D,uDAAuD;QACvD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACrH,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,6DAA6D;QAC7D,MAAM,sBAAsB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,qBAAqB,GAAG,CAAA,MAAA,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;QAChF,MAAM,cAAc,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,yCAAyC,cAAc,GAAG,CAAC,CAAC;QAExE,gBAAgB;QAChB,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3C,4DAA4D;QAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC;QACjE,MAAM,wBAAwB,GAAG,IAAI,GAAG,mBAAmB,CAAC;QAE5D,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,IAAI,wBAAwB,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;gBACxD,mBAAmB,GAAG,CAAC,CAAC;gBACxB,MAAM;YACV,CAAC;YACD,SAAS,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,iBAAiB;QACrD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,mBAAmB,MAAM,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEpG,iEAAiE;QACjE,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;gBAC5E,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,SAAS,GAAG,mBAAmB,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;YAC5B,sCAAsC;YACtC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,2CAA2C;YAC3C,OAAO;gBACH,SAAS;gBACT,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC;gBACzC,cAAc,EAAE,KAAK;aACxB,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACK,6BAA6B,CAAC,QAA6B,EAAE,WAAmB;QACpF,oEAAoE;QACpE,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACnE,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACW,+BAA+B,CACzC,QAA6B,EAC7B,QAAyB,EACzB,OAA4E;;YAG5E,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE/H,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC;YAEnD,kEAAkE;YAClE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC1D,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC;gBACrB,CAAC;YACL,CAAC;YAED,wCAAwC;YACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAChB,OAAO,aAAa,CAAC;YACzB,CAAC;YAED,mFAAmF;YACnF,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAClF,IAAI,gBAAgB,EAAE,CAAC;oBACnB,OAAO,gBAAgB,CAAC;gBAC5B,CAAC;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3H,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;IAED;;;;;;;;;;;;;;OAcG;IACW,mBAAmB,CAC7B,OAA4E;;YAG5E,IAAI,CAAC;gBACD,qCAAqC;gBACrC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,qCAAqC,CAAC,CAAC;gBAC9F,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;oBACjF,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,6BAA6B;gBAC7B,OAAO,CAAC,GAAG,CAAC,sDAAsD,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBACvF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CACrD,uCAAuC,EACvC,OAAO,CAAC,SAAS,CACpB,CAAC;gBAEF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,GAAG,CAAC,iDAAiD,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;oBAClF,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS;oBAC5B,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,KAAK;oBAClC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACzC,CAAC;gBAEF,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,0CAA0C,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC3E,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,SAAS,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAErG,mEAAmE;gBACnE,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAChD,OAAO,cAAc,CAAC,QAAQ,CAAC;gBACnC,CAAC;gBAED,iDAAiD;gBACjD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,UAAU,aAAa,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;oBAEjG,kDAAkD;oBAClD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CACtD,uCAAuC,EACvC,OAAO,CAAC,UAAU,CACrB,CAAC;oBAEF,sDAAsD;oBACtD,MAAM,eAAe,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAC5C,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU;wBAC7B,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,MAAM;wBACnC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CACvE,CAAC;oBAEF,IAAI,eAAe,EAAE,CAAC;wBAClB,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,UAAU,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;wBACxG,OAAO,eAAe,CAAC,QAAQ,CAAC;oBACpC,CAAC;oBAED,mDAAmD;oBACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,UAAU,8CAA8C,CAAC,CAAC;oBAChG,OAAO,cAAc,CAAC,QAAQ,CAAC;gBACnC,CAAC;gBAED,OAAO,cAAc,CAAC,QAAQ,CAAC;YAEnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;gBACvE,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACW,uBAAuB,CACjC,OAA4E;;YAG5E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAElF,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;gBAEnC,6CAA6C;gBAC7C,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,gCAAgC,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC3F,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE7C,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,SAAS,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBAEhF,4DAA4D;oBAC5D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;wBACjG,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAClD,CAAC;oBAED,4EAA4E;oBAC5E,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wBACrB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;wBACvG,IAAI,cAAc,EAAE,CAAC;4BACjB,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,UAAU,aAAa,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;4BAC3F,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;wBACxD,CAAC;wBAED,2EAA2E;wBAC3E,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,UAAU,iDAAiD,CAAC,CAAC;wBACtG,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;wBACjG,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC;YACL,CAAC;YAED,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;IAED;;;OAGG;IACW,0BAA0B,CAAC,YAAoB;;YACzD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAElF,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;gBAEnC,uDAAuD;gBACvD,2CAA2C;gBAC3C,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,iDAAiD,YAAY,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC1G,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEnD,IAAI,aAAa,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,wCAAwC,YAAY,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBACzF,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;oBACrG,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,4CAA4C,YAAY,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC5G,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAErD,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,wCAAwC,YAAY,uBAAuB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBACzG,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC/F,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;YAED,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;IAED;;OAEG;IACK,iBAAiB,CAAC,QAA6B,EAAE,QAAgB,EAAE,eAAuB,EAAE,UAAkB;QAClH,4DAA4D;QAC5D,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAC9D,IAAI,cAAc,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5C,8BAA8B;QAC9B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC;QACtC,OAAO,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG;gBAAE,UAAU,EAAE,CAAC;YACjD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG;gBAAE,UAAU,EAAE,CAAC;YACjD,YAAY,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAEnE,4DAA4D;QAC5D,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,sBAAsB,UAAU,UAAU,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9F,OAAO,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACW,oBAAoB,CAC9B,QAA6B,EAC7B,QAAyB,EACzB,QAAgB;;YAEhB,OAAO,CAAC,GAAG,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;YAEjE,mDAAmD;YACnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;gBACrE,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,mBAAmB,EAAE,CAAC,CAAC;YAEzE,kCAAkC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,oCAAoC,aAAa,CAAC,MAAM,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAE9G,4CAA4C;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAC/E,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,6BAA6B,mBAAmB,sBAAsB,CAAC,CAAC;gBACpF,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAElF,8DAA8D;YAC9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5F,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,mBAAmB,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpG,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1F,OAAO,iBAAiB,CAAC;QAC7B,CAAC;KAAA;IAED;;;;;;OAMG;IACK,0BAA0B,CAC9B,QAA6B,EAC7B,QAAyB;QAEzB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAElC,uFAAuF;QACvF,qCAAqC;QACrC,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEzC,4CAA4C;YAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBACjD,kBAAkB,GAAG,CAAC,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3D,MAAM;YACV,CAAC;QACL,CAAC;QAED,sFAAsF;QACtF,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC1B,sEAAsE;YACtE,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,kBAAkB,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzC,UAAU,IAAI,QAAQ,GAAG,GAAG,CAAC;gBAE7B,qDAAqD;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM;gBACV,CAAC;YACL,CAAC;YAED,yDAAyD;YACzD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACtF,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,0BAA0B,mBAAmB,iBAAiB,CAAC,CAAC;gBAE5E,4EAA4E;gBAC5E,0EAA0E;gBAC1E,OAAO,mBAAmB,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,kCAAkC;QAClC,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEzC,kEAAkE;YAClE,sDAAsD;YACtD,MAAM,QAAQ,GAAG,iCAAiC,CAAC;YACnD,IAAI,KAAK,CAAC;YAEV,gCAAgC;YAChC,MAAM,UAAU,GAA0C,EAAE,CAAC;YAC7D,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC7C,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEzC,IAAI,SAAS,EAAE,CAAC;oBACZ,6BAA6B;oBAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,cAAc;oBACd,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC/D,2EAA2E;wBAC3E,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACJ,wDAAwD;wBACxD,OAAO,CAAC,GAAG,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAC;wBACtE,OAAO,GAAG,CAAC;oBACf,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACW,uBAAuB,CACjC,WAAuB,EACvB,QAAgB;;YAEhB,IAAI,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;gBAE3C,wDAAwD;gBACxD,kCAAkC;gBAClC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,gCAAgC,QAAQ,aAAa,EAAE,GAAG,CAAC,CAAC;gBAC5F,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE9C,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,cAAc,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEtF,uEAAuE;oBACvE,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACpE,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;oBACpE,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,KAAK,CAClC,gBAAgB,EAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAC3F,CAAC;oBAEF,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBAC3D,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,sBAAsB,CAAC,CAAC;gBACnE,OAAO,SAAS,CAAC;YAErB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;KAAA;CAEJ;AAhtBD,4DAgtBC;AAED;;;;;GAKG;AACH,MAAa,mBAAmB;IAC5B,YAAoB,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;IAAG,CAAC;IAE/C,YAAY,CACrB,QAA6B,EAC7B,QAAyB,EACzB,KAA+B;;YAE/B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;YAEhC,kCAAkC;YAClC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC9D,IAAI,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACvH,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;gBAC7D,QAAQ,CAAC,cAAc,CAAC,+FAA+F,CAAC,CAAC;gBACzH,QAAQ,CAAC,cAAc,CAAC,2EAA2E,CAAC,CAAC;gBACrG,QAAQ,CAAC,cAAc,CAAC,uIAAuI,CAAC,CAAC;gBAEjK,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CACzF,CAAC;gBACF,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,kFAAkF;YAClF,oEAAoE;YACpE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEzC,iEAAiE;YACjE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;YACvH,IAAI,YAAY,EAAE,CAAC;gBACf,mCAAmC;gBACnC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;gBACrD,QAAQ,CAAC,cAAc,CAAC,oDAAoD,CAAC,CAAC;gBAC9E,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;gBACpD,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;gBAC3C,QAAQ,CAAC,cAAc,CAAC,uDAAuD,CAAC,CAAC;gBACjF,QAAQ,CAAC,cAAc,CAAC,mDAAmD,CAAC,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,gDAAgD,CAAC,CAAC;gBAC1E,QAAQ,CAAC,cAAc,CAAC,kGAAkG,CAAC,CAAC;gBAE5H,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,iCAAiC;YACjC,sCAAsC;YACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzC,iDAAiD;YACjD,IAAI,CAAC,qCAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,sEAAsE;YACtE,2CAA2C;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAEhE,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;gBAC7D,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpE,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpF,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjD,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACpD,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;wBACjC,cAAc,GAAG,IAAI,CAAC;oBAC1B,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,qCAAqC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,cAAc,CAAC,2BAA2B,IAAI,QAAQ,CAAC,CAAC;gBACjE,QAAQ,CAAC,cAAc,CAAC,kDAAkD,CAAC,CAAC;gBAE5E,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,uBAAuB;YACvB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC7C,QAAQ,CAAC,cAAc,CAAC,2BAA2B,IAAI,QAAQ,CAAC,CAAC;YAEjE,qBAAqB;YACrB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvE,QAAQ,CAAC,cAAc,CAAC,wBAAwB,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAExG,2BAA2B;YAC3B,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpB,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1D,CAAC;YAED,+BAA+B;YAC/B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;YAE1B,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;KAAA;CACJ;AArHD,kDAqHC"} \ No newline at end of file diff --git a/node_modules/@jqhtml/vscode-extension/package.json b/node_modules/@jqhtml/vscode-extension/package.json index e9e0418f9..49c441c03 100755 --- a/node_modules/@jqhtml/vscode-extension/package.json +++ b/node_modules/@jqhtml/vscode-extension/package.json @@ -2,7 +2,7 @@ "name": "@jqhtml/vscode-extension", "displayName": "JQHTML", "description": "Syntax highlighting and language support for JQHTML template files", - "version": "2.2.137", + "version": "2.2.142", "publisher": "jqhtml", "license": "MIT", "publishConfig": { diff --git a/node_modules/@jqhtml/webpack-loader/package.json b/node_modules/@jqhtml/webpack-loader/package.json index 299fc94a6..5abe930fc 100755 --- a/node_modules/@jqhtml/webpack-loader/package.json +++ b/node_modules/@jqhtml/webpack-loader/package.json @@ -1,6 +1,6 @@ { "name": "@jqhtml/webpack-loader", - "version": "2.2.137", + "version": "2.2.142", "description": "Webpack loader for JQHTML templates", "type": "module", "main": "dist/index.js", @@ -30,7 +30,7 @@ "template" ], "dependencies": { - "@jqhtml/parser": "2.2.137", + "@jqhtml/parser": "2.2.142", "@types/loader-utils": "^2.0.6", "@types/node": "^20.0.0", "@types/webpack": "^5.28.5", diff --git a/package-lock.json b/package-lock.json index 19de32646..8a607c791 100755 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "html", + "name": "system", "lockfileVersion": 3, "requires": true, "packages": { @@ -2658,9 +2658,9 @@ } }, "node_modules/@jqhtml/core": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.137.tgz", - "integrity": "sha512-GViirzsF3VfYe7boTyeP35VxhrWSkerbghnzrPwdag+9LrDKqjc76tDCP8XtO7ddgVlm/VDZpvUQQUXEd57eDA==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.142.tgz", + "integrity": "sha512-8X1p+z82Y1sRm6pp7tfuakfN43xx0BgIEXf2Wz/C6mTSn8pygmOREE8Leodwdy9EQtZXif8N8Qmtz50s7X4wjA==", "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^16.0.1", @@ -2684,9 +2684,9 @@ } }, "node_modules/@jqhtml/parser": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.137.tgz", - "integrity": "sha512-DC1GlzZvMhlqxJDNjJ184r+h21W+HhS6GRcG2W/Eo75LnmehakMG9yO4WHeZ9809isl/7+fEwZbk2jM+FD3KVA==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.142.tgz", + "integrity": "sha512-ATn7qrZPWNi/G2WkDUchicGyCTqDLKFYjfE69ckie5S+zRS8zTAUJSS60N+LzUdwgM5N9v8V7C//6P85fggYuw==", "license": "MIT", "dependencies": { "@types/jest": "^29.5.11", @@ -2704,9 +2704,9 @@ } }, "node_modules/@jqhtml/router": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.137.tgz", - "integrity": "sha512-ybiQ6SRZxbYDPwrOML99T9gWJqNM2w43QnptJwWMg+E2zvAr48KpVJhcNJlsOlqGykME5PJOvxioMdMlfaEG5A==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.142.tgz", + "integrity": "sha512-x9gCid0jvkMWFKSbFEcFl6iygFGiDtYbZBai5LOBipUMXUlQw13rJv+ZBe1W+SM2PorUTuJXoTY6O+OxDJS/1g==", "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^16.0.1", @@ -2724,21 +2724,21 @@ } }, "node_modules/@jqhtml/vscode-extension": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.137.tgz", - "integrity": "sha512-9xM9/JqXKestgeivCCWfr49RD0D279ZG/K/PxU2u4kc+mE1kEwpkmVnN4QGGw4rzXUjPFdIoG3ogaMY2gRjFew==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.142.tgz", + "integrity": "sha512-3A8dOjpK01SgxMC3rTjgHNgRvQLKHdBnGFlWCu2Qk1f70DqTHGGwPUbWHNEQcpQw3LhjINYF8WQ8yu/Dkl9Qnw==", "license": "MIT", "engines": { "vscode": "^1.74.0" } }, "node_modules/@jqhtml/webpack-loader": { - "version": "2.2.137", - "resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.137.tgz", - "integrity": "sha512-kSWsTnGa5USX8HKFYdAhfdAD5l/UiIwBJXmUZeLYaLSZvCePBEMfrk9rKbPtfkpNrbTnHhipF6DZmSOElmoPAg==", + "version": "2.2.142", + "resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.142.tgz", + "integrity": "sha512-SUTREV2M1bUJb5s9h4b4q6cTDAl6EBtbPk7J2hMFpy7XwKpv68DVI2lCAOVOwjM1xQXDiTGOM+0gwWqwzEqE+w==", "license": "MIT", "dependencies": { - "@jqhtml/parser": "2.2.137", + "@jqhtml/parser": "2.2.142", "@types/loader-utils": "^2.0.6", "@types/node": "^20.0.0", "@types/webpack": "^5.28.5", diff --git a/public/index.php b/public/index.php index 9940431af..98e8f3934 100755 --- a/public/index.php +++ b/public/index.php @@ -17,12 +17,47 @@ define('LARAVEL_START', microtime(true)); $request_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); -// Handle new IDE service endpoints (not the legacy _idehelper which uses Laravel) +// Handle IDE service endpoints if (str_starts_with($request_path, '/_ide/service')) { - // Handle IDE services with authentication - $service_handler = __DIR__ . '/../app/RSpade/Ide/Services/handler.php'; - if (file_exists($service_handler)) { - require_once $service_handler; + // SECURITY-CRITICAL: Authenticate FIRST before any service logic + // This checks session auth OR localhost bypass before proceeding + require_once __DIR__ . '/../app/RSpade/Ide/Services/auth.php'; + + // If we reach here, authentication passed (auth.php exits on failure) + + // SECURITY: Explicit whitelist only - handlers must be explicitly defined here. + // User input (service name) determines WHICH handler, but cannot inject arbitrary paths. + // TODO: Improve the design of this subsystem invocation later. + + // Extract service name + $service_name = str_replace('/_ide/service', '', $request_path); + $service_name = trim($service_name, '/'); + + // Whitelist of allowed handlers + $allowed_handlers = [ + 'format' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'definition' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'complete' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'exec' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'command' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'resolve_class' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'git' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + 'git/diff' => __DIR__ . '/../app/RSpade/Ide/Services/handler.php', + // All other services use the Laravel handler + 'default' => __DIR__ . '/../app/RSpade/Ide/Services/laravel_handler.php', + ]; + + // Determine which handler to use + if (isset($allowed_handlers[$service_name])) { + $handler_path = $allowed_handlers[$service_name]; + } else { + // Services not explicitly listed use the Laravel handler + $handler_path = $allowed_handlers['default']; + } + + // Execute the whitelisted handler + if (file_exists($handler_path)) { + require_once $handler_path; exit; } }