Billy Barrow Tilo15

Tilo15 Tilo15/astralis zamanında master buraya push yaptı

  • c8068bef6e feat(config): add WebConfig system for configuration management Introduce a comprehensive configuration system with WebConfig, WebConfigLoader, WebConfigSection, WebConfigError, and ConfigMerger classes. The system is integrated into WebApplication as a singleton in the dependency injection container.

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • f01c4c9248 fix(template): skip conditional attributes in per-context blocks Prevents premature processing of spry-if/spry-else-if/spry-else directives when nested inside spry-per-* containers. The transform_per_attributes function will handle these with proper context during its pass. Removes leftover debug print statements.

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • 250d9a23ef fix(auth): correct user query column name and improve message display - Change query filter from 'user_id' to 'id' in UserComponent - Update message visibility checks from null comparison to length-based - Add margin and flexbox styling to message containers and pagination

1 ay önce

Tilo15 Tilo15/Invercargill-Sql zamanında orm-phase-12 buraya push yaptı

  • 5260173c5a fix(orm): resolve friendly names recursively in expression trees When using friendly names like "id" in WHERE clauses with joins, the generated SQL was ambiguous because friendly names were only resolved at the top level of expressions. This caused issues when multiple tables had columns with the same name. Add recursive resolve_friendly_names method that walks the entire expression tree (BinaryExpression, PropertyExpression, etc.) and replaces VariableExpressions matching friendly names with their underlying qualified expressions. For example, .where(expr("id == $0", 1)) now correctly generates "WHERE val_1_User.id = ?" instead of the ambiguous "WHERE id = ?".

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • 8f44279980 feat(auth): add user creation form to UserManagementComponent Add interactive user creation form with fields for username, email, forename, surname, date of birth, and password. Include error and success message display for user feedback. Also handle null permissions gracefully in AuthorisationToken by defaulting to empty buffer, and fix duplicate yield statement in UserService insert_async method.

1 ay önce

Tilo15 Tilo15/Invercargill-Sql zamanında orm-phase-12 buraya push yaptı

  • 31ca195330 feat(orm): use LEFT JOIN for select_many to support empty collections Change join generation from INNER JOIN to LEFT JOIN in SQLite dialect. This ensures parent rows are returned even when no matching child rows exist, allowing select_many projections to correctly represent empty collections rather than excluding the parent row entirely. Update test_select_many_empty_collection to verify the new behavior: - Parent rows without children are now returned - Child collection properties are empty Enumerable<T>, not null

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • b1c88fd3fc feat(core): add page title support and PageContext - Add abstract title property to PageComponent base class - Create PageContext class to expose page metadata to templates - Add property binding support for child components via prop-* attributes - Register authorisation services in Spry module - Add add_resource method for static resource registration - Implement title property across all demo and example page components - Make UserIdentityProvider public for external access

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • 8a95cec455 refactor(core): rename spry-template-outlet to spry-content Unify the content outlet mechanism under the spry-content tag name. This change consolidates template outlets and component content injection into a single consistent API. The spry-content tag now serves dual purpose: - As template outlet where PageComponent content is inserted - As content injection point for nested component children Component transformation has been reordered to process spry-content nodes after child components are resolved, enabling parent-to-child content injection patterns. - Update all templates and examples to use spry-content - Add ContentInjectionExample demonstrating the pattern - Add documentation for spry-content in component syntax page - Add *.sqlite to gitignore BREAKING CHANGE: spry-template-outlet tag renamed to spry-content. All existing templates must be updated to use the new tag name.

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • 65d6983b4c refactor(tools): rename spry-mkcomponent to spry-mkconst with new approach Rename the spry-mkcomponent tool to spry-mkconst and change the HTML injection approach. Instead of modifying the markup getter directly, the tool now generates a const string that can be referenced by the component. This change preserves Vala LSP compatibility since the component file remains valid Vala code with a proper const reference, rather than relying on build-time injection that confuses language servers. - Delete spry-mkcomponent tool and documentation - Add spry-mkconst tool (untracked) - Update navigation and routes to reference new tool name - Update example component to demonstrate new workflow - Enable tools and demo subdirectories in meson.build BREAKING CHANGE: spry-mkcomponent has been replaced with spry-mkconst. Projects using spry-mkcomponent will need to update their build configuration and component structure to use the new const-based approach.

1 ay önce

Tilo15 Tilo15/astralis zamanında master buraya push yaptı

  • 31c51219ab refactor(server): use SignalHandler.disconnect for signal handler cleanup Replace self-referencing delegate pattern with handler ID-based disconnection using SignalHandler.disconnect. This eliminates the need for nullable handler variables that reference themselves and provides a cleaner approach to one-shot signal handlers.

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • 0eeb8c150d refactor(auth): restructure authentication components and enhance component framework - Rename LoginFormComponent to LoginComponent with simplified declarative usage - Split UserDetailsComponent into UserComponent (display) and UserEditComponent (editing) - Consolidate NewUserComponent into UserEditComponent - Simplify UserManagementComponent with built-in pagination and permission checks - Add spry-method attribute for configuring HTTP methods on component actions - Add skip_content() to ResponseState for returning empty responses - Support boolean expressions in attribute-expr for conditional attributes

1 ay önce

Tilo15 Tilo15/Invercargill zamanında expressions buraya push yaptı

  • 169d933579 feat(expressions): add DateTimeFunctionAccessor for DateTime functions Add DateTimeFunctionAccessorFactory to handle DateTime function accessors in the expression system. Register the new factory in TypeAccessorRegistry and include the source file in the build configuration.
  • 1028887ad9 fix(expressions): add explicit type checks before casting Add type comparison using element.type() == typeof() before calling try_get_as() to ensure correct type matching in LotPropertyAccessor and TypeAccessorRegistry.
  • Bu 2 işlemeler için karşılaştırmaları görüntüle »

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • dde48683ae feat(tools): add spry-mkcomponent tool and refactor expression API Add spry-mkcomponent code generation tool for creating Spry components with associated templates. Includes documentation page and navigation updates. Refactor authentication and database queries to use expression objects directly instead of stringified expressions. This improves type safety and API ergonomics by removing the need for `.to_expression_string()` calls and `new NativeElement<T>()` constructor syntax. Additional changes: - Add `set_authorisation_token()` helper to ResponseState with proper cookie attributes (Secure, HttpOnly, SameSite) - Fix null check in AuthorisationPipelineComponent for missing headers - Defer seed_initial_data until after main loop starts via Idle.add() - Update UserProjection to use expr() for all SQL fragments

1 ay önce

Tilo15 Tilo15/Invercargill-Sql zamanında orm-phase-12 buraya push yaptı

  • a432800919 feat(orm): add unified select_many with three collection item modes Implement a comprehensive collection selection system supporting: - SCALAR mode: Simple values (string, int64) extracted directly from columns - ENTITY mode: Registered entity types materialized using EntityMapper - PROJECTION mode: Registered projection types materialized using ProjectionMapper Key changes: - Add CollectionItemMode enum for mode detection based on TypeProvider registration - Add CollectionSelection class with mode-aware materialization - Add CollectionGroupingInfo for storing parent key expressions from join analysis - Add JoinConditionAnalyzer for extracting grouping keys from join conditions - Update ProjectionMapper with grouping logic to consolidate rows by parent key - Update ProjectionQuery.first()/first_async() to skip LIMIT when collection selections exist - Generate unique column aliases (col_N_Type_name) to avoid SQL conflicts - Add SimpleArrayWrapper to work around Vala nullable value type generics issues - Update SQLiteDialect to handle scalar collection expressions in SELECT clause
  • dd9d0901a2 refactor(orm): consolidate expression string conversion to library method Remove duplicate ExpressionStringVisitor implementations across multiple files in favor of using the library's Expression.to_expression_string() method. Update SplitExpression to store Expression objects directly instead of strings, preserving type information and parameter values throughout the expression processing pipeline. This enables proper handling of ParameterExpression nodes which contain actual values passed via expr() calls. Key changes: - Remove ExpressionStringVisitor classes from expression-to-sql-visitor.vala and aggregate-analyzer.vala - Change SplitExpression properties from string to Expression types - Update VariableTranslationVisitor with visit tracking to prevent double-visiting when library's visitor pattern calls children - Add ParameterExpression handling in visitors for proper value output - Fix dictionary access patterns to use has() before get()
  • 5cfa71560f Broken
  • 04e76e57ab Start iteration 10
  • 7ff662181b feat(orm): add async CRUD methods to ORM session Add asynchronous versions of insert, update, and delete methods to OrmSession. These methods perform the same operations as their synchronous counterparts but yield control back to the main loop during database operations, enabling non-blocking I/O. Includes comprehensive tests for all async methods.

1 ay önce

Tilo15 orm-phase-12 at Tilo15/Invercargill-Sql yeni şubesi oluşturuldu

1 ay önce

Tilo15 Tilo15/Invercargill zamanında expressions buraya push yaptı

  • 10c3a74123 feat(expressions): add literal type suffixes and char support - Add support for numeric type suffixes (L, UL, f) in tokenizer and parser - Add char literal parsing with single quotes and escape sequences - Add hex escape sequence (\xNN) support in strings and char literals - Improve literal formatting with proper type suffixes and escaping - Add NullElement.is_null property accessor - Fix ValueElement handling for interface types (Enumerable) - Add elem<T>() convenience function for creating elements - Enable all tests in TestRunner

1 ay önce

Tilo15 Tilo15/Invercargill-Sql-Inversion zamanında master buraya push yaptı

  • a0f8ad71b5 refactor(di): add metadata to type registrations and adjust lifecycles - Add MapperTypeInfo metadata to mapper and projection registrations for improved type resolution via get_metadata lookups - Change InversionTypeProvider from singleton to transient lifecycle - Refactor MigrationStartupService to create its own scope internally instead of receiving it as a constructor parameter - Add debug print statements for type resolution troubleshooting

1 ay önce

Tilo15 Tilo15/Spry zamanında master buraya push yaptı

  • c4be1b58d7 refactor(auth): migrate to async database operations and token-based auth - Replace session-based authentication with AuthorisationToken pattern - Update database queries from where_expr() to where() with expression strings - Convert synchronous database operations to async (insert_async, update_async) - Add user registration fields: forename, surname, date_of_birth - Simplify example startup with InvercargillSqlInversion integration - Add initial database migration (M0001_Initial) - Update example to use AuthorisationContext for authentication checks

1 ay önce

Tilo15 Tilo15/Invercargill-Sql zamanında orm-phase-10 buraya push yaptı

  • 04e76e57ab Start iteration 10
  • 7ff662181b feat(orm): add async CRUD methods to ORM session Add asynchronous versions of insert, update, and delete methods to OrmSession. These methods perform the same operations as their synchronous counterparts but yield control back to the main loop during database operations, enabling non-blocking I/O. Includes comprehensive tests for all async methods.
  • 7f5bdcac4d Merge remote-tracking branch 'origin/master' into orm-phase-9
  • 006f0f8a2e Merge branch 'orm-phase-8' of Tilo15/Invercargill-Sql into master
  • a29d5534e3 refactor(orm): auto-set table name in register_with_schema The table_name parameter passed to register_with_schema is now automatically applied to the entity mapper builder, eliminating the need for explicit b.table() calls within the build action.

1 ay önce

Tilo15 orm-phase-10 at Tilo15/Invercargill-Sql yeni şubesi oluşturuldu

1 ay önce