ormed 0.1.0-dev+7 copy "ormed: ^0.1.0-dev+7" to clipboard
ormed: ^0.1.0-dev+7 copied to clipboard

Strongly typed ORM core primitives (annotations, metadata, codecs, and generator) for the routed ecosystem.

Changelog #

0.1.0-dev+7 #

  • Added: Transaction outcome hooks/events that distinguish commit vs rollback (with savepoint scope details).
  • Added: Transaction boundary logging in query logs (BEGIN/COMMIT/ROLLBACK and savepoints).
  • Added: Analyzer plugin is now included in ormed (no separate ormed_analyzer package).
  • Added: Analyzer diagnostics for select/order/group/having validation, nested relation checks, relation callback field mismatch, missing pivot fields, type-aware predicates, query safety (limit/order + unbounded get/all), raw SQL alias checks, DTO validation, and soft-delete/timestamp misuse; supports split-chain tracking.
  • Fixed: copyWith now casts non-nullable Object fields to avoid analyzer errors.

0.1.0-dev+6 #

  • Added: Typed predicate field accessors for where callbacks (e.g. q.title.eq(...)) and typed relation helpers (withPosts, whereHasPosts).
  • Added: Generated copyWith extensions for user-defined models with sentinel-based null handling, including constructor-backed relation fields.
  • Added: Generated toMap/fromMap helpers for user and tracked models using column-name maps.
  • Added: Driver extension registry and query builder hooks (selectExtension, whereExtension, orderByExtension, groupByExtension, havingExtension, join constraints).
  • Added: Full-text query compilation for whereFullText across Postgres, MySQL/MariaDB, and SQLite, including optional index targeting.
  • Docs: Added driver extension tutorial and examples.
  • Added: DataSource logging can now use an injected contextual logger and exposes it for inspection.

0.1.0-dev+5 #

  • Fixed: Treat driver SQL NULL wrapper values as null when applying timestamp defaults.
  • Improved: Generated codecs now omit virtual attributes (timestamps/soft deletes) unless explicitly set.
  • Added: Core tests for SQL NULL handling helpers.
  • Fixed: JSON casts now accept raw strings and mixed JSON values for Object? fields.
  • Fixed: JSON cast decoding now handles byte payloads from MySQL/MariaDB drivers.
  • Fixed: Map/DTO insert & upsert inputs now apply field codecs (casts) consistently.
  • Changed: Automatic timestamps now use plain UTC time without monotonic state.

0.1.0-dev+4 #

  • Added: Relationship touching with touches, touch(), and touchOwners() for keeping related updated_at values in sync.
  • Added: withoutTouchingOn / withoutTimestampsOn scopes to suppress automatic touching or timestamp updates.
  • Added: @OrmModel(timestamps: false) to disable automatic timestamp updates while still using timestamp fields.
  • Improved: Timestamp casting accepts numeric epoch inputs (seconds) in addition to DateTime/Carbon types.
  • Added: Through relations support with hasOneThrough and hasManyThrough relation types.
  • Added: Polymorphic relations with morphTo, morphToMany, and morphedByMany support.
  • Added: Attribute accessors and mutators for get/set interception.
  • Added: Appended/computed attributes for serialization.
  • Added: Extended attribute casting system with custom cast handlers.
  • Added: Pivot enhancements including withPivot field selection and pivot timestamps.
  • Added: Raw query helpers orderByRaw and groupByRaw.
  • Fixed: updatedAt now respects explicitly provided values during updates (dirty-check aware).
  • Added: Object input support for fill, forceFill, and fillIfAbsent methods.
  • Refactored: Decoupled database drivers from the core package. Drivers now register themselves via DriverAdapterRegistry.
  • Added: DataSource.fromConfig as the standard, driver-agnostic entry point for ORM initialization.
  • Added: syncWithoutDetaching, syncWithPivotValues, toggle, and updateExistingPivot methods for ManyToMany relationships.
  • Added: Support for eager loading nested relations (e.g., ds.query<User>().with('posts.comments').get()).
  • Added: copyWith method generation for DTOs and partial models.
  • Added: suppressEvents option to Query for optimized bulk operations.
  • Added: loadOrmConfig() and findOrmConfigFile() convenience helpers for configuration management.
  • Fixed: Eager loading for models with custom primary keys (Issue #12).
  • Fixed: Improved relation inference for complex naming conventions and ambiguous foreign keys (Issue #7).
  • Fixed: Missing relation accessors in generated models for certain edge cases (Issue #6).
  • Fixed: Resolved bugs #4, #11, and #13 related to query builder edge cases.
  • Improved: Code generator now emits dartdoc comments for all generated models and members.
  • Improved: Reached 160/160 pub score with expanded documentation and examples.

0.1.0-dev+3 #

  • Fixed: Timestamp getters (createdAt, updatedAt, deletedAt) now return immutable Carbon instances to prevent accidental mutation of model state when chaining date methods like subDay().
  • Refactored Timestamps and SoftDeletes mixins to use CarbonInterface for getters and Object? for setters.
  • Exported carbonized package directly from ormed.dart.
  • Improved DateTimeCodec to handle Carbon instances during decoding.
  • Fixed mass assignment to handle both field and column names for excluded attributes.
  • Optimized Postgres test performance using transactional isolation.
  • Fixed SQLite test cleanup issue where test_g* files were left behind.
  • Expanded testing documentation with isolation strategies and concurrency guides.
  • Updated doc comments to follow Effective Dart guidelines.

0.1.0-dev+2 #

  • Synchronized release with ormed_cli rebranding.

0.1.0-dev+1 #

  • Added automatic snake_case column name inference for model fields.
  • Fixed DatabaseSeeder.seed<T>() to use repositories for correct data encoding.
  • Fixed bootstrapOrm() to ensure model registration in existing registries.
  • Improved documentation for naming conventions and CLI-first workflow.

0.1.0-dev #

  • Initial release.
5
likes
150
points
53
downloads

Publisher

verified publisherglenfordwilliams.com

Weekly Downloads

Strongly typed ORM core primitives (annotations, metadata, codecs, and generator) for the routed ecosystem.

Repository (GitHub)
View/report issues

Topics

#orm #database #sql

Documentation

Documentation
API reference

Funding

Consider supporting this project:

www.buymeacoffee.com

License

MIT (license)

Dependencies

analysis_server_plugin, analyzer, analyzer_plugin, build, carbonized, collection, contextual, crypto, decimal, dotenv, glob, inflector_dart, meta, path, source_gen, test, yaml

More

Packages that depend on ormed