From 322eb27645fc1bdc2654a4401b7d21d818dca5a6 Mon Sep 17 00:00:00 2001 From: Theodore Brown Date: Sun, 27 Oct 2024 20:08:59 -0500 Subject: [PATCH] Update changelog --- CHANGELOG.md | 74 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65cfc80..c304282 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,20 +4,36 @@ All notable changes to this 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). +## [3.0.0] - 2024-10-27 +### Added +- Official support for PostgreSQL. + +### Changed +- Moved to `DevTheorem` namespace. +- Phaster now validates that property values are scalar or null when inserting and updating rows. +- PHP 8.1+ is now required. + +### Removed +- All previously deprecated methods. + + ## [2.9.0] - 2024-09-10 ### Added - `processValues()` now allows setting the ID of an existing row on the returned object, in which case a new row will not be inserted, and the specified ID will be returned in the list of row IDs. + ## [2.8.0] - 2023-12-22 ### Added - `countEntities()` method and corresponding `count()` route handler. This allows counting the rows that match a query/filter without selecting them. + ## [2.7.0] - 2023-09-27 ### Added - `writableId` bool property to optionally make the ID column writable. + ## [2.6.0] - 2023-08-01 ### Added - `output` bool parameter on `Prop` constructor. @@ -28,6 +44,7 @@ This allows counting the rows that match a query/filter without selecting them. ### Fixed - Error when a `Prop` depends on a property declared in one of the `get*Map` methods. + ## [2.5.0] - 2023-03-05 ### Changed - Minor code cleanup and refactoring. @@ -38,6 +55,7 @@ error messages which lack important details about why the conflict occurred. A b is to add custom checks and errors for conflicts that can occur during normal usage. - Unnecessary `QueryOptions` methods in favor of readonly properties. + ## [2.4.0] - 2022-11-06 ### Added - `getSelectProps()` method as a preferred alternative to `getPropMap()` when using PHP 8+. @@ -48,6 +66,7 @@ is to add custom checks and errors for conflicts that can occur during normal us ### Deprecated - `getPropMap()` method. Use `getSelectProps()` instead. + ## [2.3.0] - 2021-12-15 ### Added - `getBaseSelect()` method to support bound params in base select query. @@ -56,19 +75,23 @@ is to add custom checks and errors for conflicts that can occur during normal us - `propertiesToColumns()` now optionally allows conversions with a partial column map. This makes it possible to generate secondary filters using a subset of properties. + ## [2.2.2] - 2021-08-15 ### Changed - Internal refactoring and static analysis improvements. + ## [2.2.1] - 2021-02-22 ### Changed - Specified additional types and enabled Psalm static analysis. - PHP 7.4+ is now required. + ## [2.2.0] Primordial Refinement - 2020-03-22 ### Added - `getOriginalFilter()` method to `QueryOptions` for retrieving the unprocessed filter array. + ## [2.1.0] Benevolent Mystique - 2019-08-05 ### Added - `processRow()` method to alter a row directly before it is inserted or @@ -79,6 +102,7 @@ updated. Useful for setting columns that aren't in the property map. if no rows were affected (e.g. if the request didn't change the value of any property). - Excluded additional test files from production bundle. + ## [2.0.0] Pressurized Arrangement - 2019-03-22 ### Added - `$sort` parameter to `getEntitiesByIds()`. @@ -91,11 +115,13 @@ if no rows were affected (e.g. if the request didn't change the value of any pro - Previously deprecated `getBaseSelect()`, `getIdColumn()`, `getSelectId()`, and `rowsToJson()` methods. + ## [1.2.2] Pasteurized Recognition - 2019-03-04 ### Fixed - `getById()` route handler now respects `fields` parameter and only selects the specified properties. + ## [1.2.1] Reliant Progenitor - 2019-02-24 ### Added - Support for specifying dependent fields along with `getValue()` function. @@ -107,6 +133,7 @@ aren't default, will still be selected but not output. when selecting the field `a.b.c`, if `a` is a nullable group it will now be checked and set to null as expected. Previously only the direct parent of a selected field was checked. + ## [1.2.0] Emancipation Propagation - 2019-02-22 ### Added - Default and maximum limit can now be configured for each search route. @@ -127,6 +154,7 @@ If left empty all default properties will be selected. instead. If the select query uses a different ID column name than the table used for inserts/updates/deletes, override the table's ID column name by setting an `id` property in `getMap()`. + ## [1.1.1] Maximal Limitation - 2019-01-16 ### Fixed - Error when requesting the maximum page size of 1000. @@ -134,6 +162,7 @@ inserts/updates/deletes, override the table's ID column name by setting an `id` ### Changed - Upgraded peachy-sql dependency to v6.0. + ## [1.1.0] Ambiguous Identity - 2019-01-11 ### Added - `getSelectId()` method to optionally override the column used to get entities by ID. @@ -141,36 +170,41 @@ Necessary when a joined table has a column with the same name as the ID column. - Return `offset`, `limit`, and `lastPage` properties from search route handler. This makes it easy for API clients to see if there are more results to request. + ## [1.0.2] Optimal Fixture - 2017-05-16 ### Changed - Methods for retrieving, patching, and deleting entities by IDs now return early if passed an empty IDs array. + ## [1.0.1] Exacting Characteristic - 2017-03-14 ### Changed - `RouteHandler` now ensures that search parameters have the correct type. + ## [1.0.0] Cosmic Luminary - 2017-03-09 ### Changed - Initial stable release -[2.9.0]: https://github.com/theodorejb/phaster/compare/v2.8.0...v2.9.0 -[2.8.0]: https://github.com/theodorejb/phaster/compare/v2.7.0...v2.8.0 -[2.7.0]: https://github.com/theodorejb/phaster/compare/v2.6.0...v2.7.0 -[2.6.0]: https://github.com/theodorejb/phaster/compare/v2.5.0...v2.6.0 -[2.5.0]: https://github.com/theodorejb/phaster/compare/v2.4.0...v2.5.0 -[2.4.0]: https://github.com/theodorejb/phaster/compare/v2.3.0...v2.4.0 -[2.3.0]: https://github.com/theodorejb/phaster/compare/v2.2.2...v2.3.0 -[2.2.2]: https://github.com/theodorejb/phaster/compare/v2.2.1...v2.2.2 -[2.2.1]: https://github.com/theodorejb/phaster/compare/v2.2.0...v2.2.1 -[2.2.0]: https://github.com/theodorejb/phaster/compare/v2.1.0...v2.2.0 -[2.1.0]: https://github.com/theodorejb/phaster/compare/v2.0.0...v2.1.0 -[2.0.0]: https://github.com/theodorejb/phaster/compare/v1.2.2...v2.0.0 -[1.2.2]: https://github.com/theodorejb/phaster/compare/v1.2.1...v1.2.2 -[1.2.1]: https://github.com/theodorejb/phaster/compare/v1.2.0...v1.2.1 -[1.2.0]: https://github.com/theodorejb/phaster/compare/v1.1.1...v1.2.0 -[1.1.1]: https://github.com/theodorejb/phaster/compare/v1.1.0...v1.1.1 -[1.1.0]: https://github.com/theodorejb/phaster/compare/v1.0.2...v1.1.0 -[1.0.2]: https://github.com/theodorejb/phaster/compare/v1.0.1...v1.0.2 -[1.0.1]: https://github.com/theodorejb/phaster/compare/v1.0.0...v1.0.1 -[1.0.0]: https://github.com/theodorejb/phaster/tree/v1.0.0 + +[3.0.0]: https://github.com/devtheorem/phaster/compare/v2.9.0...v3.0.0 +[2.9.0]: https://github.com/devtheorem/phaster/compare/v2.8.0...v2.9.0 +[2.8.0]: https://github.com/devtheorem/phaster/compare/v2.7.0...v2.8.0 +[2.7.0]: https://github.com/devtheorem/phaster/compare/v2.6.0...v2.7.0 +[2.6.0]: https://github.com/devtheorem/phaster/compare/v2.5.0...v2.6.0 +[2.5.0]: https://github.com/devtheorem/phaster/compare/v2.4.0...v2.5.0 +[2.4.0]: https://github.com/devtheorem/phaster/compare/v2.3.0...v2.4.0 +[2.3.0]: https://github.com/devtheorem/phaster/compare/v2.2.2...v2.3.0 +[2.2.2]: https://github.com/devtheorem/phaster/compare/v2.2.1...v2.2.2 +[2.2.1]: https://github.com/devtheorem/phaster/compare/v2.2.0...v2.2.1 +[2.2.0]: https://github.com/devtheorem/phaster/compare/v2.1.0...v2.2.0 +[2.1.0]: https://github.com/devtheorem/phaster/compare/v2.0.0...v2.1.0 +[2.0.0]: https://github.com/devtheorem/phaster/compare/v1.2.2...v2.0.0 +[1.2.2]: https://github.com/devtheorem/phaster/compare/v1.2.1...v1.2.2 +[1.2.1]: https://github.com/devtheorem/phaster/compare/v1.2.0...v1.2.1 +[1.2.0]: https://github.com/devtheorem/phaster/compare/v1.1.1...v1.2.0 +[1.1.1]: https://github.com/devtheorem/phaster/compare/v1.1.0...v1.1.1 +[1.1.0]: https://github.com/devtheorem/phaster/compare/v1.0.2...v1.1.0 +[1.0.2]: https://github.com/devtheorem/phaster/compare/v1.0.1...v1.0.2 +[1.0.1]: https://github.com/devtheorem/phaster/compare/v1.0.0...v1.0.1 +[1.0.0]: https://github.com/devtheorem/phaster/tree/v1.0.0