From d3a47108afd5f325d8598658b3bf5dab65c92019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20Pe=CC=81rez?= Date: Sun, 8 Feb 2026 20:07:09 +0000 Subject: [PATCH] chore: update gitignore and fix content --- .gitignore | 11 + CHANGELOG.md | 45 + .../FOUNDATION_INTEGRATION_GUIDE.md | 696 +++++ crates/foundation/README.md | 282 ++ .../crates/rustelo_client/Cargo.toml | 72 + .../crates/rustelo_client/README.md | 713 +++++ .../rustelo_client/docs/HYDRATION_GUIDE.md | 670 +++++ .../examples/basic_hydration.rs | 258 ++ .../examples/custom_extensions.rs | 862 ++++++ .../examples/state_management.rs | 872 ++++++ .../crates/rustelo_client/src/app.rs | 208 ++ .../crates/rustelo_client/src/auth/context.rs | 372 +++ .../rustelo_client/src/auth/context_simple.rs | 611 ++++ .../rustelo_client/src/auth/error_display.rs | 196 ++ .../crates/rustelo_client/src/auth/errors.rs | 163 + .../crates/rustelo_client/src/auth/login.rs | 254 ++ .../crates/rustelo_client/src/auth/mod.rs | 11 + .../rustelo_client/src/auth/register.rs | 484 +++ .../rustelo_client/src/auth/two_factor.rs | 318 ++ .../src/auth/two_factor_login.rs | 246 ++ .../crates/rustelo_client/src/config/mod.rs | 101 + .../src/examples/admin_integration.rs | 512 ++++ .../crates/rustelo_client/src/highlight.rs | 115 + .../crates/rustelo_client/src/i18n.rs | 621 ++++ .../crates/rustelo_client/src/lib.rs | 237 ++ .../crates/rustelo_client/src/routing.rs | 446 +++ .../crates/rustelo_client/src/state/mod.rs | 42 + .../crates/rustelo_client/src/state/theme.rs | 238 ++ .../src/utils/hydration_debug.rs | 64 + .../crates/rustelo_client/src/utils/mod.rs | 63 + .../crates/rustelo_components/Cargo.toml | 64 + .../crates/rustelo_components/README.md | 164 + .../docs/COMPONENT_CATALOG.md | 570 ++++ .../rustelo_components/docs/USAGE_PATTERNS.md | 449 +++ .../examples/_basic_layout.rs.skip | 142 + .../examples/_content_showcase.rs.skip | 476 +++ .../examples/_navigation_demo.rs.skip | 366 +++ .../src/admin/admin_layout/client.rs | 326 ++ .../src/admin/admin_layout/mod.rs | 16 + .../src/admin/admin_layout/ssr.rs | 320 ++ .../src/admin/admin_layout/unified.rs | 216 ++ .../rustelo_components/src/admin/mod.rs | 5 + .../rustelo_components/src/content/card.rs | 275 ++ .../rustelo_components/src/content/grid.rs | 543 ++++ .../rustelo_components/src/content/html.rs | 24 + .../rustelo_components/src/content/manager.rs | 365 +++ .../rustelo_components/src/content/mod.rs | 23 + .../src/content/pagination.rs | 419 +++ .../src/content/simple_grid.rs | 312 ++ .../rustelo_components/src/filter/client.rs | 36 + .../rustelo_components/src/filter/mod.rs | 70 + .../rustelo_components/src/filter/shared.rs | 81 + .../rustelo_components/src/filter/ssr copy.rs | 203 ++ .../rustelo_components/src/filter/ssr.rs | 30 + .../rustelo_components/src/filter/unified.rs | 565 ++++ .../crates/rustelo_components/src/lib.rs | 68 + .../rustelo_components/src/logo/client.rs | 55 + .../crates/rustelo_components/src/logo/mod.rs | 14 + .../crates/rustelo_components/src/logo/ssr.rs | 42 + .../rustelo_components/src/logo/unified.rs | 99 + .../src/navigation/brand_header.rs | 134 + .../src/navigation/footer/client.rs | 54 + .../src/navigation/footer/mod.rs | 25 + .../src/navigation/footer/ssr.rs | 43 + .../src/navigation/footer/unified.rs | 265 ++ .../navigation/language_selector/client.rs | 73 + .../src/navigation/language_selector/mod.rs | 14 + .../src/navigation/language_selector/ssr.rs | 56 + .../navigation/language_selector/unified.rs | 259 ++ .../src/navigation/menu_registry.rs | 129 + .../rustelo_components/src/navigation/mod.rs | 30 + .../src/navigation/navmenu/client.rs | 106 + .../src/navigation/navmenu/mod.rs | 25 + .../src/navigation/navmenu/ssr.rs | 37 + .../src/navigation/navmenu/unified.rs | 403 +++ .../src/navigation/pre_footer/client.rs | 69 + .../src/navigation/pre_footer/mod.rs | 14 + .../src/navigation/pre_footer/ssr.rs | 64 + .../src/navigation/pre_footer/unified.rs | 48 + .../src/navigation/pre_navmenu/client.rs | 167 ++ .../src/navigation/pre_navmenu/mod.rs | 14 + .../src/navigation/pre_navmenu/ssr.rs | 65 + .../src/navigation/pre_navmenu/unified.rs | 63 + .../rustelo_components/src/theme/client.rs | 204 ++ .../rustelo_components/src/theme/mod.rs | 25 + .../rustelo_components/src/theme/ssr.rs | 194 ++ .../rustelo_components/src/theme/unified.rs | 72 + .../src/ui/menu_item/client.rs | 69 + .../src/ui/menu_item/mod.rs | 21 + .../src/ui/menu_item/ssr.rs | 42 + .../src/ui/menu_item/unified.rs | 30 + .../src/ui/mobile_menu/client.rs | 161 + .../src/ui/mobile_menu/mod.rs | 14 + .../src/ui/mobile_menu/ssr.rs | 69 + .../src/ui/mobile_menu/unified.rs | 60 + .../crates/rustelo_components/src/ui/mod.rs | 8 + .../src/ui/page_transition/client.rs | 118 + .../src/ui/page_transition/mod.rs | 14 + .../src/ui/page_transition/ssr.rs | 48 + .../src/ui/page_transition/unified.rs | 99 + .../src/ui/spa_link/client.rs | 145 + .../rustelo_components/src/ui/spa_link/mod.rs | 14 + .../rustelo_components/src/ui/spa_link/ssr.rs | 61 + .../src/ui/spa_link/unified.rs | 75 + .../crates/rustelo_core_lib/.gitignore | 1 + .../crates/rustelo_core_lib/Cargo.toml | 91 + .../crates/rustelo_core_lib/README.md | 888 ++++++ .../crates/rustelo_core_lib/_build.rs | 29 + .../crates/rustelo_core_lib/build.rs | 79 + .../rustelo_core_lib/docs/USAGE_PATTERNS.md | 1007 +++++++ .../_build_system_integration.rs.skip | 545 ++++ .../examples/_config_setup.rs.skip | 265 ++ .../_configuration_driven_pages.rs.skip | 285 ++ .../_extending_with_custom_templates.rs.skip | 690 +++++ .../examples/_language_setup.rs.skip | 298 ++ .../examples/_test_lang_config.rs.skip | 22 + .../crates/rustelo_core_lib/src/auth.rs | 603 ++++ .../rustelo_core_lib/src/cache/content.rs | 548 ++++ .../crates/rustelo_core_lib/src/cache/lru.rs | 208 ++ .../rustelo_core_lib/src/cache/memory.rs | 567 ++++ .../crates/rustelo_core_lib/src/cache/mod.rs | 401 +++ .../rustelo_core_lib/src/cache/persistent.rs | 436 +++ .../rustelo_core_lib/src/categories/cache.rs | 182 ++ .../rustelo_core_lib/src/categories/emoji.rs | 98 + .../rustelo_core_lib/src/categories/filter.rs | 590 ++++ .../rustelo_core_lib/src/categories/mod.rs | 22 + .../src/categories/validation.rs | 254 ++ .../rustelo_core_lib/src/categories/wasm.rs | 61 + .../rustelo_core_lib/src/config/content.rs | 110 + .../rustelo_core_lib/src/config/defs.rs | 465 +++ .../rustelo_core_lib/src/config/language.rs | 117 + .../crates/rustelo_core_lib/src/config/mod.rs | 74 + .../rustelo_core_lib/src/content/card.rs | 37 + .../rustelo_core_lib/src/content/item.rs | 811 +++++ .../rustelo_core_lib/src/content/mod.rs | 68 + .../rustelo_core_lib/src/content/resolver.rs | 245 ++ .../rustelo_core_lib/src/content/traits.rs | 349 +++ .../rustelo_core_lib/src/content_resolver.rs | 405 +++ .../crates/rustelo_core_lib/src/defs.rs | 572 ++++ .../src/fluent/content_loader.rs | 622 ++++ .../src/fluent/content_traits.rs | 251 ++ .../crates/rustelo_core_lib/src/fluent/ftl.rs | 194 ++ .../rustelo_core_lib/src/fluent/ftl_parser.rs | 274 ++ .../rustelo_core_lib/src/fluent/loaders.rs | 779 +++++ .../rustelo_core_lib/src/fluent/macros.rs | 8 + .../rustelo_core_lib/src/fluent/markdown.rs | 189 ++ .../rustelo_core_lib/src/fluent/metadata.rs | 333 +++ .../crates/rustelo_core_lib/src/fluent/mod.rs | 74 + .../rustelo_core_lib/src/fluent/models.rs | 324 ++ .../rustelo_core_lib/src/fluent/resolvers.rs | 102 + .../rustelo_core_lib/src/fluent/types.rs | 106 + .../crates/rustelo_core_lib/src/generated.rs | 100 + .../src/i18n/content_helper.rs | 424 +++ .../crates/rustelo_core_lib/src/i18n/defs.rs | 171 ++ .../rustelo_core_lib/src/i18n/helpers.rs | 280 ++ .../crates/rustelo_core_lib/src/i18n/mod.rs | 73 + .../src/i18n/page_translator.rs | 95 + .../rustelo_core_lib/src/i18n/unified.rs | 269 ++ .../crates/rustelo_core_lib/src/i18n/urls.rs | 261 ++ .../crates/rustelo_core_lib/src/integrity.rs | 887 ++++++ .../rustelo_core_lib/src/layered_override.rs | 423 +++ .../crates/rustelo_core_lib/src/lib.rs | 408 +++ .../rustelo_core_lib/src/mergeable_configs.rs | 462 +++ .../rustelo_core_lib/src/meta_preloader.rs | 294 ++ .../rustelo_core_lib/src/path_resolution.rs | 78 + .../rustelo_core_lib/src/registration.rs | 445 +++ .../rustelo_core_lib/src/resources/loader.rs | 493 +++ .../rustelo_core_lib/src/resources/manager.rs | 344 +++ .../rustelo_core_lib/src/resources/mod.rs | 14 + .../rustelo_core_lib/src/routing/cache.rs | 374 +++ .../src/routing/components.rs | 56 + .../rustelo_core_lib/src/routing/config.rs | 366 +++ .../src/routing/core_types.rs | 74 + .../rustelo_core_lib/src/routing/defs.rs | 68 + .../src/routing/engine/content.rs | 186 ++ .../src/routing/engine/factory.rs | 189 ++ .../src/routing/engine/global.rs | 96 + .../src/routing/engine/mod.rs | 126 + .../src/routing/engine/navigation.rs | 71 + .../src/routing/engine/parameters.rs | 75 + .../src/routing/engine/resolver.rs | 548 ++++ .../src/routing/engine/types.rs | 95 + .../src/routing/generated_access.rs | 113 + .../rustelo_core_lib/src/routing/language.rs | 357 +++ .../rustelo_core_lib/src/routing/mapping.rs | 13 + .../rustelo_core_lib/src/routing/mod.rs | 125 + .../rustelo_core_lib/src/routing/seo.rs | 515 ++++ .../rustelo_core_lib/src/routing/tracker.rs | 472 +++ .../rustelo_core_lib/src/routing/traits.rs | 91 + .../src/routing/url_generation.rs | 761 +++++ .../rustelo_core_lib/src/routing/utils.rs | 1395 +++++++++ .../src/routing/utils_backup.rs | 1687 +++++++++++ .../rustelo_core_lib/src/state/app_state.rs | 758 +++++ .../src/state/content_loader.rs | 536 ++++ .../rustelo_core_lib/src/state/language.rs | 254 ++ .../crates/rustelo_core_lib/src/state/mod.rs | 29 + .../rustelo_core_lib/src/state/navigation.rs | 635 ++++ .../crates/rustelo_core_lib/src/theme.rs | 321 ++ .../crates/rustelo_core_lib/src/utils/mod.rs | 11 + .../crates/rustelo_core_lib/src/utils/nav.rs | 574 ++++ .../crates/rustelo_core_lib/src/utils/slug.rs | 192 ++ .../tests/content_loader_test.rs.disabled | 164 + .../tests/fluent_markdown_tests.rs | 55 + .../tests/fluent_models_tests.rs | 106 + .../tests/routing_engine_tests.rs | 193 ++ .../tests/routing_utils_tests.rs | 287 ++ .../CONFIG_SETTINGS_REFERENCE.md | 1008 +++++++ .../rustelo_core_types/CONFIG_TRAITS_GUIDE.md | 881 ++++++ .../crates/rustelo_core_types/Cargo.toml | 40 + .../crates/rustelo_core_types/README.md | 570 ++++ .../_configuration_validation.rs.skip | 821 +++++ .../src/basic_content_item.rs | 27 + .../rustelo_core_types/src/build_info.rs | 31 + .../rustelo_core_types/src/cache_config.rs | 28 + .../rustelo_core_types/src/content_config.rs | 41 + .../src/content_features.rs | 28 + .../rustelo_core_types/src/content_kind.rs | 30 + .../src/content_metadata.rs | 34 + .../crates/rustelo_core_types/src/env.rs | 26 + .../crates/rustelo_core_types/src/err_info.rs | 15 + .../src/framework_config.rs | 29 + .../crates/rustelo_core_types/src/i18n.rs | 124 + .../crates/rustelo_core_types/src/lib.rs | 57 + .../crates/rustelo_core_types/src/metadata.rs | 17 + .../src/performance_metrics.rs | 182 ++ .../src/rate_limit_config.rs | 13 + .../crates/rustelo_core_types/src/routing.rs | 428 +++ .../rustelo_core_types/src/security_config.rs | 32 + .../rustelo_core_types/src/site_config.rs | 64 + .../rustelo_core_types/src/site_info.rs | 24 + .../rustelo_core_types/src/theme_config.rs | 35 + .../rustelo_core_types/src/traits_client.rs | 355 +++ .../src/traits_components.rs | 357 +++ .../rustelo_core_types/src/traits_config.rs | 504 ++++ .../rustelo_core_types/src/traits_routing.rs | 272 ++ .../crates/rustelo_language/Cargo.toml | 21 + .../crates/rustelo_language/src/discovery.rs | 198 ++ .../rustelo_language/src/language_config.rs | 580 ++++ .../crates/rustelo_language/src/lib.rs | 44 + .../crates/rustelo_macros/Cargo.toml | 15 + .../crates/rustelo_macros/src/lib.rs | 161 + .../crates/rustelo_pages/Cargo.toml | 57 + .../foundation/crates/rustelo_pages/README.md | 212 ++ .../rustelo_pages/build_page_generator.rs | 576 ++++ .../crates/rustelo_pages/docs/PAGE_CATALOG.md | 587 ++++ .../rustelo_pages/docs/PAGE_SYSTEM_GUIDE.md | 577 ++++ .../examples/_basic_pages.rs.skip | 556 ++++ .../rustelo_pages/examples/blog_system.rs | 703 +++++ .../crates/rustelo_pages/src/about/mod.rs | 2 + .../crates/rustelo_pages/src/about/pages.rs | 65 + .../crates/rustelo_pages/src/about/unified.rs | 252 ++ .../rustelo_pages/src/admin/content/mod.rs | 2 + .../rustelo_pages/src/admin/content/pages.rs | 61 + .../src/admin/content/unified.rs | 41 + .../rustelo_pages/src/admin/dashboard/mod.rs | 2 + .../src/admin/dashboard/pages.rs | 61 + .../src/admin/dashboard/unified.rs | 41 + .../crates/rustelo_pages/src/admin/mod.rs | 12 + .../rustelo_pages/src/admin/role/mod.rs | 2 + .../rustelo_pages/src/admin/role/pages.rs | 61 + .../rustelo_pages/src/admin/role/unified.rs | 41 + .../rustelo_pages/src/admin/user/mod.rs | 2 + .../rustelo_pages/src/admin/user/pages.rs | 65 + .../rustelo_pages/src/admin/user/unified.rs | 41 + .../crates/rustelo_pages/src/common.rs | 125 + .../crates/rustelo_pages/src/contact/mod.rs | 2 + .../crates/rustelo_pages/src/contact/pages.rs | 62 + .../rustelo_pages/src/contact/unified.rs | 329 ++ .../src/content/category/client.rs | 151 + .../rustelo_pages/src/content/category/mod.rs | 13 + .../rustelo_pages/src/content/category/ssr.rs | 98 + .../src/content/category/unified.rs | 240 ++ .../src/content/helpers/cta_section.rs | 78 + .../rustelo_pages/src/content/helpers/defs.rs | 166 ++ .../rustelo_pages/src/content/helpers/mod.rs | 32 + .../src/content/helpers/renderer.rs | 203 ++ .../src/content/helpers/utils.rs | 293 ++ .../rustelo_pages/src/content/index/mod.rs | 8 + .../rustelo_pages/src/content/index/pages.rs | 67 + .../src/content/index/unified.rs | 58 + .../crates/rustelo_pages/src/content/mod.rs | 13 + .../crates/rustelo_pages/src/external_link.rs | 39 + .../crates/rustelo_pages/src/home/mod.rs | 7 + .../crates/rustelo_pages/src/home/pages.rs | 62 + .../crates/rustelo_pages/src/home/unified.rs | 362 +++ .../crates/rustelo_pages/src/legal/mod.rs | 2 + .../crates/rustelo_pages/src/legal/pages.rs | 61 + .../crates/rustelo_pages/src/legal/unified.rs | 137 + .../crates/rustelo_pages/src/lib.rs | 48 + .../crates/rustelo_pages/src/not_found/mod.rs | 2 + .../rustelo_pages/src/not_found/pages.rs | 62 + .../rustelo_pages/src/not_found/unified.rs | 55 + .../rustelo_pages/src/post_viewer/client.rs | 299 ++ .../src/post_viewer/content_loader.rs | 207 ++ .../src/post_viewer/html_generator.rs | 358 +++ .../rustelo_pages/src/post_viewer/mod.rs | 9 + .../rustelo_pages/src/post_viewer/pages.rs | 19 + .../src/post_viewer/path_resolver.rs | 236 ++ .../rustelo_pages/src/post_viewer/ssr.rs | 136 + .../rustelo_pages/src/post_viewer/unified.rs | 89 + .../crates/rustelo_pages/src/privacy/mod.rs | 2 + .../crates/rustelo_pages/src/privacy/pages.rs | 61 + .../rustelo_pages/src/privacy/unified.rs | 109 + .../crates/rustelo_pages/src/user/mod.rs | 2 + .../crates/rustelo_pages/src/user/pages.rs | 61 + .../crates/rustelo_pages/src/user/unified.rs | 43 + .../crates/rustelo_routing/Cargo.toml | 31 + .../crates/rustelo_routing/src/cache.rs | 374 +++ .../crates/rustelo_routing/src/components.rs | 56 + .../crates/rustelo_routing/src/config.rs | 366 +++ .../crates/rustelo_routing/src/core_types.rs | 74 + .../crates/rustelo_routing/src/defs.rs | 68 + .../rustelo_routing/src/engine/content.rs | 190 ++ .../rustelo_routing/src/engine/factory.rs | 189 ++ .../rustelo_routing/src/engine/global.rs | 96 + .../crates/rustelo_routing/src/engine/mod.rs | 126 + .../rustelo_routing/src/engine/navigation.rs | 71 + .../rustelo_routing/src/engine/parameters.rs | 75 + .../rustelo_routing/src/engine/resolver.rs | 563 ++++ .../rustelo_routing/src/engine/types.rs | 95 + .../rustelo_routing/src/generated_access.rs | 110 + .../crates/rustelo_routing/src/language.rs | 357 +++ .../crates/rustelo_routing/src/lib.rs | 94 + .../crates/rustelo_routing/src/mapping.rs | 13 + .../crates/rustelo_routing/src/seo.rs | 518 ++++ .../crates/rustelo_routing/src/tracker.rs | 472 +++ .../crates/rustelo_routing/src/traits.rs | 91 + .../rustelo_routing/src/url_generation.rs | 723 +++++ .../crates/rustelo_routing/src/utils.rs | 1318 ++++++++ .../crates/rustelo_server/Cargo.toml | 232 ++ .../crates/rustelo_server/README.md | 497 +++ .../rustelo_server/docs/USAGE_PATTERNS.md | 591 ++++ .../crates/rustelo_server/examples/.gitignore | 23 + .../rustelo_server/examples/config_example.rs | 309 ++ .../rustelo_server/examples/generate_hash.rs | 28 + .../examples/root_path_example.rs | 255 ++ .../rustelo_server/examples/verify_argon2.rs | 61 + .../crates/rustelo_server/src/api/menu.rs | 59 + .../crates/rustelo_server/src/api/mod.rs | 10 + .../crates/rustelo_server/src/api/nav_test.rs | 408 +++ .../crates/rustelo_server/src/app_state.rs | 107 + .../crates/rustelo_server/src/auth/jwt.rs | 323 ++ .../rustelo_server/src/auth/middleware.rs | 389 +++ .../crates/rustelo_server/src/auth/mod.rs | 25 + .../crates/rustelo_server/src/auth/oauth.rs | 485 +++ .../rustelo_server/src/auth/password.rs | 294 ++ .../rustelo_server/src/auth/repository.rs | 8 + .../crates/rustelo_server/src/auth/routes.rs | 641 ++++ .../crates/rustelo_server/src/auth/service.rs | 764 +++++ .../rustelo_server/src/auth/two_factor.rs | 531 ++++ .../src/bin/config_crypto_tool.rs | 368 +++ .../rustelo_server/src/bin/config_tool.rs | 801 +++++ .../rustelo_server/src/bin/config_wizard.rs | 968 ++++++ .../src/bin/content_processor.rs | 1092 +++++++ .../src/bin/converter_modules/frontmatter.rs | 123 + .../src/bin/converter_modules/metadata.rs | 236 ++ .../src/bin/converter_modules/mod.rs | 21 + .../src/bin/converter_modules/routing.rs | 28 + .../src/bin/converter_modules/styles.rs | 317 ++ .../src/bin/converter_modules/templates.rs | 83 + .../src/bin/converter_modules/toml_handler.rs | 137 + .../src/bin/converter_modules/types.rs | 38 + .../rustelo_server/src/bin/crypto_tool.rs | 646 ++++ .../crates/rustelo_server/src/bin/db_tool.rs | 423 +++ .../src/bin/simple_config_wizard.rs | 703 +++++ .../rustelo_server/src/bin/test_config.rs | 79 + .../rustelo_server/src/bin/test_database.rs | 84 + .../rustelo_server/src/config/config.rs | 736 +++++ .../crates/rustelo_server/src/config/defs.rs | 504 ++++ .../rustelo_server/src/config/encryption.rs | 434 +++ .../rustelo_server/src/config/features.rs | 617 ++++ .../crates/rustelo_server/src/config/mod.rs | 46 + .../crates/rustelo_server/src/config/tests.rs | 216 ++ .../crates/rustelo_server/src/content/api.rs | 954 ++++++ .../rustelo_server/src/content/api_tests.rs | 373 +++ .../rustelo_server/src/content/file_loader.rs | 866 ++++++ .../src/content/html_processor.rs | 618 ++++ .../rustelo_server/src/content/indexer.rs | 864 ++++++ .../src/content/integration_tests.rs | 484 +++ .../crates/rustelo_server/src/content/mod.rs | 71 + .../rustelo_server/src/content/processor.rs | 413 +++ .../rustelo_server/src/content/renderer.rs | 540 ++++ .../rustelo_server/src/content/repository.rs | 675 +++++ .../rustelo_server/src/content/routes.rs | 692 +++++ .../rustelo_server/src/content/service.rs | 1670 +++++++++++ .../src/content/service_tests.rs | 350 +++ .../version_control/database_backend.rs | 219 ++ .../content/version_control/file_backend.rs | 463 +++ .../src/content/version_control/mod.rs | 65 + .../src/content/version_control/models.rs | 285 ++ .../src/content/version_control/traits.rs | 250 ++ .../src/content/version_control/utils.rs | 180 ++ .../rustelo_server/src/content/watcher.rs | 1101 +++++++ .../rustelo_server/src/content/websocket.rs | 493 +++ .../src/content/websocket_tests.rs | 419 +++ .../rustelo_server/src/content_loader.rs | 653 ++++ .../rustelo_server/src/crypto/README.md | 824 +++++ .../rustelo_server/src/crypto/config.rs | 559 ++++ .../rustelo_server/src/crypto/integration.rs | 488 +++ .../crates/rustelo_server/src/crypto/mod.rs | 500 ++++ .../rustelo_server/src/crypto/session.rs | 479 +++ .../rustelo_server/src/database/auth.rs | 1677 +++++++++++ .../rustelo_server/src/database/connection.rs | 614 ++++ .../rustelo_server/src/database/migrations.rs | 837 ++++++ .../crates/rustelo_server/src/database/mod.rs | 361 +++ .../rustelo_server/src/database/rbac.rs | 1142 +++++++ .../crates/rustelo_server/src/email/mod.rs | 80 + .../rustelo_server/src/email/providers.rs | 540 ++++ .../rustelo_server/src/email/service.rs | 700 +++++ .../rustelo_server/src/email/templates.rs | 500 ++++ .../crates/rustelo_server/src/email/types.rs | 399 +++ .../src/examples/crypto_integration.rs | 592 ++++ .../src/examples/database_example.rs | 318 ++ .../crates/rustelo_server/src/examples/mod.rs | 5 + .../src/examples/template_integration.rs | 399 +++ .../src/handlers/admin/dashboard.rs | 490 +++ .../src/handlers/admin/users.rs | 830 ++++++ .../src/handlers/email/handlers.rs | 582 ++++ .../rustelo_server/src/handlers/email/mod.rs | 351 +++ .../src/handlers/email/routes.rs | 206 ++ .../crates/rustelo_server/src/handlers/mod.rs | 16 + .../rustelo_server/src/handlers/template.rs | 362 +++ .../crates/rustelo_server/src/health.rs | 529 ++++ .../crates/rustelo_server/src/lib.rs | 218 ++ .../crates/rustelo_server/src/metrics.rs | 352 +++ .../crates/rustelo_server/src/migrations.rs | 542 ++++ .../src/rbac/_integration_example.rs.skip | 612 ++++ .../rustelo_server/src/rbac/_main.rs.skip | 537 ++++ .../rustelo_server/src/rbac/_server.rs.skip | 645 ++++ .../rustelo_server/src/rbac/conditional.rs | 623 ++++ .../crates/rustelo_server/src/rbac/config.rs | 530 ++++ .../rustelo_server/src/rbac/middleware.rs | 604 ++++ .../crates/rustelo_server/src/rbac/mod.rs | 27 + .../rustelo_server/src/rbac/repository.rs | 386 +++ .../crates/rustelo_server/src/rbac/service.rs | 643 ++++ .../crates/rustelo_server/src/routes.rs | 14 + .../crates/rustelo_server/src/routing.rs | 313 ++ .../crates/rustelo_server/src/run.rs | 320 ++ .../crates/rustelo_server/src/shell.rs | 162 + .../crates/rustelo_server/src/startup/api.rs | 156 + .../crates/rustelo_server/src/startup/auth.rs | 105 + .../rustelo_server/src/startup/cache.rs | 95 + .../rustelo_server/src/startup/database.rs | 83 + .../rustelo_server/src/startup/email.rs | 91 + .../rustelo_server/src/startup/handlers.rs | 95 + .../rustelo_server/src/startup/middleware.rs | 133 + .../crates/rustelo_server/src/startup/mod.rs | 60 + .../rustelo_server/src/startup/router.rs | 408 +++ .../rustelo_server/src/startup/server.rs | 236 ++ .../rustelo_server/src/template/config.rs | 259 ++ .../rustelo_server/src/template/engine.rs | 329 ++ .../rustelo_server/src/template/loader.rs | 470 +++ .../crates/rustelo_server/src/template/mod.rs | 73 + .../rustelo_server/src/template/routes.rs | 90 + .../rustelo_server/src/template/service.rs | 523 ++++ .../src/utils/lang_detection.rs | 311 ++ .../crates/rustelo_server/src/utils/mod.rs | 322 ++ .../src/utils/theme_detection.rs | 235 ++ .../tests/config_integration_test.rs | 691 +++++ .../crates/rustelo_tools/Cargo.toml | 75 + .../analytics/browser/console_collector.rs | 411 +++ .../src/analytics/browser/error_detector.rs | 345 +++ .../analytics/browser/interaction_tracker.rs | 444 +++ .../src/analytics/browser/mod.rs | 585 ++++ .../crates/rustelo_tools/src/analytics/cli.rs | 955 ++++++ .../rustelo_tools/src/analytics/collector.rs | 475 +++ .../crates/rustelo_tools/src/analytics/mod.rs | 344 +++ .../src/analytics/navigation/cache_monitor.rs | 300 ++ .../src/analytics/navigation/mod.rs | 325 ++ .../analytics/navigation/route_analytics.rs | 412 +++ .../navigation/tracker_integration.rs | 84 + .../rustelo_tools/src/analytics/search.rs | 525 ++++ .../rustelo_tools/src/analytics/server/mod.rs | 350 +++ .../src/analytics/server/panic_detector.rs | 308 ++ .../analytics/server/performance_monitor.rs | 610 ++++ .../crates/rustelo_tools/src/bin/dev_tools.rs | 120 + .../crates/rustelo_tools/src/bin/manager.rs | 1437 +++++++++ .../crates/rustelo_tools/src/bin/tools.rs | 27 + .../crates/rustelo_tools/src/build/api.rs | 406 +++ .../build_tasks/client_route_analysis.rs | 420 +++ .../build/build_tasks/component_analysis.rs | 362 +++ .../build_tasks/comprehensive_analysis.rs | 1153 +++++++ .../src/build/build_tasks/content_types.rs | 615 ++++ .../src/build/build_tasks/mod.rs | 44 + .../src/build/build_tasks/page_generation.rs | 739 +++++ .../src/build/build_tasks/page_templates.rs | 282 ++ .../build/build_tasks/resource_discovery.rs | 740 +++++ .../route_generation/boilerplate.rs | 390 +++ .../route_generation/component_generator.rs | 551 ++++ .../build_tasks/route_generation/deletion.rs | 313 ++ .../build_tasks/route_generation/generator.rs | 282 ++ .../build_tasks/route_generation/loader.rs | 177 ++ .../build/build_tasks/route_generation/mod.rs | 30 + .../build_tasks/route_generation/template.rs | 141 + .../build_tasks/route_generation/types.rs | 35 + .../build_tasks/route_generation/utils.rs | 54 + .../route_generation/validation.rs | 78 + .../build_tasks/server_route_analysis.rs | 385 +++ .../templates/basic_page_unified.rs | 72 + .../templates/content_list_unified.rs | 118 + .../templates/form_page_unified.rs | 147 + .../templates/hero_page_unified.rs | 119 + .../build_tasks/templates/standard_client.rs | 36 + .../build_tasks/templates/standard_mod.rs | 10 + .../build_tasks/templates/standard_ssr.rs | 24 + .../src/build/build_tasks/utils.rs | 113 + .../src/build/config_constants.rs | 153 + .../src/build/enhanced_page_scaffolding.rs | 375 +++ .../src/build/foundation_discovery.rs | 796 +++++ .../src/build/import_generation.rs | 355 +++ .../crates/rustelo_tools/src/build/mod.rs | 173 ++ .../src/build/page_scaffolding.rs | 656 ++++ .../src/build/path_resolution.rs | 78 + .../rustelo_tools/src/build/route_analysis.rs | 758 +++++ .../src/build/templates/engine.rs | 323 ++ .../src/build/templates/generator.rs | 244 ++ .../rustelo_tools/src/build/templates/i18n.rs | 465 +++ .../src/build/templates/integration.rs | 92 + .../rustelo_tools/src/build/templates/mod.rs | 389 +++ .../src/build/virtual_resolution.rs | 650 ++++ .../rustelo_tools/src/build_coordinator.rs | 427 +++ .../crates/rustelo_tools/src/cli/mod.rs | 34 + .../rustelo_tools/src/cli_enhanced/app.rs | 959 ++++++ .../src/cli_enhanced/commands.rs | 633 ++++ .../rustelo_tools/src/cli_enhanced/config.rs | 203 ++ .../src/cli_enhanced/dashboard.rs | 387 +++ .../rustelo_tools/src/cli_enhanced/editor.rs | 682 +++++ .../src/cli_enhanced/foundation_cli.rs | 341 +++ .../src/cli_enhanced/generation.rs | 255 ++ .../src/cli_enhanced/generator.rs | 740 +++++ .../rustelo_tools/src/cli_enhanced/input.rs | 563 ++++ .../rustelo_tools/src/cli_enhanced/lib.rs | 236 ++ .../src/cli_enhanced/manager_core.rs | 236 ++ .../rustelo_tools/src/cli_enhanced/mod.rs | 17 + .../src/cli_enhanced/page_manager.rs | 254 ++ .../src/cli_enhanced/simple_editor.rs | 28 + .../src/cli_enhanced/version_control.rs | 427 +++ .../src/comprehensive_analysis.rs | 84 + .../crates/rustelo_tools/src/dev/mod.rs | 44 + .../crates/rustelo_tools/src/lib.rs | 58 + .../crates/rustelo_tools/src/manager/app.rs | 933 ++++++ .../rustelo_tools/src/manager/config.rs | 260 ++ .../src/manager/dashboard/actions.rs | 510 ++++ .../src/manager/dashboard/config.rs | 323 ++ .../src/manager/dashboard/mod.rs | 875 ++++++ .../src/manager/dashboard/state.rs | 1399 +++++++++ .../rustelo_tools/src/manager/dashboard/ui.rs | 1043 +++++++ .../rustelo_tools/src/manager/editor.rs | 716 +++++ .../rustelo_tools/src/manager/generation.rs | 255 ++ .../rustelo_tools/src/manager/generator.rs | 784 +++++ .../crates/rustelo_tools/src/manager/input.rs | 597 ++++ .../crates/rustelo_tools/src/manager/mod.rs | 253 ++ .../rustelo_tools/src/manager/page_manager.rs | 254 ++ .../rustelo_tools/src/manager/ui/form.rs | 922 ++++++ .../src/manager/ui/generation.rs | 564 ++++ .../rustelo_tools/src/manager/ui/mod.rs | 15 + .../rustelo_tools/src/manager/ui/modals.rs | 553 ++++ .../src/manager/ui/page_manager.rs | 692 +++++ .../rustelo_tools/src/manager/ui/preview.rs | 907 ++++++ .../rustelo_tools/src/manager/ui/terminal.rs | 73 + .../src/manager/version_control.rs | 427 +++ .../rustelo_tools/src/page_scaffolding.rs | 656 ++++ .../rustelo_tools/src/publishing/deploy.rs | 334 +++ .../rustelo_tools/src/publishing/mod.rs | 19 + .../rustelo_tools/src/publishing/package.rs | 444 +++ .../src/publishing/rustelo_hub.rs | 29 + .../rustelo_tools/src/publishing/sync.rs | 263 ++ .../rustelo_tools/src/route_analysis.rs | 731 +++++ .../crates/rustelo_tools/src/smart_cache.rs | 380 +++ .../rustelo_tools/src/templates/engine.rs | 323 ++ .../rustelo_tools/src/templates/generator.rs | 244 ++ .../rustelo_tools/src/templates/i18n.rs | 465 +++ .../src/templates/integration.rs | 92 + .../crates/rustelo_tools/src/templates/mod.rs | 389 +++ .../crates/rustelo_tools/src/traits.rs | 267 ++ .../crates/rustelo_tools/src/utils/mod.rs | 6 + .../rustelo_tools/src/utils/route_metadata.rs | 288 ++ .../src/utils/route_metadata_impl.rs | 182 ++ .../crates/rustelo_utils/Cargo.toml | 31 + .../crates/rustelo_utils/src/env_parsing.rs | 149 + .../crates/rustelo_utils/src/lib.rs | 53 + .../crates/rustelo_utils/src/manifest.rs | 832 ++++++ .../crates/rustelo_utils/src/text_utils.rs | 227 ++ .../crates/rustelo_utils/src/validation.rs | 444 +++ .../framework/crates/rustelo_auth/Cargo.toml | 49 + .../framework/crates/rustelo_auth/src/jwt.rs | 41 + .../framework/crates/rustelo_auth/src/lib.rs | 16 + .../crates/rustelo_auth/src/oauth.rs | 41 + .../crates/rustelo_auth/src/password.rs | 33 + .../crates/rustelo_auth/src/permissions.rs | 89 + .../crates/rustelo_auth/src/sessions.rs | 71 + .../crates/rustelo_auth/src/two_factor.rs | 54 + .../framework/crates/rustelo_cli/Cargo.toml | 59 + .../crates/rustelo_cli/src/assets.rs | 61 + .../crates/rustelo_cli/src/commands/assets.rs | 709 +++++ .../crates/rustelo_cli/src/commands/build.rs | 200 ++ .../rustelo_cli/src/commands/contributions.rs | 53 + .../src/commands/contributions_broken.rs | 321 ++ .../crates/rustelo_cli/src/commands/cross.rs | 439 +++ .../crates/rustelo_cli/src/commands/dev.rs | 142 + .../rustelo_cli/src/commands/feature.rs | 304 ++ .../rustelo_cli/src/commands/features.rs | 497 +++ .../rustelo_cli/src/commands/foundation.rs | 536 ++++ .../crates/rustelo_cli/src/commands/init.rs | 2651 +++++++++++++++++ .../rustelo_cli/src/commands/installer.rs | 298 ++ .../rustelo_cli/src/commands/marketplace.rs | 76 + .../crates/rustelo_cli/src/commands/mod.rs | 17 + .../rustelo_cli/src/commands/pipeline.rs | 287 ++ .../crates/rustelo_cli/src/commands/remote.rs | 976 ++++++ .../rustelo_cli/src/commands/resolver.rs | 219 ++ .../crates/rustelo_cli/src/commands/update.rs | 852 ++++++ .../rustelo_cli/src/conflicts/detector.rs | 21 + .../crates/rustelo_cli/src/conflicts/mod.rs | 171 ++ .../rustelo_cli/src/conflicts/resolver.rs | 21 + .../rustelo_cli/src/conflicts/strategies.rs | 29 + .../crates/rustelo_cli/src/embedded.rs | 56 + .../src/integration/configuration.rs | 171 ++ .../rustelo_cli/src/integration/dependency.rs | 131 + .../src/integration/environment.rs | 71 + .../src/integration/infrastructure.rs | 68 + .../rustelo_cli/src/integration/justfile.rs | 36 + .../crates/rustelo_cli/src/integration/mod.rs | 96 + .../rustelo_cli/src/integration/resource.rs | 113 + .../rustelo_cli/src/integration/styling.rs | 77 + .../framework/crates/rustelo_cli/src/main.rs | 1215 ++++++++ .../rustelo_cli/src/marketplace/downloader.rs | 20 + .../crates/rustelo_cli/src/marketplace/mod.rs | 82 + .../rustelo_cli/src/marketplace/publisher.rs | 21 + .../rustelo_cli/src/marketplace/registry.rs | 90 + .../rustelo_cli/src/marketplace/validator.rs | 20 + .../crates/rustelo_cli/src/performance/mod.rs | 29 + .../crates/rustelo_cli/src/templates.rs | 130 + .../crates/rustelo_cli/src/updater/mod.rs | 30 + .../crates/rustelo_content/Cargo.toml | 54 + .../crates/rustelo_content/src/assets.rs | 39 + .../crates/rustelo_content/src/i18n.rs | 58 + .../crates/rustelo_content/src/lib.rs | 15 + .../crates/rustelo_content/src/markdown.rs | 33 + .../crates/rustelo_content/src/search.rs | 90 + .../crates/rustelo_content/src/templates.rs | 32 + .../framework/crates/rustelo_core/Cargo.toml | 39 + .../crates/rustelo_core/src/assets.rs | 740 +++++ .../crates/rustelo_core/src/build.rs | 596 ++++ .../crates/rustelo_core/src/config.rs | 143 + .../crates/rustelo_core/src/error.rs | 41 + .../framework/crates/rustelo_core/src/lib.rs | 28 + .../crates/rustelo_core/src/processors.rs | 368 +++ .../crates/rustelo_core/src/traits.rs | 79 + .../crates/rustelo_core/src/utils.rs | 120 + .../framework/crates/rustelo_web/Cargo.toml | 54 + .../crates/rustelo_web/src/components.rs | 27 + .../crates/rustelo_web/src/handlers.rs | 19 + .../framework/crates/rustelo_web/src/lib.rs | 22 + .../crates/rustelo_web/src/router.rs | 43 + .../crates/rustelo_web/src/server.rs | 47 + crates/templates/README.md | 232 ++ crates/templates/client-template/Cargo.toml | 114 + crates/templates/client-template/build.rs | 147 + crates/templates/core-lib-template/Cargo.toml | 111 + crates/templates/core-lib-template/README.md | 211 ++ .../core-lib-template/src/components.rs | 228 ++ .../core-lib-template/src/config_resolver.rs | 622 ++++ .../core-lib-template/src/content.rs | 139 + .../templates/core-lib-template/src/errors.rs | 254 ++ .../templates/core-lib-template/src/i18n.rs | 72 + crates/templates/core-lib-template/src/ids.rs | 330 ++ crates/templates/core-lib-template/src/lib.rs | 368 +++ .../core-lib-template/src/routing.rs | 377 +++ .../templates/core-lib-template/src/time.rs | 242 ++ .../templates/core-lib-template/src/utils.rs | 290 ++ .../templates/core-lib-template/src/wasm.rs | 229 ++ crates/templates/rustelo-cli/Cargo.toml | 41 + crates/templates/rustelo-cli/src/main.rs | 1632 ++++++++++ crates/templates/server-template/Cargo.toml | 214 ++ crates/templates/server-template/build.rs | 232 ++ crates/templates/server-template/src/auth.rs | 31 + .../templates/server-template/src/config.rs | 52 + .../templates/server-template/src/content.rs | 31 + .../templates/server-template/src/database.rs | 31 + crates/templates/server-template/src/email.rs | 31 + crates/templates/server-template/src/error.rs | 20 + .../templates/server-template/src/handlers.rs | 333 +++ crates/templates/server-template/src/lib.rs | 423 +++ crates/templates/server-template/src/main.rs | 238 ++ .../templates/server-template/src/metrics.rs | 31 + .../server-template/src/middleware.rs | 29 + .../templates/server-template/src/routes.rs | 11 + .../templates/server-template/src/server.rs | 74 + 688 files changed, 195869 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 crates/foundation/FOUNDATION_INTEGRATION_GUIDE.md create mode 100644 crates/foundation/README.md create mode 100644 crates/foundation/crates/rustelo_client/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_client/README.md create mode 100644 crates/foundation/crates/rustelo_client/docs/HYDRATION_GUIDE.md create mode 100644 crates/foundation/crates/rustelo_client/examples/basic_hydration.rs create mode 100644 crates/foundation/crates/rustelo_client/examples/custom_extensions.rs create mode 100644 crates/foundation/crates/rustelo_client/examples/state_management.rs create mode 100644 crates/foundation/crates/rustelo_client/src/app.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/context.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/context_simple.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/error_display.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/errors.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/login.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/mod.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/register.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/two_factor.rs create mode 100644 crates/foundation/crates/rustelo_client/src/auth/two_factor_login.rs create mode 100644 crates/foundation/crates/rustelo_client/src/config/mod.rs create mode 100644 crates/foundation/crates/rustelo_client/src/examples/admin_integration.rs create mode 100644 crates/foundation/crates/rustelo_client/src/highlight.rs create mode 100644 crates/foundation/crates/rustelo_client/src/i18n.rs create mode 100644 crates/foundation/crates/rustelo_client/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_client/src/routing.rs create mode 100644 crates/foundation/crates/rustelo_client/src/state/mod.rs create mode 100644 crates/foundation/crates/rustelo_client/src/state/theme.rs create mode 100644 crates/foundation/crates/rustelo_client/src/utils/hydration_debug.rs create mode 100644 crates/foundation/crates/rustelo_client/src/utils/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_components/README.md create mode 100644 crates/foundation/crates/rustelo_components/docs/COMPONENT_CATALOG.md create mode 100644 crates/foundation/crates/rustelo_components/docs/USAGE_PATTERNS.md create mode 100644 crates/foundation/crates/rustelo_components/examples/_basic_layout.rs.skip create mode 100644 crates/foundation/crates/rustelo_components/examples/_content_showcase.rs.skip create mode 100644 crates/foundation/crates/rustelo_components/examples/_navigation_demo.rs.skip create mode 100644 crates/foundation/crates/rustelo_components/src/admin/admin_layout/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/admin/admin_layout/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/admin/admin_layout/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/admin/admin_layout/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/admin/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/card.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/grid.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/html.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/manager.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/pagination.rs create mode 100644 crates/foundation/crates/rustelo_components/src/content/simple_grid.rs create mode 100644 crates/foundation/crates/rustelo_components/src/filter/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/filter/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/filter/shared.rs create mode 100644 crates/foundation/crates/rustelo_components/src/filter/ssr copy.rs create mode 100644 crates/foundation/crates/rustelo_components/src/filter/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/filter/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_components/src/logo/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/logo/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/logo/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/logo/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/brand_header.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/footer/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/footer/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/footer/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/footer/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/language_selector/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/language_selector/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/language_selector/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/language_selector/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/menu_registry.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/navmenu/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/navmenu/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/navmenu/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/navmenu/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_footer/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_footer/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_footer/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_footer/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_navmenu/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_navmenu/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_navmenu/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/navigation/pre_navmenu/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/theme/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/theme/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/theme/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/theme/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/menu_item/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/menu_item/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/menu_item/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/menu_item/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/mobile_menu/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/mobile_menu/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/mobile_menu/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/mobile_menu/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/page_transition/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/page_transition/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/page_transition/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/page_transition/unified.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/spa_link/client.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/spa_link/mod.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/spa_link/ssr.rs create mode 100644 crates/foundation/crates/rustelo_components/src/ui/spa_link/unified.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/.gitignore create mode 100644 crates/foundation/crates/rustelo_core_lib/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_core_lib/README.md create mode 100644 crates/foundation/crates/rustelo_core_lib/_build.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/build.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/docs/USAGE_PATTERNS.md create mode 100644 crates/foundation/crates/rustelo_core_lib/examples/_build_system_integration.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_lib/examples/_config_setup.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_lib/examples/_configuration_driven_pages.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_lib/examples/_extending_with_custom_templates.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_lib/examples/_language_setup.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_lib/examples/_test_lang_config.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_lib/src/auth.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/cache/content.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/cache/lru.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/cache/memory.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/cache/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/cache/persistent.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/categories/cache.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/categories/emoji.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/categories/filter.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/categories/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/categories/validation.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/categories/wasm.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/config/content.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/config/defs.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/config/language.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/config/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/content/card.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/content/item.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/content/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/content/resolver.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/content/traits.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/content_resolver.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/defs.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/content_loader.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/content_traits.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/ftl.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/ftl_parser.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/loaders.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/macros.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/markdown.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/metadata.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/models.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/resolvers.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/fluent/types.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/generated.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/content_helper.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/defs.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/helpers.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/page_translator.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/unified.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/i18n/urls.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/integrity.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/layered_override.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/mergeable_configs.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/meta_preloader.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/path_resolution.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/registration.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/resources/loader.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/resources/manager.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/resources/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/cache.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/components.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/config.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/core_types.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/defs.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/content.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/factory.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/global.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/navigation.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/parameters.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/resolver.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/engine/types.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/generated_access.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/language.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/mapping.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/seo.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/tracker.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/traits.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/url_generation.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/utils.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/routing/utils_backup.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/state/app_state.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/state/content_loader.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/state/language.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/state/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/state/navigation.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/theme.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/utils/mod.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/utils/nav.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/src/utils/slug.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/tests/content_loader_test.rs.disabled create mode 100644 crates/foundation/crates/rustelo_core_lib/tests/fluent_markdown_tests.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/tests/fluent_models_tests.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/tests/routing_engine_tests.rs create mode 100644 crates/foundation/crates/rustelo_core_lib/tests/routing_utils_tests.rs create mode 100644 crates/foundation/crates/rustelo_core_types/CONFIG_SETTINGS_REFERENCE.md create mode 100644 crates/foundation/crates/rustelo_core_types/CONFIG_TRAITS_GUIDE.md create mode 100644 crates/foundation/crates/rustelo_core_types/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_core_types/README.md create mode 100644 crates/foundation/crates/rustelo_core_types/examples/_configuration_validation.rs.skip create mode 100644 crates/foundation/crates/rustelo_core_types/src/basic_content_item.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/build_info.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/cache_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/content_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/content_features.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/content_kind.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/content_metadata.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/env.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/err_info.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/framework_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/i18n.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/metadata.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/performance_metrics.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/rate_limit_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/routing.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/security_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/site_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/site_info.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/theme_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/traits_client.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/traits_components.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/traits_config.rs create mode 100644 crates/foundation/crates/rustelo_core_types/src/traits_routing.rs create mode 100644 crates/foundation/crates/rustelo_language/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_language/src/discovery.rs create mode 100644 crates/foundation/crates/rustelo_language/src/language_config.rs create mode 100644 crates/foundation/crates/rustelo_language/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_macros/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_macros/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_pages/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_pages/README.md create mode 100644 crates/foundation/crates/rustelo_pages/build_page_generator.rs create mode 100644 crates/foundation/crates/rustelo_pages/docs/PAGE_CATALOG.md create mode 100644 crates/foundation/crates/rustelo_pages/docs/PAGE_SYSTEM_GUIDE.md create mode 100644 crates/foundation/crates/rustelo_pages/examples/_basic_pages.rs.skip create mode 100644 crates/foundation/crates/rustelo_pages/examples/blog_system.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/about/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/about/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/about/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/content/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/content/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/content/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/dashboard/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/dashboard/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/dashboard/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/role/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/role/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/role/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/user/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/user/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/admin/user/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/common.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/contact/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/contact/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/contact/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/category/client.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/category/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/category/ssr.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/category/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/helpers/cta_section.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/helpers/defs.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/helpers/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/helpers/renderer.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/helpers/utils.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/index/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/index/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/index/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/content/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/external_link.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/home/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/home/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/home/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/legal/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/legal/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/legal/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/not_found/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/not_found/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/not_found/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/client.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/content_loader.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/html_generator.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/path_resolver.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/ssr.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/post_viewer/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/privacy/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/privacy/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/privacy/unified.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/user/mod.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/user/pages.rs create mode 100644 crates/foundation/crates/rustelo_pages/src/user/unified.rs create mode 100644 crates/foundation/crates/rustelo_routing/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_routing/src/cache.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/components.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/config.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/core_types.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/defs.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/content.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/factory.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/global.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/mod.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/navigation.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/parameters.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/resolver.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/engine/types.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/generated_access.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/language.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/mapping.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/seo.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/tracker.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/traits.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/url_generation.rs create mode 100644 crates/foundation/crates/rustelo_routing/src/utils.rs create mode 100644 crates/foundation/crates/rustelo_server/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_server/README.md create mode 100644 crates/foundation/crates/rustelo_server/docs/USAGE_PATTERNS.md create mode 100644 crates/foundation/crates/rustelo_server/examples/.gitignore create mode 100644 crates/foundation/crates/rustelo_server/examples/config_example.rs create mode 100644 crates/foundation/crates/rustelo_server/examples/generate_hash.rs create mode 100644 crates/foundation/crates/rustelo_server/examples/root_path_example.rs create mode 100644 crates/foundation/crates/rustelo_server/examples/verify_argon2.rs create mode 100644 crates/foundation/crates/rustelo_server/src/api/menu.rs create mode 100644 crates/foundation/crates/rustelo_server/src/api/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/api/nav_test.rs create mode 100644 crates/foundation/crates/rustelo_server/src/app_state.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/jwt.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/middleware.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/oauth.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/password.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/repository.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/routes.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/service.rs create mode 100644 crates/foundation/crates/rustelo_server/src/auth/two_factor.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/config_crypto_tool.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/config_tool.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/config_wizard.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/content_processor.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/frontmatter.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/metadata.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/routing.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/styles.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/templates.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/toml_handler.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/converter_modules/types.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/crypto_tool.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/db_tool.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/simple_config_wizard.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/test_config.rs create mode 100644 crates/foundation/crates/rustelo_server/src/bin/test_database.rs create mode 100644 crates/foundation/crates/rustelo_server/src/config/config.rs create mode 100644 crates/foundation/crates/rustelo_server/src/config/defs.rs create mode 100644 crates/foundation/crates/rustelo_server/src/config/encryption.rs create mode 100644 crates/foundation/crates/rustelo_server/src/config/features.rs create mode 100644 crates/foundation/crates/rustelo_server/src/config/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/config/tests.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/api.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/api_tests.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/file_loader.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/html_processor.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/indexer.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/integration_tests.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/processor.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/renderer.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/repository.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/routes.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/service.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/service_tests.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/version_control/database_backend.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/version_control/file_backend.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/version_control/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/version_control/models.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/version_control/traits.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/version_control/utils.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/watcher.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/websocket.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content/websocket_tests.rs create mode 100644 crates/foundation/crates/rustelo_server/src/content_loader.rs create mode 100644 crates/foundation/crates/rustelo_server/src/crypto/README.md create mode 100644 crates/foundation/crates/rustelo_server/src/crypto/config.rs create mode 100644 crates/foundation/crates/rustelo_server/src/crypto/integration.rs create mode 100644 crates/foundation/crates/rustelo_server/src/crypto/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/crypto/session.rs create mode 100644 crates/foundation/crates/rustelo_server/src/database/auth.rs create mode 100644 crates/foundation/crates/rustelo_server/src/database/connection.rs create mode 100644 crates/foundation/crates/rustelo_server/src/database/migrations.rs create mode 100644 crates/foundation/crates/rustelo_server/src/database/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/database/rbac.rs create mode 100644 crates/foundation/crates/rustelo_server/src/email/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/email/providers.rs create mode 100644 crates/foundation/crates/rustelo_server/src/email/service.rs create mode 100644 crates/foundation/crates/rustelo_server/src/email/templates.rs create mode 100644 crates/foundation/crates/rustelo_server/src/email/types.rs create mode 100644 crates/foundation/crates/rustelo_server/src/examples/crypto_integration.rs create mode 100644 crates/foundation/crates/rustelo_server/src/examples/database_example.rs create mode 100644 crates/foundation/crates/rustelo_server/src/examples/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/examples/template_integration.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/admin/dashboard.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/admin/users.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/email/handlers.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/email/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/email/routes.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/handlers/template.rs create mode 100644 crates/foundation/crates/rustelo_server/src/health.rs create mode 100644 crates/foundation/crates/rustelo_server/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_server/src/metrics.rs create mode 100644 crates/foundation/crates/rustelo_server/src/migrations.rs create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/_integration_example.rs.skip create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/_main.rs.skip create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/_server.rs.skip create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/conditional.rs create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/config.rs create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/middleware.rs create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/repository.rs create mode 100644 crates/foundation/crates/rustelo_server/src/rbac/service.rs create mode 100644 crates/foundation/crates/rustelo_server/src/routes.rs create mode 100644 crates/foundation/crates/rustelo_server/src/routing.rs create mode 100644 crates/foundation/crates/rustelo_server/src/run.rs create mode 100644 crates/foundation/crates/rustelo_server/src/shell.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/api.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/auth.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/cache.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/database.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/email.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/handlers.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/middleware.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/router.rs create mode 100644 crates/foundation/crates/rustelo_server/src/startup/server.rs create mode 100644 crates/foundation/crates/rustelo_server/src/template/config.rs create mode 100644 crates/foundation/crates/rustelo_server/src/template/engine.rs create mode 100644 crates/foundation/crates/rustelo_server/src/template/loader.rs create mode 100644 crates/foundation/crates/rustelo_server/src/template/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/template/routes.rs create mode 100644 crates/foundation/crates/rustelo_server/src/template/service.rs create mode 100644 crates/foundation/crates/rustelo_server/src/utils/lang_detection.rs create mode 100644 crates/foundation/crates/rustelo_server/src/utils/mod.rs create mode 100644 crates/foundation/crates/rustelo_server/src/utils/theme_detection.rs create mode 100644 crates/foundation/crates/rustelo_server/tests/config_integration_test.rs create mode 100644 crates/foundation/crates/rustelo_tools/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/browser/console_collector.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/browser/error_detector.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/browser/interaction_tracker.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/browser/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/cli.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/collector.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/navigation/cache_monitor.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/navigation/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/navigation/route_analytics.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/navigation/tracker_integration.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/search.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/server/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/server/panic_detector.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/analytics/server/performance_monitor.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/bin/dev_tools.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/bin/manager.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/bin/tools.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/api.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/client_route_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/component_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/comprehensive_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/content_types.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/page_generation.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/page_templates.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/resource_discovery.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/boilerplate.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/component_generator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/deletion.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/generator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/loader.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/template.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/types.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/utils.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/route_generation/validation.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/server_route_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/basic_page_unified.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/content_list_unified.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/form_page_unified.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/hero_page_unified.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/standard_client.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/standard_mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/templates/standard_ssr.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/build_tasks/utils.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/config_constants.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/enhanced_page_scaffolding.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/foundation_discovery.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/import_generation.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/page_scaffolding.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/path_resolution.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/route_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/templates/engine.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/templates/generator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/templates/i18n.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/templates/integration.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/templates/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build/virtual_resolution.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/build_coordinator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/app.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/commands.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/config.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/dashboard.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/editor.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/foundation_cli.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/generation.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/generator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/input.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/lib.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/manager_core.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/page_manager.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/simple_editor.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/cli_enhanced/version_control.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/comprehensive_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/dev/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/app.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/config.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/dashboard/actions.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/dashboard/config.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/dashboard/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/dashboard/state.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/dashboard/ui.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/editor.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/generation.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/generator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/input.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/page_manager.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/form.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/generation.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/modals.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/page_manager.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/preview.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/ui/terminal.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/manager/version_control.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/page_scaffolding.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/publishing/deploy.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/publishing/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/publishing/package.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/publishing/rustelo_hub.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/publishing/sync.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/route_analysis.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/smart_cache.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/templates/engine.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/templates/generator.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/templates/i18n.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/templates/integration.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/templates/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/traits.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/utils/mod.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/utils/route_metadata.rs create mode 100644 crates/foundation/crates/rustelo_tools/src/utils/route_metadata_impl.rs create mode 100644 crates/foundation/crates/rustelo_utils/Cargo.toml create mode 100644 crates/foundation/crates/rustelo_utils/src/env_parsing.rs create mode 100644 crates/foundation/crates/rustelo_utils/src/lib.rs create mode 100644 crates/foundation/crates/rustelo_utils/src/manifest.rs create mode 100644 crates/foundation/crates/rustelo_utils/src/text_utils.rs create mode 100644 crates/foundation/crates/rustelo_utils/src/validation.rs create mode 100644 crates/framework/crates/rustelo_auth/Cargo.toml create mode 100644 crates/framework/crates/rustelo_auth/src/jwt.rs create mode 100644 crates/framework/crates/rustelo_auth/src/lib.rs create mode 100644 crates/framework/crates/rustelo_auth/src/oauth.rs create mode 100644 crates/framework/crates/rustelo_auth/src/password.rs create mode 100644 crates/framework/crates/rustelo_auth/src/permissions.rs create mode 100644 crates/framework/crates/rustelo_auth/src/sessions.rs create mode 100644 crates/framework/crates/rustelo_auth/src/two_factor.rs create mode 100644 crates/framework/crates/rustelo_cli/Cargo.toml create mode 100644 crates/framework/crates/rustelo_cli/src/assets.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/assets.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/build.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/contributions.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/contributions_broken.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/cross.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/dev.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/feature.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/features.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/foundation.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/init.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/installer.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/marketplace.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/mod.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/pipeline.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/remote.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/resolver.rs create mode 100644 crates/framework/crates/rustelo_cli/src/commands/update.rs create mode 100644 crates/framework/crates/rustelo_cli/src/conflicts/detector.rs create mode 100644 crates/framework/crates/rustelo_cli/src/conflicts/mod.rs create mode 100644 crates/framework/crates/rustelo_cli/src/conflicts/resolver.rs create mode 100644 crates/framework/crates/rustelo_cli/src/conflicts/strategies.rs create mode 100644 crates/framework/crates/rustelo_cli/src/embedded.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/configuration.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/dependency.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/environment.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/infrastructure.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/justfile.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/mod.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/resource.rs create mode 100644 crates/framework/crates/rustelo_cli/src/integration/styling.rs create mode 100644 crates/framework/crates/rustelo_cli/src/main.rs create mode 100644 crates/framework/crates/rustelo_cli/src/marketplace/downloader.rs create mode 100644 crates/framework/crates/rustelo_cli/src/marketplace/mod.rs create mode 100644 crates/framework/crates/rustelo_cli/src/marketplace/publisher.rs create mode 100644 crates/framework/crates/rustelo_cli/src/marketplace/registry.rs create mode 100644 crates/framework/crates/rustelo_cli/src/marketplace/validator.rs create mode 100644 crates/framework/crates/rustelo_cli/src/performance/mod.rs create mode 100644 crates/framework/crates/rustelo_cli/src/templates.rs create mode 100644 crates/framework/crates/rustelo_cli/src/updater/mod.rs create mode 100644 crates/framework/crates/rustelo_content/Cargo.toml create mode 100644 crates/framework/crates/rustelo_content/src/assets.rs create mode 100644 crates/framework/crates/rustelo_content/src/i18n.rs create mode 100644 crates/framework/crates/rustelo_content/src/lib.rs create mode 100644 crates/framework/crates/rustelo_content/src/markdown.rs create mode 100644 crates/framework/crates/rustelo_content/src/search.rs create mode 100644 crates/framework/crates/rustelo_content/src/templates.rs create mode 100644 crates/framework/crates/rustelo_core/Cargo.toml create mode 100644 crates/framework/crates/rustelo_core/src/assets.rs create mode 100644 crates/framework/crates/rustelo_core/src/build.rs create mode 100644 crates/framework/crates/rustelo_core/src/config.rs create mode 100644 crates/framework/crates/rustelo_core/src/error.rs create mode 100644 crates/framework/crates/rustelo_core/src/lib.rs create mode 100644 crates/framework/crates/rustelo_core/src/processors.rs create mode 100644 crates/framework/crates/rustelo_core/src/traits.rs create mode 100644 crates/framework/crates/rustelo_core/src/utils.rs create mode 100644 crates/framework/crates/rustelo_web/Cargo.toml create mode 100644 crates/framework/crates/rustelo_web/src/components.rs create mode 100644 crates/framework/crates/rustelo_web/src/handlers.rs create mode 100644 crates/framework/crates/rustelo_web/src/lib.rs create mode 100644 crates/framework/crates/rustelo_web/src/router.rs create mode 100644 crates/framework/crates/rustelo_web/src/server.rs create mode 100644 crates/templates/README.md create mode 100644 crates/templates/client-template/Cargo.toml create mode 100644 crates/templates/client-template/build.rs create mode 100644 crates/templates/core-lib-template/Cargo.toml create mode 100644 crates/templates/core-lib-template/README.md create mode 100644 crates/templates/core-lib-template/src/components.rs create mode 100644 crates/templates/core-lib-template/src/config_resolver.rs create mode 100644 crates/templates/core-lib-template/src/content.rs create mode 100644 crates/templates/core-lib-template/src/errors.rs create mode 100644 crates/templates/core-lib-template/src/i18n.rs create mode 100644 crates/templates/core-lib-template/src/ids.rs create mode 100644 crates/templates/core-lib-template/src/lib.rs create mode 100644 crates/templates/core-lib-template/src/routing.rs create mode 100644 crates/templates/core-lib-template/src/time.rs create mode 100644 crates/templates/core-lib-template/src/utils.rs create mode 100644 crates/templates/core-lib-template/src/wasm.rs create mode 100644 crates/templates/rustelo-cli/Cargo.toml create mode 100644 crates/templates/rustelo-cli/src/main.rs create mode 100644 crates/templates/server-template/Cargo.toml create mode 100644 crates/templates/server-template/build.rs create mode 100644 crates/templates/server-template/src/auth.rs create mode 100644 crates/templates/server-template/src/config.rs create mode 100644 crates/templates/server-template/src/content.rs create mode 100644 crates/templates/server-template/src/database.rs create mode 100644 crates/templates/server-template/src/email.rs create mode 100644 crates/templates/server-template/src/error.rs create mode 100644 crates/templates/server-template/src/handlers.rs create mode 100644 crates/templates/server-template/src/lib.rs create mode 100644 crates/templates/server-template/src/main.rs create mode 100644 crates/templates/server-template/src/metrics.rs create mode 100644 crates/templates/server-template/src/middleware.rs create mode 100644 crates/templates/server-template/src/routes.rs create mode 100644 crates/templates/server-template/src/server.rs diff --git a/.gitignore b/.gitignore index c950441..47e8148 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,11 @@ +wrks +ROOT +OLD +CLAUDE.md +AGENTS.md +.claude +.opencode +.coder # Generated by Cargo # will have compiled files and executables debug/ @@ -96,3 +104,6 @@ Thumbs.db book-output/ # Generated setup report SETUP_COMPLETE.md + +# Archive and working directory +.wrks/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..cd4f37b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,45 @@ +# Changelog + +All notable changes to the Rustelo project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Fixed +- **rustelo_server**: Resolved 302 compilation errors after dependency updates + - Removed duplicate module declarations (`auth`, `content`) in lib.rs + - Fixed incorrect imports: `rand_rustelo_core_lib` → `rand_core` + - Fixed incorrect imports: `rustelo_client` → `client` in email providers + - Removed non-existent `rustelo_utils` import from version_control module + - Corrected RBAC module paths: `rbac_config` → `config`, `rbac_service` → `service` + - Added missing tower-http features: `cors` and `trace` in Cargo.toml + - Implemented `Display` trait for `ResourceType` enum in rustelo_core_lib + - Fixed clippy warnings: unused variables, redundant closures, needless borrows + - Fixed trailing whitespace in all source files + +### Changed +- Temporarily disabled RBAC module (requires refactoring) +- All workspace crates now compile with zero clippy warnings in strict mode (`-D warnings`) +- Code formatted with `cargo +nightly fmt` + +## [0.1.0] - Initial Release + +### Added +- Initial Rustelo framework architecture +- Modular workspace with 17 crates +- Foundation layer (core-lib, components, pages, client, server) +- Framework layer (core, auth, content, web, cli) +- Feature-based architecture with cargo features +- Language-agnostic routing system +- Configuration-driven content management +- Authentication support (JWT, OAuth2, 2FA, RBAC) +- Database abstraction (PostgreSQL, SQLite) +- Email system with multiple providers +- Cryptography utilities (AES-GCM) +- Content processing (Markdown, templating) +- Development tooling and CLI + +[Unreleased]: https://github.com/yourusername/rustelo/compare/v0.1.0...HEAD +[0.1.0]: https://github.com/yourusername/rustelo/releases/tag/v0.1.0 diff --git a/crates/foundation/FOUNDATION_INTEGRATION_GUIDE.md b/crates/foundation/FOUNDATION_INTEGRATION_GUIDE.md new file mode 100644 index 0000000..b40e970 --- /dev/null +++ b/crates/foundation/FOUNDATION_INTEGRATION_GUIDE.md @@ -0,0 +1,696 @@ +# Rustelo Foundation Integration Guide + +## Overview + +The Rustelo Foundation provides a complete ecosystem of library crates for building modern web applications. This guide shows how all foundation crates work together to create powerful, maintainable applications. + +## Foundation Architecture + +``` +Application Layer (Your Implementation) +├── main.rs (imports and uses foundation libraries) +├── build.rs (uses foundation build utilities) +└── Cargo.toml (depends on foundation crates) + +Foundation Library Layer +├── server/ # Server-side library with importable main functions +├── client/ # Client-side library with app mounting functions +├── components/ # Reusable UI component library +├── pages/ # Page generation and template system +├── core-lib/ # Shared utilities and business logic +└── core-types/ # Shared type definitions +``` + +## Complete Application Example + +### 1. Application Structure +``` +my-rustelo-app/ +├── Cargo.toml # Workspace and dependencies +├── build.rs # Build-time page generation +├── src/ +│ ├── main.rs # Application entry point +│ └── lib.rs # Application library code +├── content/ # Markdown content and configuration +├── templates/ # Page templates +└── public/ # Static assets +``` + +### 2. Cargo.toml - Foundation Dependencies +```toml +[package] +name = "my-rustelo-app" +version = "0.1.0" +edition = "2021" + +[dependencies] +# Foundation crates +server = { path = "path/to/rustelo/crates/foundation/crates/server" } +client = { path = "path/to/rustelo/crates/foundation/crates/client" } +components = { path = "path/to/rustelo/crates/foundation/crates/components" } +pages = { path = "path/to/rustelo/crates/foundation/crates/pages" } +core-lib = { path = "path/to/rustelo/crates/foundation/crates/core-lib" } +core-types = { path = "path/to/rustelo/crates/foundation/crates/core-types" } + +# Leptos framework +leptos = { version = "0.8", features = ["ssr", "hydrate"] } +leptos_router = "0.8" +leptos_axum = "0.8" + +# Additional dependencies +tokio = { version = "1.0", features = ["full"] } +axum = "0.8" + +[features] +default = [] +ssr = ["leptos/ssr", "server/ssr", "pages/ssr", "components/ssr"] +hydrate = ["leptos/hydrate", "client/hydrate", "pages/hydrate", "components/hydrate"] + +[[bin]] +name = "server" +path = "src/main.rs" +required-features = ["ssr"] + +[lib] +name = "my_rustelo_app" +crate-type = ["cdylib", "rlib"] +``` + +### 3. build.rs - Foundation Build Integration +```rust +//! Build script using foundation build utilities + +use std::error::Error; + +fn main() -> Result<(), Box> { + // Use server foundation build utilities + server::build::build_foundation()?; + + // Use pages foundation for page generation + pages::build::generate_pages_from_content("content/")?; + + // Use core-lib for configuration processing + core_lib::build::process_configuration("config/")?; + + // Set up rerun conditions + println!("cargo:rerun-if-changed=content/"); + println!("cargo:rerun-if-changed=templates/"); + println!("cargo:rerun-if-changed=config/"); + + Ok(()) +} +``` + +### 4. src/main.rs - Complete Application Integration +```rust +//! Complete Rustelo application using all foundation crates + +use server::{run_server_with_config, ServerConfig}; +use client::{create_base_app, ClientConfig}; +use components::{ + navigation::{BrandHeader, Footer}, + content::{UnifiedContentCard, ContentManager}, + theme::{ThemeProvider, ThemeConfig}, +}; +use pages::{ + HomePage, AboutPage, ContactPage, + content::{ContentIndexPage, ContentCategoryPage}, + PostViewerPage, +}; +use core_lib::{ + config::{load_app_config, AppConfig}, + i18n::{setup_translations, TranslationManager}, + content::{ContentService, MarkdownProcessor}, +}; +use core_types::{ + ContentItem, Route, User, AppError, + config::{DatabaseConfig, I18nConfig}, +}; + +use leptos::*; +use leptos_router::*; + +#[tokio::main] +async fn main() -> Result<(), AppError> { + // 1. Load application configuration using core-lib + let app_config: AppConfig = load_app_config("config/app.toml")?; + + // 2. Setup internationalization using core-lib + let translation_manager = setup_translations(&app_config.i18n)?; + + // 3. Initialize content service using core-lib + let content_service = ContentService::new(&app_config.content_path)?; + + // 4. Configure server using server foundation + let server_config = ServerConfig::builder() + .from_app_config(&app_config) + .content_service(content_service.clone()) + .translation_manager(translation_manager.clone()) + .enable_features(["content", "auth", "i18n"]) + .build(); + + // 5. Start server using foundation main function + run_server_with_config(server_config).await?; + + Ok(()) +} + +/// Application component integrating all foundation components +#[component] +pub fn App() -> impl IntoView { + // Load app configuration + let app_config = use_context::().unwrap(); + + // Setup theme configuration + let theme_config = ThemeConfig::builder() + .from_app_config(&app_config) + .build(); + + view! { + // Theme provider from components foundation + + // Router setup + +
+ // Header using components foundation + + + // Main content with routing using pages foundation +
+ + // Home page from pages foundation + + + // Static pages from pages foundation + + + + // Content pages using pages foundation + + + + + + // Portfolio section + + + // 404 page + + +
+ + // Footer using components foundation + +
+
+
+ } +} + +/// Application header component +#[component] +fn AppHeader() -> impl IntoView { + let app_config = use_context::().unwrap(); + + view! { + + // Navigation using components foundation + + + "Home" + + + "About" + + + "Blog" + + + "Portfolio" + + + "Contact" + + + + // Language selector if i18n enabled + {if app_config.i18n.enabled { + view! { + + }.into_view() + } else { + view! {}.into_view() + }} + + } +} + +/// Application footer component +#[component] +fn AppFooter() -> impl IntoView { + let app_config = use_context::().unwrap(); + + view! { +
+
+ // Site links +
+

"Site"

+
+ + "About" + + + "Blog" + + + "Portfolio" + +
+
+ + // Content links +
+

"Content"

+
+ + "Tutorials" + + + "News" + + + "Work" + +
+
+ + // Legal links +
+

"Legal"

+
+ + "Privacy Policy" + + + "Terms of Service" + +
+
+
+
+ } +} + +/// Client-side hydration using client foundation +#[cfg(feature = "hydrate")] +#[wasm_bindgen::prelude::wasm_bindgen] +pub fn hydrate() { + use client::{hydrate_app_with_config, ClientConfig}; + + let client_config = ClientConfig::builder() + .mount_selector("#app") + .enable_hydration(true) + .enable_router(true) + .build(); + + hydrate_app_with_config(|| view! { }, client_config); +} + +/// Server-side rendering setup +#[cfg(feature = "ssr")] +pub fn render_app() -> String { + leptos::ssr::render_to_string(|| view! { }) +} +``` + +## Cross-Crate Communication Patterns + +### 1. Configuration Flow +```rust +// core-lib loads and validates configuration +let app_config = core_lib::config::load_app_config("config/app.toml")?; + +// server uses configuration for setup +let server_config = server::ServerConfig::from_app_config(&app_config); + +// components use configuration for theming +let theme_config = components::theme::ThemeConfig::from_app_config(&app_config); + +// pages use configuration for content processing +let page_config = pages::PageConfig::from_app_config(&app_config); +``` + +### 2. Content Processing Pipeline +```rust +// core-lib processes raw content +let processor = core_lib::content::MarkdownProcessor::new(&app_config.content_path); +let content_items = processor.process_all().await?; + +// pages generates pages from processed content +let page_generator = pages::PageGenerator::new() + .with_content_items(content_items) + .with_templates_from_config(&app_config); + +// components display the content +let content_display = components::content::ContentManager::new() + .with_content_source(content_items) + .with_layout("grid"); +``` + +### 3. Type Safety Across Crates +```rust +// core-types defines shared types +use core_types::{ContentItem, User, Route, AppError}; + +// All crates use the same types for consistency +fn process_content(item: ContentItem) -> Result { + // Processing logic +} + +fn render_user_profile(user: User) -> impl IntoView { + // Rendering logic +} + +fn handle_route(route: Route) -> Result<(), AppError> { + // Routing logic +} +``` + +## Build System Integration + +### 1. Multi-Stage Build Process +```rust +// build.rs orchestrates all foundation build utilities +fn main() -> Result<(), Box> { + // Stage 1: Core configuration processing + core_lib::build::process_configuration()?; + + // Stage 2: Content processing and validation + core_lib::build::process_content()?; + + // Stage 3: Page generation + pages::build::generate_pages()?; + + // Stage 4: Route generation + server::build::generate_routes()?; + + // Stage 5: Asset processing + process_static_assets()?; + + Ok(()) +} +``` + +### 2. Feature Flag Coordination +```toml +# Features are coordinated across all foundation crates +[features] +default = [] + +# Core features +auth = ["server/auth", "core-lib/auth", "core-types/auth"] +i18n = ["server/i18n", "client/i18n", "pages/i18n", "core-lib/i18n"] +content-db = ["server/content-db", "pages/content-db", "core-lib/content-db"] + +# Rendering features +ssr = ["server/ssr", "pages/ssr", "components/ssr"] +hydrate = ["client/hydrate", "pages/hydrate", "components/hydrate"] + +# Development features +dev-tools = ["server/dev-tools", "client/dev-tools"] +``` + +## Advanced Integration Patterns + +### 1. Plugin Architecture +```rust +// Define plugin traits in core-types +pub trait ContentProcessor { + fn process(&self, content: &str) -> Result; +} + +// Implement plugins in various crates +impl ContentProcessor for pages::MarkdownProcessor { + fn process(&self, content: &str) -> Result { + self.process_markdown(content) + } +} + +// Register and use plugins through core-lib +let processor_registry = core_lib::plugins::ProcessorRegistry::new() + .register("markdown", Box::new(pages::MarkdownProcessor::new())) + .register("handlebars", Box::new(templates::HandlebarsProcessor::new())); +``` + +### 2. Event System +```rust +// Define events in core-types +#[derive(Debug, Clone)] +pub enum AppEvent { + ContentUpdated(ContentItem), + UserAuthenticated(User), + RouteChanged(Route), + ThemeChanged(String), +} + +// Emit events from various crates +// In pages crate +self.event_bus.emit(AppEvent::ContentUpdated(content_item)); + +// In server crate +self.event_bus.emit(AppEvent::UserAuthenticated(user)); + +// Listen to events in components +self.event_bus.subscribe(|event| match event { + AppEvent::ThemeChanged(theme) => update_theme(theme), + AppEvent::ContentUpdated(item) => refresh_content_display(item), + _ => {} +}); +``` + +### 3. State Management Integration +```rust +// Global state defined in core-types +#[derive(Debug, Clone)] +pub struct AppState { + pub user: Option, + pub theme: Theme, + pub language: Language, + pub content_cache: HashMap, +} + +// State management in core-lib +pub struct StateManager { + state: RwSignal, + event_bus: EventBus, +} + +impl StateManager { + pub fn update_user(&self, user: Option) { + self.state.update(|state| state.user = user); + if let Some(user) = user { + self.event_bus.emit(AppEvent::UserAuthenticated(user)); + } + } +} + +// Use state in components +#[component] +pub fn UserProfile() -> impl IntoView { + let state = use_context::().unwrap(); + let user = create_memo(move |_| state.get_user()); + + view! { + + // Render user profile + + } +} +``` + +## Testing Integration + +### 1. Cross-Crate Testing +```rust +// Integration tests that span multiple crates +#[cfg(test)] +mod integration_tests { + use super::*; + + #[tokio::test] + async fn test_full_content_pipeline() { + // Use core-lib to load configuration + let config = core_lib::config::load_test_config().await.unwrap(); + + // Use pages to process content + let content = pages::process_test_content(&config).await.unwrap(); + + // Use components to render content + let rendered = components::render_test_content(content).await.unwrap(); + + // Verify the full pipeline + assert!(rendered.contains("expected content")); + } + + #[test] + fn test_type_consistency() { + // Verify types work across crate boundaries + let content_item = core_types::ContentItem::new("test", "Test Content"); + let processed = core_lib::content::process_item(content_item.clone()).unwrap(); + let rendered = components::content::render_item(&processed); + + assert_eq!(processed.id, content_item.id); + } +} +``` + +### 2. End-to-End Testing +```rust +// E2E tests using all foundation crates together +#[cfg(test)] +mod e2e_tests { + use super::*; + + #[tokio::test] + async fn test_complete_application() { + // Start server using server foundation + let server_handle = server::test_utils::start_test_server().await; + + // Generate test content using pages foundation + pages::test_utils::generate_test_pages().await.unwrap(); + + // Test client-side functionality + let client_test = client::test_utils::TestClient::new() + .navigate_to("/") + .expect_content("Welcome") + .navigate_to("/blog") + .expect_content("Blog Posts") + .run() + .await; + + assert!(client_test.passed()); + + // Cleanup + server_handle.stop().await; + } +} +``` + +## Deployment Integration + +### 1. Production Build +```bash +#!/bin/bash +# Build script using all foundation capabilities + +# Build server with all features +cargo build --release --features "ssr,auth,content-db,i18n,metrics" + +# Build client for WebAssembly +wasm-pack build --target web --features "hydrate,router,i18n" + +# Generate static pages +cargo run --bin page-generator --features "generation" + +# Process and optimize assets +cargo run --bin asset-processor + +# Create deployment package +tar -czf rustelo-app.tar.gz target/release/server pkg/ generated/ public/ +``` + +### 2. Docker Integration +```dockerfile +# Multi-stage Docker build using foundation crates +FROM rust:1.70 as builder + +# Copy foundation source +COPY rustelo/crates/foundation /app/foundation +COPY . /app/src + +WORKDIR /app/src + +# Build with all production features +RUN cargo build --release --features "production" + +# Build client WASM +RUN wasm-pack build --target web --features "hydrate,router,i18n" + +FROM nginx:alpine + +# Copy server binary +COPY --from=builder /app/src/target/release/server /usr/local/bin/ + +# Copy static assets and generated pages +COPY --from=builder /app/src/pkg /var/www/html/pkg +COPY --from=builder /app/src/generated /var/www/html/generated +COPY --from=builder /app/src/public /var/www/html/public + +# Copy nginx configuration +COPY nginx.conf /etc/nginx/nginx.conf + +# Start script that runs both server and nginx +COPY start.sh /start.sh +RUN chmod +x /start.sh + +CMD ["/start.sh"] +``` + +## Best Practices for Foundation Integration + +### 1. Dependency Management +- Use workspace dependencies for version consistency +- Enable only the features you need +- Use path dependencies during development +- Switch to published crates for production + +### 2. Configuration Management +- Centralize configuration in core-lib +- Use type-safe configuration structs from core-types +- Validate configuration at startup +- Support environment-specific configs + +### 3. Error Handling +- Define common errors in core-types +- Implement From traits for error conversion +- Use Result types consistently across crates +- Provide meaningful error contexts + +### 4. Performance Optimization +- Use foundation build utilities for optimization +- Enable appropriate feature flags +- Leverage foundation caching mechanisms +- Profile across crate boundaries + +### 5. Testing Strategy +- Test individual crates in isolation +- Write integration tests for crate interactions +- Use foundation test utilities +- Implement E2E testing for complete flows + +The Rustelo Foundation provides a complete, integrated development experience where each crate is designed to work seamlessly with the others while maintaining clear separation of concerns and reusability. \ No newline at end of file diff --git a/crates/foundation/README.md b/crates/foundation/README.md new file mode 100644 index 0000000..228c1c9 --- /dev/null +++ b/crates/foundation/README.md @@ -0,0 +1,282 @@ +# Rustelo Foundation Library System + +A complete, modular foundation for building modern web applications with Rust, Leptos, and WebAssembly. + +## 🎯 Overview + +The Rustelo Foundation provides a comprehensive set of library crates that work together to create powerful web applications. Each crate is designed as a reusable library with importable functions, extensive documentation, and practical examples. + +## 📦 Foundation Crates + +### Core System +- **[`server/`](crates/server/)** - Server-side library with importable main functions, routing, and middleware +- **[`client/`](crates/client/)** - Client-side library with app mounting, hydration, and state management +- **[`core-lib/`](crates/core-lib/)** - Shared utilities, configuration, i18n, and business logic +- **[`core-types/`](crates/core-types/)** - Common type definitions and data structures + +### UI System +- **[`components/`](crates/components/)** - Reusable UI component library with theming support +- **[`pages/`](crates/pages/)** - Page generation system with templates and content processing + +## 🚀 Quick Start + +### 1. Import Foundation Libraries +```rust +// In your application's Cargo.toml +[dependencies] +server = { path = "path/to/rustelo/crates/foundation/crates/server" } +client = { path = "path/to/rustelo/crates/foundation/crates/client" } +components = { path = "path/to/rustelo/crates/foundation/crates/components" } +pages = { path = "path/to/rustelo/crates/foundation/crates/pages" } +core-lib = { path = "path/to/rustelo/crates/foundation/crates/core-lib" } +core-types = { path = "path/to/rustelo/crates/foundation/crates/core-types" } +``` + +### 2. Use Foundation Main Functions +```rust +// src/main.rs - Import and use server main function +use server::{run_server, ServerConfig}; + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Simple usage - use foundation server directly + run_server().await?; + Ok(()) +} +``` + +### 3. Build with Foundation Utilities +```rust +// build.rs - Use foundation build functions +use server::build::generate_routes; +use pages::build::generate_pages; +use core_lib::build::process_configuration; + +fn main() -> Result<(), Box> { + // Use foundation build utilities + process_configuration("config/")?; + generate_routes("content/routes/")?; + generate_pages("content/")?; + Ok(()) +} +``` + +### 4. Create UI with Foundation Components +```rust +// Use foundation components and pages +use components::{ + navigation::{BrandHeader, Footer}, + content::UnifiedContentCard, + ui::SpaLink, +}; +use pages::{HomePage, AboutPage, ContactPage}; + +#[component] +fn App() -> impl IntoView { + view! { + + "Home" + "About" + + + + + + + + +