diff --git a/app/RSpade/Core/Database/Database_BundleIntegration.php b/app/RSpade/Core/Database/Database_BundleIntegration.php index a50ab7d88..451e72ed5 100755 --- a/app/RSpade/Core/Database/Database_BundleIntegration.php +++ b/app/RSpade/Core/Database/Database_BundleIntegration.php @@ -127,21 +127,8 @@ class Database_BundleIntegration extends BundleIntegration_Abstract // Only regenerate if source is newer than stub if ($stub_mtime >= $source_mtime) { // Also check if the model metadata has changed - // by comparing a hash of enums, relationships, and columns - $model_metadata = []; - - // Get relationships - $model_metadata['rel'] = $fqcn::get_relationships(); - - // Get enums - if (property_exists($fqcn, 'enums')) { - $model_metadata['enums'] = $fqcn::$enums ?? []; - } - - // Get columns from models metadata if available - if (isset($manifest_data['data']['models'][$class_name]['columns'])) { - $model_metadata['columns'] = $manifest_data['data']['models'][$class_name]['columns']; - } + // by comparing a hash of enums, relationships, columns, and constants + $model_metadata = static::_get_model_metadata_for_hash($fqcn, $class_name, $manifest_data); $model_metadata_hash = md5(json_encode($model_metadata)); $old_metadata_hash = $metadata['model_metadata_hash'] ?? ''; @@ -164,21 +151,7 @@ class Database_BundleIntegration extends BundleIntegration_Abstract // Store the metadata hash for future comparisons if not already done if (!isset($manifest_data['data']['files'][$file_path]['model_metadata_hash'])) { - $model_metadata = []; - - // Get relationships - $model_metadata['rel'] = $fqcn::get_relationships(); - - // Get enums - if (property_exists($fqcn, 'enums')) { - $model_metadata['enums'] = $fqcn::$enums ?? []; - } - - // Get columns from models metadata if available - if (isset($manifest_data['data']['models'][$class_name]['columns'])) { - $model_metadata['columns'] = $manifest_data['data']['models'][$class_name]['columns']; - } - + $model_metadata = static::_get_model_metadata_for_hash($fqcn, $class_name, $manifest_data); $manifest_data['data']['files'][$file_path]['model_metadata_hash'] = md5(json_encode($model_metadata)); } } @@ -262,6 +235,46 @@ class Database_BundleIntegration extends BundleIntegration_Abstract return false; } + /** + * Get model metadata for hash comparison (detects when stubs need regeneration) + * + * @param string $fqcn Fully qualified class name + * @param string $class_name Simple class name + * @param array $manifest_data The manifest data array + * @return array Metadata array for hashing + */ + private static function _get_model_metadata_for_hash(string $fqcn, string $class_name, array $manifest_data): array + { + $model_metadata = []; + + // Get relationships + $model_metadata['rel'] = $fqcn::get_relationships(); + + // Get enums + if (property_exists($fqcn, 'enums')) { + $model_metadata['enums'] = $fqcn::$enums ?? []; + } + + // Get columns from models metadata if available + if (isset($manifest_data['data']['models'][$class_name]['columns'])) { + $model_metadata['columns'] = $manifest_data['data']['models'][$class_name]['columns']; + } + + // Get public constants defined directly on this class + $reflection = new \ReflectionClass($fqcn); + $constants = []; + foreach ($reflection->getReflectionConstants(\ReflectionClassConstant::IS_PUBLIC) as $const) { + if ($const->getDeclaringClass()->getName() === $fqcn) { + $constants[$const->getName()] = $const->getValue(); + } + } + if (!empty($constants)) { + $model_metadata['constants'] = $constants; + } + + return $model_metadata; + } + /** * Sanitize model name for use as filename */ @@ -314,6 +327,32 @@ class Database_BundleIntegration extends BundleIntegration_Abstract $js_model_base_class = config('rsx.js_model_base_class'); $extends_class = $js_model_base_class ?: 'Rsx_Js_Model'; + // Collect enum constant names to avoid duplicating them + $enum_constant_names = []; + foreach ($enums as $column => $enum_values) { + foreach ($enum_values as $value => $props) { + if (!empty($props['constant'])) { + $enum_constant_names[] = $props['constant']; + } + } + } + + // Get all public constants defined directly on this model class (not inherited) + $reflection = new \ReflectionClass($fqcn); + $non_enum_constants = []; + foreach ($reflection->getReflectionConstants(\ReflectionClassConstant::IS_PUBLIC) as $const) { + // Only include constants defined directly on this class + if ($const->getDeclaringClass()->getName() !== $fqcn) { + continue; + } + $const_name = $const->getName(); + // Skip constants already generated from enums + if (in_array($const_name, $enum_constant_names)) { + continue; + } + $non_enum_constants[$const_name] = $const->getValue(); + } + // Start building the stub content $content = "/**\n"; $content .= " * Auto-generated JavaScript stub for {$class_name}\n"; @@ -326,6 +365,16 @@ class Database_BundleIntegration extends BundleIntegration_Abstract // Add static __MODEL property for PHP model name resolution $content .= " static __MODEL = '{$class_name}';\n\n"; + // Generate non-enum constants first (static properties) + if (!empty($non_enum_constants)) { + $content .= " // Non-enum constants\n"; + foreach ($non_enum_constants as $const_name => $const_value) { + $value_json = json_encode($const_value); + $content .= " static {$const_name} = {$value_json};\n"; + } + $content .= "\n"; + } + // Generate enum constants and methods foreach ($enums as $column => $enum_values) { // Sort enum values by order property first, then by key diff --git a/app/RSpade/Core/Js/Rsx.js b/app/RSpade/Core/Js/Rsx.js index 38b154634..b3f564900 100755 --- a/app/RSpade/Core/Js/Rsx.js +++ b/app/RSpade/Core/Js/Rsx.js @@ -222,6 +222,24 @@ class Rsx { return !window.rsxapp.debug; } + /** + * Get the current logged-in user model instance + * Returns the hydrated ORM model if available, or the raw data object + * @returns {Rsx_Js_Model|Object|null} User model instance or null if not logged in + */ + static user() { + return window.rsxapp?.user || null; + } + + /** + * Get the current site model instance + * Returns the hydrated ORM model if available, or the raw data object + * @returns {Rsx_Js_Model|Object|null} Site model instance or null if not set + */ + static site() { + return window.rsxapp?.site || null; + } + // Generates a unique number for the application instance static uid() { if (typeof Rsx._uid == undef) { @@ -601,6 +619,43 @@ class Rsx { } } + /** + * Hydrate rsxapp.user and rsxapp.site into ORM model instances + * + * Checks if window.rsxapp.user and window.rsxapp.site contain raw data objects + * with __MODEL markers, and if the corresponding model classes are available, + * replaces them with proper ORM instances. + * + * This enables code like: + * const user = Rsx.user(); + * await user.some_relationship(); // Works because user is a proper model instance + */ + static _hydrate_rsxapp_models() { + if (!window.rsxapp) { + return; + } + + // Hydrate user if present and has __MODEL marker + if (window.rsxapp.user && window.rsxapp.user.__MODEL) { + const UserClass = Manifest.get_class_by_name(window.rsxapp.user.__MODEL); + // Check class exists and extends Rsx_Js_Model - @JS-DEFENSIVE-01-EXCEPTION - dynamic model resolution + if (UserClass && Manifest.js_is_subclass_of(UserClass, Rsx_Js_Model)) { + window.rsxapp.user = new UserClass(window.rsxapp.user); + console_debug('RSX_INIT', `Hydrated rsxapp.user as ${window.rsxapp.user.__MODEL}`); + } + } + + // Hydrate site if present and has __MODEL marker + if (window.rsxapp.site && window.rsxapp.site.__MODEL) { + const SiteClass = Manifest.get_class_by_name(window.rsxapp.site.__MODEL); + // Check class exists and extends Rsx_Js_Model - @JS-DEFENSIVE-01-EXCEPTION - dynamic model resolution + if (SiteClass && Manifest.js_is_subclass_of(SiteClass, Rsx_Js_Model)) { + window.rsxapp.site = new SiteClass(window.rsxapp.site); + console_debug('RSX_INIT', `Hydrated rsxapp.site as ${window.rsxapp.site.__MODEL}`); + } + } + } + /** * Internal: Execute multi-phase initialization for all registered classes * This runs various initialization phases in order to properly set up the application @@ -617,6 +672,10 @@ class Rsx { // Setup exception handlers first, before any initialization phases Rsx._setup_exception_handlers(); + // Hydrate rsxapp.user and rsxapp.site into ORM model instances + // This must happen early, before any code tries to use these objects + Rsx._hydrate_rsxapp_models(); + // Get all registered classes from the manifest const all_classes = Manifest.get_all_classes(); @@ -697,7 +756,6 @@ class Rsx { y: window.scrollY }; sessionStorage.setItem(Rsx._SCROLL_STORAGE_KEY, JSON.stringify(scroll_data)); - console.log('[Rsx Scroll] Saved:', scroll_data.x, scroll_data.y, 'for', scroll_data.url); }, 100); // 100ms debounce } @@ -707,61 +765,46 @@ class Rsx { * @private */ static _restore_scroll_on_refresh() { - console.log('[Rsx Scroll] _restore_scroll_on_refresh called'); - // Set up scroll listener to continuously save position window.addEventListener('scroll', Rsx._save_scroll_position, { passive: true }); - console.log('[Rsx Scroll] Scroll listener attached'); // Check if this is a page refresh using Performance API const nav_entries = performance.getEntriesByType('navigation'); - console.log('[Rsx Scroll] Navigation entries:', nav_entries.length); if (nav_entries.length === 0) { - console.log('[Rsx Scroll] No navigation entries found, skipping restore'); return; } const nav_type = nav_entries[0].type; - console.log('[Rsx Scroll] Navigation type:', nav_type); if (nav_type !== 'reload') { - console.log('[Rsx Scroll] Not a reload (type=' + nav_type + '), skipping restore'); return; } // This is a refresh - try to restore scroll position const stored = sessionStorage.getItem(Rsx._SCROLL_STORAGE_KEY); - console.log('[Rsx Scroll] Stored scroll data:', stored); if (!stored) { - console.log('[Rsx Scroll] No stored scroll position found'); return; } try { const scroll_data = JSON.parse(stored); const current_url = window.location.pathname + window.location.search; - console.log('[Rsx Scroll] Stored URL:', scroll_data.url, 'Current URL:', current_url); // Only restore if URL matches if (scroll_data.url !== current_url) { - console.log('[Rsx Scroll] URL mismatch, skipping restore'); return; } // Restore scroll position instantly - console.log('[Rsx Scroll] Restoring scroll to:', scroll_data.x, scroll_data.y); window.scrollTo({ left: scroll_data.x, top: scroll_data.y, behavior: 'instant' }); - console.log('[Rsx Scroll] Restored scroll position on refresh:', scroll_data.x, scroll_data.y); - // Clear stored position after successful restore sessionStorage.removeItem(Rsx._SCROLL_STORAGE_KEY); } catch (e) { // Invalid JSON or other error - ignore - console.log('[Rsx Scroll] Error restoring scroll:', e.message); sessionStorage.removeItem(Rsx._SCROLL_STORAGE_KEY); } } diff --git a/app/RSpade/man/model_fetch.txt b/app/RSpade/man/model_fetch.txt index ced2086e6..49b693a33 100755 --- a/app/RSpade/man/model_fetch.txt +++ b/app/RSpade/man/model_fetch.txt @@ -658,6 +658,63 @@ ENUM PROPERTIES const statusConfig = Project_Model.status_id_enum_val(); // {1: {label: "Planning", badge: "bg-info"}, 2: {...}, ...} +MODEL CONSTANTS + All public constants defined on a PHP model are automatically exported to + the JavaScript stub as static properties. This includes both enum constants + (generated from $enums) and manually defined constants. + + PHP Model Definition: + class User_Model extends Rsx_Model_Abstract + { + // Enum constants (auto-generated by rsx:migrate:document_models) + const ROLE_ADMIN = 1; + const ROLE_USER = 2; + + // Permission constants (manually defined) + const PERM_MANAGE_USERS = 1; + const PERM_EDIT_DATA = 2; + const PERM_VIEW_DATA = 3; + + // Invitation status constants + const INVITATION_PENDING = 'pending'; + const INVITATION_ACCEPTED = 'accepted'; + const INVITATION_EXPIRED = 'expired'; + } + + JavaScript Usage: + // All constants available as static properties + if (permission === User_Model.PERM_MANAGE_USERS) { + showAdminPanel(); + } + + if (invite.status === User_Model.INVITATION_PENDING) { + showPendingBadge(); + } + + SECURITY WARNING: + All public constants are exported to JavaScript and visible in the + browser. NEVER put sensitive values in model constants: + + // NEVER DO THIS - secrets visible in browser + const API_SECRET = 'sk-abc123...'; + const ENCRYPTION_KEY = 'my-secret-key'; + + Use private constants for sensitive values: + + // Safe - not exported to JavaScript + private const API_SECRET = 'sk-abc123...'; + + Constant Types Exported: + - Enum constants (from $enums 'constant' field) + - Non-enum public constants (string, int, float, bool, array) + - Constants with no visibility modifier (treated as public) + + Constants NOT Exported: + - Private constants (private const FOO = 1) + - Protected constants (protected const BAR = 2) + - Constants inherited from parent classes + - Framework constants from Rsx_Model_Abstract + =============================================================================== FUTURE DEVELOPMENT =============================================================================== diff --git a/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js b/app/RSpade/resource/vscode_extension/out/auto_rename_provider.js old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/class_refactor_code_actions.js b/app/RSpade/resource/vscode_extension/out/class_refactor_code_actions.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/class_refactor_code_actions.js.map b/app/RSpade/resource/vscode_extension/out/class_refactor_code_actions.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/class_refactor_provider.js b/app/RSpade/resource/vscode_extension/out/class_refactor_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/class_refactor_provider.js.map b/app/RSpade/resource/vscode_extension/out/class_refactor_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/combined_semantic_provider.js b/app/RSpade/resource/vscode_extension/out/combined_semantic_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/combined_semantic_provider.js.map b/app/RSpade/resource/vscode_extension/out/combined_semantic_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/comment_file_reference_provider.js b/app/RSpade/resource/vscode_extension/out/comment_file_reference_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/comment_file_reference_provider.js.map b/app/RSpade/resource/vscode_extension/out/comment_file_reference_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/config.js b/app/RSpade/resource/vscode_extension/out/config.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/config.js.map b/app/RSpade/resource/vscode_extension/out/config.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/convention_method_provider.js b/app/RSpade/resource/vscode_extension/out/convention_method_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/convention_method_provider.js.map b/app/RSpade/resource/vscode_extension/out/convention_method_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/debug_client.js b/app/RSpade/resource/vscode_extension/out/debug_client.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/debug_client.js.map b/app/RSpade/resource/vscode_extension/out/debug_client.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/decoration_provider.js b/app/RSpade/resource/vscode_extension/out/decoration_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/decoration_provider.js.map b/app/RSpade/resource/vscode_extension/out/decoration_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/definition_provider.js b/app/RSpade/resource/vscode_extension/out/definition_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/definition_provider.js.map b/app/RSpade/resource/vscode_extension/out/definition_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/extension.js b/app/RSpade/resource/vscode_extension/out/extension.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/extension.js.map b/app/RSpade/resource/vscode_extension/out/extension.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/file_watcher.js b/app/RSpade/resource/vscode_extension/out/file_watcher.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/file_watcher.js.map b/app/RSpade/resource/vscode_extension/out/file_watcher.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/folder_color_provider.js b/app/RSpade/resource/vscode_extension/out/folder_color_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/folder_color_provider.js.map b/app/RSpade/resource/vscode_extension/out/folder_color_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/folding_provider.js b/app/RSpade/resource/vscode_extension/out/folding_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/folding_provider.js.map b/app/RSpade/resource/vscode_extension/out/folding_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/formatting_provider.js b/app/RSpade/resource/vscode_extension/out/formatting_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/formatting_provider.js.map b/app/RSpade/resource/vscode_extension/out/formatting_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/git_diff_provider.js b/app/RSpade/resource/vscode_extension/out/git_diff_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/git_diff_provider.js.map b/app/RSpade/resource/vscode_extension/out/git_diff_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/git_status_provider.js b/app/RSpade/resource/vscode_extension/out/git_status_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/git_status_provider.js.map b/app/RSpade/resource/vscode_extension/out/git_status_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js b/app/RSpade/resource/vscode_extension/out/ide_bridge_client.js old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js b/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js old mode 100755 new mode 100644 index b244c73f9..54bb116af --- a/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js +++ b/app/RSpade/resource/vscode_extension/out/jqhtml_lifecycle_provider.js @@ -29,7 +29,7 @@ const ide_bridge_client_1 = require("./ide_bridge_client"); /** * JQHTML lifecycle methods that are called automatically by the framework */ -const JQHTML_LIFECYCLE_METHODS = ['on_render', 'on_create', 'on_load', 'on_ready', 'on_destroy', 'cache_id']; +const JQHTML_LIFECYCLE_METHODS = ['on_render', 'on_create', 'on_load', 'on_ready', 'on_stop', 'cache_id']; /** * Convention methods that are called automatically by the RSX framework */ @@ -52,7 +52,7 @@ const LIFECYCLE_DOCS = { on_create: 'Quick setup after DOM exists. Children complete before parent. DOM manipulation allowed. MUST be synchronous.', on_load: 'Data loading phase - fetch async data. NO DOM manipulation allowed, only update `this.data`. Template re-renders after load. MUST be async.', on_ready: 'Final setup phase - all data loaded. Children complete before parent. DOM manipulation allowed. Can be sync or async.', - on_destroy: 'Component destruction phase - cleanup resources. Called before component is removed. MUST be synchronous.', + on_stop: 'Component destruction phase - cleanup resources. Called before component is removed. MUST be synchronous.', cache_id: 'Returns a unique cache key for this component instance. Used by framework to cache/restore component state. Return null to disable caching.', }; /** @@ -280,7 +280,7 @@ class JqhtmlLifecycleHoverProvider { markdown.isTrusted = true; const is_async = is_async_method(line); // Determine if async is required, forbidden, or optional - const must_be_sync = ['on_create', 'on_render', 'on_destroy'].includes(word); + const must_be_sync = ['on_create', 'on_render', 'on_stop'].includes(word); const must_be_async = word === 'on_load'; const can_be_either = word === 'on_ready'; let has_error = false; @@ -377,8 +377,8 @@ class JqhtmlLifecycleDiagnosticProvider { else if (method_name === 'on_render' && is_async) { diagnostics.push(new vscode.Diagnostic(method_name_range, `'on_render' must be synchronous - remove 'async' keyword`, vscode.DiagnosticSeverity.Error)); } - else if (method_name === 'on_destroy' && is_async) { - diagnostics.push(new vscode.Diagnostic(method_name_range, `'on_destroy' must be synchronous - remove 'async' keyword`, vscode.DiagnosticSeverity.Error)); + else if (method_name === 'on_stop' && is_async) { + diagnostics.push(new vscode.Diagnostic(method_name_range, `'on_stop' must be synchronous - remove 'async' keyword`, vscode.DiagnosticSeverity.Error)); } else if (method_name === 'on_load' && !is_async) { diagnostics.push(new vscode.Diagnostic(method_name_range, `'on_load' must be async - add 'async' keyword`, vscode.DiagnosticSeverity.Error)); 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 old mode 100755 new mode 100644 index 50b58b3b8..022329cc6 --- 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/out/laravel_completion_provider.js b/app/RSpade/resource/vscode_extension/out/laravel_completion_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/laravel_completion_provider.js.map b/app/RSpade/resource/vscode_extension/out/laravel_completion_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/php_attribute_provider.js b/app/RSpade/resource/vscode_extension/out/php_attribute_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/php_attribute_provider.js.map b/app/RSpade/resource/vscode_extension/out/php_attribute_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/refactor_code_actions.js b/app/RSpade/resource/vscode_extension/out/refactor_code_actions.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/refactor_code_actions.js.map b/app/RSpade/resource/vscode_extension/out/refactor_code_actions.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/refactor_provider.js b/app/RSpade/resource/vscode_extension/out/refactor_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/refactor_provider.js.map b/app/RSpade/resource/vscode_extension/out/refactor_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/sort_class_methods_provider.js b/app/RSpade/resource/vscode_extension/out/sort_class_methods_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/sort_class_methods_provider.js.map b/app/RSpade/resource/vscode_extension/out/sort_class_methods_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/symlink_redirect_provider.js b/app/RSpade/resource/vscode_extension/out/symlink_redirect_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/symlink_redirect_provider.js.map b/app/RSpade/resource/vscode_extension/out/symlink_redirect_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/that_variable_provider.js b/app/RSpade/resource/vscode_extension/out/that_variable_provider.js old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/out/that_variable_provider.js.map b/app/RSpade/resource/vscode_extension/out/that_variable_provider.js.map old mode 100755 new mode 100644 diff --git a/app/RSpade/resource/vscode_extension/package.json b/app/RSpade/resource/vscode_extension/package.json index a6ac069fd..3a26d3b83 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.219", + "version": "0.1.220", "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 32d0da6f2..b68a002ba 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/jqhtml_lifecycle_provider.ts b/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts index c3c07a1f6..1ae53538a 100755 --- a/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts +++ b/app/RSpade/resource/vscode_extension/src/jqhtml_lifecycle_provider.ts @@ -4,7 +4,7 @@ import { IdeBridgeClient } from './ide_bridge_client'; /** * JQHTML lifecycle methods that are called automatically by the framework */ -const JQHTML_LIFECYCLE_METHODS = ['on_render', 'on_create', 'on_load', 'on_ready', 'on_destroy', 'cache_id']; +const JQHTML_LIFECYCLE_METHODS = ['on_render', 'on_create', 'on_load', 'on_ready', 'on_stop', 'cache_id']; /** * Convention methods that are called automatically by the RSX framework @@ -29,7 +29,7 @@ const LIFECYCLE_DOCS: { [key: string]: string } = { on_create: 'Quick setup after DOM exists. Children complete before parent. DOM manipulation allowed. MUST be synchronous.', on_load: 'Data loading phase - fetch async data. NO DOM manipulation allowed, only update `this.data`. Template re-renders after load. MUST be async.', on_ready: 'Final setup phase - all data loaded. Children complete before parent. DOM manipulation allowed. Can be sync or async.', - on_destroy: 'Component destruction phase - cleanup resources. Called before component is removed. MUST be synchronous.', + on_stop: 'Component destruction phase - cleanup resources. Called before component is removed. MUST be synchronous.', cache_id: 'Returns a unique cache key for this component instance. Used by framework to cache/restore component state. Return null to disable caching.', }; @@ -299,7 +299,7 @@ export class JqhtmlLifecycleHoverProvider implements vscode.HoverProvider { const is_async = is_async_method(line); // Determine if async is required, forbidden, or optional - const must_be_sync = ['on_create', 'on_render', 'on_destroy'].includes(word); + const must_be_sync = ['on_create', 'on_render', 'on_stop'].includes(word); const must_be_async = word === 'on_load'; const can_be_either = word === 'on_ready'; @@ -440,11 +440,11 @@ export class JqhtmlLifecycleDiagnosticProvider { vscode.DiagnosticSeverity.Error ) ); - } else if (method_name === 'on_destroy' && is_async) { + } else if (method_name === 'on_stop' && is_async) { diagnostics.push( new vscode.Diagnostic( method_name_range, - `'on_destroy' must be synchronous - remove 'async' keyword`, + `'on_stop' must be synchronous - remove 'async' keyword`, vscode.DiagnosticSeverity.Error ) );