Skip to content

Latest commit

 

History

History
1237 lines (869 loc) · 122 KB

File metadata and controls

1237 lines (869 loc) · 122 KB

Changelog

All notable changes to this project will be documented in this file.

3.9.0 — 2026-04-01

🚨 Breaking changes

  • core: [breaking] migrate installers from interfaces to attributes (#2073) (f116247)

🚀 Features

  • database: add support for whereHas and whereDoesntHave (#2081) (5469e01)
  • database: add min, max, avg and sum to query builders (#2083) (c83783c)
  • discovery: support containers with autowiring (#2084) (4a85663)

⚡ Performance

  • discovery: support caching discovery in one build pass (#2085) (5e1731f)

🐛 Bug fixes

  • core: properly check paths during config loading on Windows (#2091) (e71f2b3)
  • database: convert backtick identifiers to double quotes for postgres (#2093) (c0d6ebe)
  • database: check explicit relation attributes after singularizing property names (#2090) (ccd398f)
  • database: support multiple model properties joining the same table (#2080) (806c7c0)
  • database: target whereHas callback to the target table instead of the pivot table (#2095) (da2ee87)
  • discovery: discover packages using tempest/discovery (#2082) (148c698)
  • intl: handle snake case when singularizing/pluralizing last words (#2089) (ba92595)

3.8.0 — 2026-03-27

🚀 Features

  • mail: add email failure event and testing support (#2077) (c8c2009)

🐛 Bug fixes

  • view: improve slot rendering (#2076) (0c4e165)

3.7.1 — 2026-03-26

🐛 Bug fixes

  • mapper: setting virtual properties (#2072) (600699b)

3.7.0 — 2026-03-24

🚀 Features

  • core: remove confirmation before running installers (#2069) (f9149a6)
  • discovery: skip discovery with closure (#2070) (396f756)
  • http: introduce session cleanup strategies (#2068) (3ebf23c)

🐛 Bug fixes

  • console: discrepancy between interactive and static single choice result (#2067) (610423b)

3.6.3 — 2026-03-23

🐛 Bug fixes

  • database: fix is relation loaded and correctly unset properties (#2063) (a0e1f36)
  • database: relations joins overshadowing if property name conflict in chain (#2064) (80bdaba)

3.6.2 — 2026-03-23

🐛 Bug fixes

  • http: remove session middleware while running static:generate (#2066) (a7c9783)

3.6.1 — 2026-03-21

🐛 Bug fixes

  • container: correct typo in container:show command (#2057) (41a47bf)

3.6.0 — 2026-03-19

🚀 Features

  • database: add support for belongstomany relation (#2053) (c44aac5)

🐛 Bug fixes

  • database: prevent deeply nested has many map adding extra empty object (#1995) (469e50a)
  • database: allow properties to be in snake_case format for relations (#2054) (bd833fa)

3.5.0 — 2026-03-19

🚨 Breaking changes

  • database: [breaking] change mysql uuid type from varchar(36) to char(36) (#1987) (19f296c)

🚀 Features

  • container: resettable container (#2049) (ff10111)
  • database: add support for hasonethrough relation (#2050) (321fecf)
  • database: add support for hasmanythrough relation (#2052) (63db99a)
  • database: use different text type declaration with mysql according to field length (#1972) (1048103)
  • database: add integer type sizes (#1978) (3d1db7a)
  • view: tag override with the as prop (#2042) (4c492ff)

🐛 Bug fixes

  • database: prevent infinite loop when creating a model with a HasOne relationship (#1962) (191ba31)
  • discovery: allow specifying discovery classes and locations during cache generation (#2048) (7d2a433)
  • view: preserve source location in text elements (#1999) (ac3adf2)

3.4.1 — 2026-03-14

🚀 Features

  • database: add QueryExecuted event with query observability (#1936) (d53cd8d)
  • discovery: add support for dynamic path exlusion (#2045) (26f44b0)

3.4.0 — 2026-03-13

🚨 Breaking changes

  • core: [breaking] decouple discovery (#2041) (a7ea779)

3.3.1 — 2026-03-11

🐛 Bug fixes

  • auth: handle OIDC provider identifier keys (#2035) (32d847b)
  • http: fix database session installer with migrations (#2034) (44c5c73)

3.3.0 — 2026-03-10

🚨 Breaking changes

  • router: [breaking] return 404 when model binding fails (#2014) (e53ac47)

🚀 Features

  • console: improve completion support (#2015) (8b53d5b)
  • database: support datetime columns with CURRENT_TIMESTAMP as the default value (#2017) (a33b15a)
  • database: on database support for isdatabasemodel (#2009) (f0cf890)
  • idempotency: add idempotency package (#1997) (47e0de7)

⚡ Performance

  • database: add query execution benchmark (#2030) (b63eee8)
  • discovery: improve discovery performance (#2002) (14add85)

🐛 Bug fixes

  • auth: manually map facebook oauth user data (#2021) (a196baa)
  • console: remove path check from completion script (#2008) (ead8ed6)
  • core: fall back to scanning when discovery cache is incomplete (#1991) (092791b)
  • mapper: handle primitive array types in collection caster (#2025) (b00568b)
  • view: add props for width and height to x-icon (#1969) (b298f25)

3.2.1 — 2026-02-19

🐛 Bug fixes

  • cache: clear the default cache by name (#1993) (0c316aa)
  • ci: run benchmark when PR goes to base branch (#1992) (64bb215)

3.2.0 — 2026-02-19

🚨 Breaking changes

  • view: [breaking] improved view component rendering (#1980) (b830a16)

3.0.2 — 2026-02-16

🚨 Breaking changes

  • database: [breaking] improve make:migration experience (#1935) (5ebee16)

🚀 Features

  • generation: add support for TypeScript types generation (#1897) (744b7f9)
  • mapper: add #[Hidden] attribute for sensitive properties (#1931) (29b4668)
  • testing: add assertJsonSubset to test response helper (#1944) (4ab659e)
  • view: extend isset to handle multiple conditions (#1938) (f2342cd)

🐛 Bug fixes

  • core: work around Pest test file autoloading (#1895) (63c6353)
  • database: correct phpstan-require-implements reference (#1943) (3f97816)
  • router: render all development exceptions with Tempest's view renderer (#1968) (d18258c)

3.0.1 — 2026-02-12

🐛 Bug fixes

  • fix post-release dependency issues (#1960) (d62c48d)

3.0.0 — 2026-02-12

🚨 Breaking changes

  • console: [breaking] allow --force to bypass CautionMiddleware (#1804) (bccf92f)
  • core: [breaking] make Environment its own source of truth (#1838) (ad32ffe)
  • core: [breaking] overhaul exception handling (#1819) (314fb05)
  • http: [breaking] improve session management and CSRF protection (#1829) (bd4be5e)
  • log: [breaking] support multiple loggers (#1788) (cfccb39)
  • mapper: [breaking] move map function in Tempest\Mapper (#1789) (b4b49ec)
  • support: [breaking] rename Arr\map_iterable to Arr\map (#1884) (f97b0cf)
  • testing: [breaking] remove deprecated testing utilities (#1849) (ce478bf)
  • testing: [breaking] migrate view and route helpers to dedicated testers (#1870) (e26572b)
  • validation: [breaking] add ability to specify translation keys for specific properties (#1618) (2537d2a)
  • view: [breaking] use internal_storage_path to build view cache (8bb394d)
  • view: [breaking] move Tempest\view to the Tempest\View namespace (#1860) (360af87)
  • [breaking] use consistent namespaces for functions (#1880) (9621695)

🚀 Features

  • auth: implement Twitch OAuth provider wrapper (#1919) (0ad6cc7)
  • console: add native command completion for zsh and bash (#1851) (1dd4946)
  • console: allow overriding internal storage in boot (#1904) (64fc6c4)
  • console: add ability to prevent built-in console commands from loading (#1906) (4ef5a77)
  • console: throw clear exception when sending unexpected input during console interactions (#1916) (743e8d8)
  • core: support php 8.5 (#1733) (a1b0bcf)
  • core: support validating environment variables (#1836) (f36b43b)
  • core: enable partial discovery by default during development (#1848) (7f40a4e)
  • database: support uuids as primary columns (#1807) (4456541)
  • database: add pdo options to database configs (#1840) (d75d54c)
  • database: add configurable migration naming strategy (#1928) (e957640)
  • event-bus: allow assertions without preventing event execution (#1841) (ea48a8a)
  • event-bus: support enum events in EventBus::listen() (#1878) (22f6cac)
  • mapper: support contextual serializers and casters (#1791) (3c0d1f3)
  • mapper: read CastWith/SerializeWith from interface definitions (#1883) (d644091)
  • reflection: add union and intersection utils (#1798) (378e0c0)
  • router: infer constraints from route parameters (#1816) (8d82c8c)
  • session: add redis session manager (#1790) (eb7150b)
  • support: add Filesystem\create_temporary_directory() (#1901) (1d09649)
  • support: add Filesystem\copy_directory and Filesystem\copy (#1909) (9595a83)
  • testing: support passing raw body to route test utils (#1876) (a75fce7)
  • validation: add closure-based validation (#1828) (b6d4668)
  • view: support expression attribute fallthrough (#1811) (5d8bbad)

⚡ Performance

  • database: only use serializer factory when needed (#1898) (ad7825b)
  • mapper: pre-resolve mapper classes (#1852) (49fc4e2)
  • orm: memoize mapper data to improve ORM performance (#1855) (5ec931a)

🐛 Bug fixes

  • auth: properly run migrations when installing auth (#1927) (5bb84c1)
  • cache: ensure unique lock acquisition (#1757) (0f08031)
  • command-bus: prevent crash when accessing deleted pending commands (#1926) (40b73e4)
  • console: add zsh cache cleanup instructions after uninstall (#1862) (6f27ade)
  • core: correctly load symlinked config files (#1875) (c823d63)
  • cryptography: add key:generate hint to invalid key exceptions (#1925) (965f2ee)
  • database: support route binding through IsDatabaseModel (#1794) (3556acb)
  • database: support pagination with joins and relations (#1801) (0b52ffd)
  • database: update generics on query builder (#1833) (92908e3)
  • database: improve raw sql serialization consistency (#1861) (36113b7)
  • database: wrap enums in quotes during raw sql serialization (#1871) (f3d67f0)
  • database: use singleton serializer factory instead of creating a new one (#1877) (7f9a2ec)
  • debug: prevent infinite recursion when debugging in ItemsDebugged events (#1956) (1425014)
  • discovery: handle the discovery test case corectlly (#1839) (c89a15c)
  • http: gracefully recover from invalid file sessions (#1872) (db834ab)
  • http: prevent rendering development exception on validation errors (#1887) (56ba5ea)
  • http: broken import in header session id resolver (#1893) (afe65d3)
  • http-client: support unknown status codes (#1885) (bd65ba8)
  • http-client: remove unused dependency on tempest/router (#1902) (df69277)
  • intl: throw explicit exception when encountering unsupported translation file formats (#1864) (0350d98)
  • intl: add missing dependency to ext-intl (#1866) (516a0ac)
  • kv-store: allow Predis connection errors to be caught (#1930) (6c1a725)
  • reflection: correctly detect nullable types in TypeReflector (#1924) (8947072)
  • router: add null checks and fix route parameter handling (#1778) (c89c345)
  • router: add missing ui composable imports (#1853) (38128aa)
  • router: support rendering development exceptions with html entities (#1854) (0e8edb4)
  • router: prevent memory exhaustion when serializing exception arguments (#1859) (7e8ec28)
  • router: truncate exception page symbols when they are too long (#1957) (2221da7)
  • support: prevent Path\normalize from removing 0 from paths (#1817) (1af376a)
  • support: support deleting symlinks using Filesystem\delete (#1847) (25d69dd)
  • view: throw exception when parsing xml views with short_open_tag enabled (#1795) (30b2a6f)
  • view: handle egde case with falsy nodes (#1825) (37e908d)
  • view: fallthrough attributes with empty values (#1858) (4332740)
  • view: keep whitespaces during render (#1881) (07c5aaf)
  • view: do not cache views in local environments by default (#1891) (cfef0cc)

2.13.0 — 2025-12-04

🚀 Features

  • auth: add OAuth installer (#1674) (9c82b71)
  • cache: make assertLocked ensure that the checked lock has an expiration (#1758) (1a2e8fb)
  • container: make all container properties publicly readable (#1785) (be93ec1)
  • database: add support for self-referencing relations (#1745) (df2dcdc)
  • http: add support to mark Request properties as #[SensitiveField] (#1746) (0000c99)

🐛 Bug fixes

  • auth: correctly map user in GitHub OAuth provider (#1751) (ad2182a)
  • auth: pass scopes/options to auth URL builder (#1750) (cbe54d7)
  • auth: update outdated authenticatable import (#1752) (5c68b96)
  • cache: support enum tags (#1756) (678b695)
  • cache: add descriptions to cache:clear arguments (#1755) (e324f6e)
  • command-bus: extract uuid from pending commands when not provided (#1761) (b787c16)
  • console: properly normalize boolean flag names (#1762) (c6e6867)
  • core: gracefully handle missing seeders when using db:seed (#1759) (450ca75)
  • process: properly return exit code if missing (#1776) (9ad1587)

2.12.0 — 2025-11-28

🚀 Features

  • eventbus: add #[StopsPropagation] (#1740) (5769ec2)
  • validation: support nullable enums (#1739) (a9ca8c4)

🐛 Bug fixes

  • core: remove php 8.5 deprecations (#1742) (7501c1b)
  • support: correct some string function oversights (#1743) (f113128)
  • support: process error message after callback in box() (#1741) (908352a)

2.11.0 — 2025-11-26

🚀 Features

  • core: partial discovery loading (#1737) (92a31c3)

2.10.0 — 2025-11-26

🚀 Features

  • core: load composer dev namespaces (#1736) (892da0c)
  • database: add ability to create a query builder from another one (#1725) (55204a0)
  • tests: support paratest (#1721) (f5b5cd3)
  • view: fixes PHP 8.5 null offset deprecation warning (#1729) (2349c71)

2.9.3 — 2025-11-20

🐛 Bug fixes

  • router: use route registry to generate uris (#1724) (6dc51c2)

2.9.2 — 2025-11-19

🐛 Bug fixes

  • intl: make pluralizer singleton (#1726) (39b2b2d)

2.9.0 — 2025-11-14

🚀 Features

  • router: improve optional route parameter syntax (#1706) (68f4aba)
  • testing: inject app config in Integration test setup (#1710) (14a8da8)

🐛 Bug fixes

  • console: render nullable enum arguments (#1711) (402f0e7)
  • eventbus: change dispatched assertion from not null to not empty (#1709) (82318a6)
  • view: support relative view paths on windows (#1703) (87b2f7b)

2.8.0 — 2025-11-10

🚨 Breaking changes

  • router: [breaking] add route decorators (#1695) (c901dfe)

2.7.2 — 2025-11-10

🐛 Bug fixes

  • console: respect default value in confirm when forced (#1698) (708c8f9)

2.7.1 — 2025-11-09

🚀 Features

  • auth: mark password property with #[SensitiveParameter] (#1693) (129fdd5)

🐛 Bug fixes

  • view: discovery locations for view compiler (#1701) (8604b86)

2.7.0 — 2025-11-07

🚀 Features

  • router: add #[Stateless] attribute (#1692) (86d140d)

2.6.3 — 2025-11-07

🐛 Bug fixes

  • database: revert broken mysql dsn changes (#1689) (9edc4d2)

2.6.2 — 2025-11-07

🐛 Bug fixes

  • http: cleanup session without starting a new one (#1688) (9a7dee6)

2.6.1 — 2025-11-07

🐛 Bug fixes

  • http: gracefully recover from corrupt session retrieval (#1687) (8c5d8cc)

2.6.0 — 2025-11-07

🚀 Features

  • view: standalone TempestViewRenderer support (#1686) (2f5a3bc)

2.5.0 — 2025-11-06

🚀 Features

  • core: support booting in phar (#1672) (536db47)
  • core: make discovery cache environment variable partial by default (#1682) (f50af80)
  • view: add :isset attribte (#1675) (1af3b23)
  • view: support single-quote attributes (#1678) (071993a)

🐛 Bug fixes

  • database: fix dsn format for mysql connection (#1664) (6c3cbe2)
  • events: prevent enum event naming collisions (#1681) (1602654)
  • view: zero-values in attributes (#1679) (66dda2f)
  • psr-discovery dependency (#1655) (a1679a1)

2.4.0 — 2025-10-22

🚨 Breaking changes

  • http: [breaking] add --crawl flag to static:generate command (#1656) (fee1230)

🚀 Features

  • http: add accepts helper method (#1638) (b61d352)
  • intl: add current_locale util (#1643) (1dab1c7)

🐛 Bug fixes

  • auth: invalid key file arguments for Apple OAuth provider (#1640) (bf476c0)
  • http: desrialize csrf token from headers (#1616) (d1ee721)
  • reflection: return null for method return type if not defined (#1645) (b3acd5f)
  • view: handle boolean attribute followed by non space whitespace or self-closing tags (#1632) (cd226a3)

2.3.3 — 2025-10-09

🚀 Features

  • http: support passing JsonSerializable to Json response (#1626) (930e7ee)

🐛 Bug fixes

  • core: optional dependency guards (#1630) (1b23fd4)

2.3.2 — 2025-10-08

🐛 Bug fixes

  • installer: set correct default port on base_uri (#1625) (ef00d98)
  • make package dependencies optional where possible (#1624) (530c226)

2.3.1 — 2025-10-07

🐛 Bug fixes

  • view: support void tag rendering for XML files (#1621) (a395534)

2.3.0 — 2025-10-06

🚀 Features

  • console: support variadic argument (#1572) (b5f4185)
  • container: support decorators (#1537) (2d29bd5)
  • http: support database-based sessions (#1605) (174044c)
  • view: parse RSS feeds with tempest/view (#1617) (7398040)

🐛 Bug fixes

  • database: handle loading circular eager relations (#1556) (b2e0c75)
  • database: multiple select fields in one statement (#1603) (cd51bcf)
  • http: improve failed request exception messages (#1598) (a84ce29)
  • http: publish migration during database session driver installation (#1606) (2d6fa1b)

2.2.1 — 2025-10-03

🐛 Bug fixes

  • database: update or create with initial values (#1597) (d4450aa)

2.2.0 — 2025-10-02

🚀 Features

  • auth: improve OAuth user flow (#1587) (873fae9)

🐛 Bug fixes

  • oauth: properly set state when creating the redirect URL (#1592) (885a219)

2.1.0 — 2025-10-02

🚨 Breaking changes

  • http: [breaking] add query parameter to route testing utilities (#1583) (a819979)

🚀 Features

  • auth: add support for OAuth (#1577) (742d4fb)
  • database: add testing utilities (#1585) (cd39b60)
  • database: support for hooked virtual properties (#1586) (938c024)
  • support: add Uri utils (#1580) (83320ab)

🐛 Bug fixes

  • database: saving nullable BelongsTo relations (#1584) (a572b26)

2.0.4 — 2025-09-25

🐛 Bug fixes

  • database: nullable belongsto relations (#1575) (fc77327)

2.0.2 — 2025-09-18

🐛 Bug fixes

  • database: combining chunk and with in the select querybuilder (#1567) (62743e5)

2.0.1 — 2025-09-18

🐛 Bug fixes

  • database: properly serialize enum values when calling toRawSql (#1564) (3700723)

2.0.0 — 2025-09-16

🚨 Breaking changes

  • auth: [breaking] overhaul authentication and access control (#1516) (16aacc7)
  • commandbus: [breaking] rename AsyncCommand to Async (#1507) (9745b28)
  • core: [breaking] update exception processors to no longer return a throwable (#1342) (7000028)
  • database: [breaking] improve orm experience (#1458) (c6302f3)
  • http: [breaking] automatically encrypt cookies (#1447) (6615751)
  • router: [breaking] support signed URIs (#1520) (9d0fc5f)
  • validator: [breaking] add localization support for validation error messages (#1444) (38217ee)

🚀 Features

  • container: allow to inject tagged singletons (#1544) (b1459db)
  • core: add trace to exception logger (#1508) (af512b0)
  • core: improve base testing class (#1509) (830e27b)
  • database: primary key improvements (#1517) (b33204f)
  • database: dissociate down migrations from up migrations (#1513) (de2334b)
  • database: add #[Hashed] and #[Encrypted] attributes (#1514) (aca1f9a)
  • http: improve context for failed http requests (#1484) (01287b6)
  • mapper: support mapping array of serialized enums (#1521) (122d7a3)
  • mapper: support converting array of objects to array (#1523) (accab81)
  • process: introduce process component (#1326) (70bc5f8)
  • router: add ability to skip middleware per route (#1472) (ba2ef8a)
  • router: add method spoofing support for HTML forms (#1536) (fee4da0)
  • upgrade: add upgrade package (#1534) (97ceda7)
  • upgrade: upgrade router specific namespace changes (#1550) (a416f94)
  • validation: add Exists validation rule (#1462) (a28c943)
  • vite: mention <x-vite-tags /> and documentation link in post-install instructions (#1473) (477dfa9)

🐛 Bug fixes

  • container: allow enums in the #[Tag] attribute (#1506) (fd0912a)
  • core: properly handle unserializable discovery items when caching discovery (#1503) (e8c60ea)
  • core: discover vendor directory first on all platforms (#1535) (b7dc71e)
  • database: support inserting empty rows (#1515) (5c2a500)
  • database: ensure natural ordering for migrations (#1541) (1d50336)
  • http: null for enums values in request bodies (#1498) (0f7fc94)
  • http: fix assertStatus mixing up expected and actual results (#1499) (43dcf58)
  • http: discard unencrypted cookies (#1551) (a061e46)
  • mapper: don't overwrite request fields (#1487) (a280f56)

1.6.0 — 2025-08-08

🚀 Features

  • core: improved exceptions for unwriteable internal storage (#1468) (948f800)
  • cryptography: introduce cryptography component (#1346) (439b49e)
  • database: add string method on CreateTableStatement (#1454) (9c78fd6)
  • datetime: add convenience comparison and manipulation methods (#1450) (4aab9ed)
  • http: offer more control over server sent events format (#1459) (6623850)
  • mapper: implement serialization mapping for DTOs (#1449) (900898a)
  • testing: add assert response json assertions (#1433) (754a657)
  • vite: support passing configuration to containerized environments (#1426) (acace86)

🐛 Bug fixes

  • router: do not discover controller stub (#1453) (2246f72)
  • view: set doctype in x-base (#1451) (e7ea095)
  • view: pass scoped variables down view components (#1467) (c911989)
  • add json-serializable to TestResponseHelper $body (#1455) (3d459fd)

1.5.1 — 2025-07-29

🚀 Features

  • core: improve exceptions related to internal storage (#1434) (00caadf)
  • testing: add view data assertions (#1440) (f573fd1)
  • view: add csrf token in x-form (#1441) (e4daa51)

1.5.0 — 2025-07-28

🚨 Breaking changes

  • http: [breaking] add cross-site request forgery protection (#1411) (2bb4fcf)
  • view: [breaking] properly handle scoped view-components (#1435) (c6237db)
  • view: [breaking] support overriding vendor view components (#1439) (3483fe4)

🚀 Features

  • database: add pagination support (#1417) (07f9f4d)
  • http: add csrf_token function (#1415) (4386578)
  • kv-store: introduce key-value store component (#1252) (daee10d)
  • response: add a new Response class for json responses (#1423) (d25bc44)
  • router: json serializable as response body (#1420) (4af4429)
  • view: make default slot available as dynamic slot (#1419) (0f6f261)
  • view: add meta command for view components (#1424) (051078b)
  • view: add x-markdown component (#1430) (b81b9ed)

🐛 Bug fixes

  • http: don't cache csrf tokens in views (#1412) (9db65f0)
  • http: prevent CSRF token variable name collision (#1413) (361c2fb)
  • http: properly handle cookies lifecycle (#1416) (1089f61)
  • http: respect file session locks during reads (#1418) (55cb06f)
  • mapper: support casting bool, int, float and enums (#1414) (c7292e2)
  • vite: prevent syntax errors on prefetching script (#1421) (15c303e)

1.4.0 — 2025-07-17

🚀 Features

  • auth: add class-level permission support (#1405) (1404246)
  • mailer: introduce mailer component (#1227) (3f5f31e)
  • support: add json encode/decode to array and string utilities (#1396) (978bba2)
  • vite: inject react refresh when needed (#1406) (b57bf7f)

🐛 Bug fixes

  • mail: fix typos (#1410) (0e29b0e)
  • mailer: small tweaks and bugfixes (#1408) (f80536a)
  • vite: exclude .tempest from vite's file watcher (#1384) (e1bdcf2)

1.3.0 — 2025-07-10

🚀 Features

  • database: run migrate:fresh without validation by default (#1390) (665c825)

🐛 Bug fixes

  • commandbus: require console as a dependency (#1397) (e56cb6d)
  • router: change the Bindable::resolve return type from static to self (#1391) (3ac0e3a)
  • view: remove multiline comments before AST parsing (#1395) (f2c03df)

1.2.3 — 2025-07-08

🐛 Bug fixes

  • database: fix datetime serialization for mysql database (#1383) (dde0e84)

1.2.2 — 2025-07-08

🚀 Features

  • vite: make which extensions vite discovers configurable (#1375) (de2d6d4)

🐛 Bug fixes

  • http: allow session id cookies when on a local non-secure host (#1381) (47e993a)

1.2.1 — 2025-07-07

🐛 Bug fixes

  • http: register request interface as singleton as soon as possible (#1379) (b7d1d41)

1.2.0 — 2025-07-07

🚨 Breaking changes

  • database: [breaking] query builder refactor (#1367) (21ca22c)
  • database: [breaking] remove ModelDefinition in favor or ModelInspector (#1372) (7e8bfc6)

🚀 Features

  • database: add having and groupBy in select query builder (#1370) (6bf5c06)
  • view: add view comments (#1356) (c61519b)

⚡ Performance

  • reflection: improve class reflector memoization (#1360) (d8c502d)

🐛 Bug fixes

  • database: throw QueryWasInvalid on database fetch failure (#1371) (95b660b)
  • http: use exclusive locks for file session writes (#1366) (c3c8d03)
  • http: prevent mapping request data to reserved properties on request objects (#1374) (96bd1b0)

1.1.0 — 2025-07-05

🚀 Features

  • database: display sqlite path in about command (#1353) (9d8449c)
  • database: add database seeder support (#1354) (0a49e1f)
  • http: support implicit host in serve command (#1350) (ebde2c6)
  • session: add reflash method to session (#1338) (8e8d839)
  • validation: add HexColor validation rule (#1332) (e9a5a17)

⚡ Performance

  • core: improve overall discovery performance (#1333) (0199fa3)
  • core: improve config loading performance (#1341) (d28e896)

🐛 Bug fixes

  • core: fix SkipDiscovery attributes not being detected in vendor packages (#1337) (b049dd9)
  • core: add missing config cache initializer (#1340) (bf4770e)
  • icon: enable icon cache by default (#1339) (34e0d2d)
  • log: fix driver resolving not accounting log level (#1343) (e197b3c)
  • router: support implicit HEAD requests (#1349) (f912d6a)

1.0.1 — 2025-06-27

🚀 Features

  • console: allow dynamic arguments for specific console commands (#1322) (facdc25)
  • router: handle ConvertsToResponse outside of exception handler (#1320) (d4a219d)
  • router: allow specifying port using host:port syntax (#1321) (dba57d8)

1.0.0 — 2025-06-27

🚀 Features

  • cache: separate internal and user caches (#1245) (36edbd8)
  • cache: support stale while revalidate (#1269) (dde685a)
  • console: add inline documentation to console methods (#1232) (6dd0cbb)
  • core: add about command (#1226) (25c4aff)
  • core: add discovery config (#1198) (7b3cc70)
  • core: support exception reporting (#1264) (914ed58)
  • core: load local and production configurations last (#1266) (0306cbd)
  • database: add count() helper to IsDatabaseModel trait (#1181) (f2c9e47)
  • database: add insert()->then() and prevent invalid relations from being attached (#1225) (0e78895)
  • database: support multiple databases in migrations and query builders (#1267) (24ba164)
  • database: add ShouldMigrate interface (#1273) (d6d3e37)
  • database: support dto fields (#1305) (9b802b8)
  • datetime: support tempest datetime in validator and mapper (#1257) (5b9d8ff)
  • http: add testing client (#1295) (e3743ae)
  • icon: introduce icon component (#1313) (cc5b0a6)
  • intl: add localization support (#1294) (17eeebc)
  • router: support server-sent events (#1260) (b5420a9)
  • support: add number formatting utils (#1268) (c2f4e9d)
  • support: add uuid utilities (#1270) (20c3559)
  • validation: add ability to validate an array of values (#1212) (c4a9237)
  • view: support escaped expression attributes (#1222) (014b67f)
  • view: default slot content (#1300) (d1a21b0)
  • vite-plugin-tempest: allow overriding configuration using TEMPEST_PLUGIN_CONFIGURATION_OVERRIDE (#1256) (05d9942)

🐛 Bug fixes

  • cache: allow cache clear to be forced (#1272) (768273a)
  • console: prevent unknown console arguments (#1238) (975b49a)
  • core: register HttpExceptionHandler only in production (#1220) (f3a21a5)
  • core: allow discovery:generate to run even when full caching is enabled (#1223) (1b06332)
  • core: display clean version in about command (#1251) (f267de2)
  • core: release script fixes for next beta (#1314) (45fe695)
  • database: prevent non-object model queries from trying to use the model class (#1239) (c1561e0)
  • database: prepend backslash when creating enum columns (#1228) (e8705a7)
  • database: properly display mysql and postgresql versions in about command (#1258) (076653a)
  • database: postgres support (#1259) (f34ad57)
  • database: support semicolons in queries (#1262) (b110123)
  • event-bus: reorder listen parameters for consistency (#1291) (0d6e6ee)
  • framework: handle reflection in config show command (#1211) (972870f)
  • intl: remove circular dependency on datetime component (#1299) (957f9c8)
  • intl: fix circular dependency (#1301) (9e5eed6)
  • intl: fix circular dependency (#1302) (6c71b06)
  • router: check internal dead links without the domain (#1210) (62f45c3)
  • router: require hard-coded uris to start with a slash in Router::toUri (#1205) (1f3ec14)
  • support: make Arr\forget_values and Arr\forget_keys mutable (#1215) (286d9a0)
  • support: use Closure instead of callable when calling preg_replace_callback (#1231) (ce48368)
  • support: support more to_snake_case edge cases (#1250) (dcf926a)
  • view: properly unset local view component variables (#1221) (6bdb652)
  • view: prevent infinite loop with unclosed PHP or comment tags (#1282) (347513a)
  • view: fix falsy boolean evaluation on comments (#1289) (8d0d780)
  • view: handle icon name parsing without colon (#1298) (e34e120)
  • view: InvalidClosingTag should ignore commented out code attributes (#1288) (3892651)
  • vite: ignore missing .gitignore during installation (#1275) (a986846)
  • vite: use npm as fallback when no package manager is detected during installation (#1297) (b8b64d0)
  • use correct README guideline link (#1213) (670da14)

1.0.0-beta.1 — 2025-05-07

🚀 Features

  • console: add make:migration command (#871) (e34654a)
  • console: add option to use terminal width to render key/values (#1148) (0c553d4)
  • container: support lazy dependency initialization using lazy proxies (#1090) (78273cc)
  • container: add container:show command (#1118) (80ab136)
  • container: support dynamic tags using dynamic initializers (#1120) (0980e3a)
  • core: add middleware priority and discovery (#1109) (da6665c)
  • core: display more data in default error handler (#1116) (90e8208)
  • core: improve exception handling (#1203) (9b31ecc)
  • database: allow overriding table names through model class attributes (#1060) (412c2d0)
  • database: store default sqlite database in internal storage (#1075) (d1704e8)
  • database: add migration hash checking (#1054) (90fa20c)
  • database: model validation before update, create, and save (#1131) (58f15f9)
  • database: add HasConditions to query builders (#1154) (619dd11)
  • database: add Count query builder and statement (#1174) (22dbe07)
  • datetime: add datetime component (#1158) (76d70c1)
  • event-bus: add event bus testing utilities (#1103) (9c84c68)
  • router: allow checking an action against the current route (#1059) (a8b6ea9)
  • router: support returning string and array from controllers (#1083) (5fb1045)
  • router: introduce response processors (#1084) (fb8977b)
  • router: support getting raw body from requests (#1093) (9d86d13)
  • router: add redirect back response (#1050) (8d43ce5)
  • router: detect dead links when generating static pages (#1192) (453e1cb)
  • storage: add storage component (#1149) (4baead1)
  • storage: support multiple storage configurations (#1187) (5b8be8a)
  • support: support array parameters in string manipulations (#1073) (283af0b)
  • support: rename map_array to map_iterable (#1071) (1eaf65e)
  • support: support $default on array first and last methods (#1096) (0d93283)
  • support: add removeValues to array utils (#1204) (3209379)
  • view: add view:clear command (#1069) (4137981)
  • view: improve boolean attributes (#1111) (35f85e9)
  • view: attribute precedence (#1153) (96f3149)
  • view: dynamic view components (#1169) (06be1af)
  • view: prevent invalid closing tags (#1195) (215671f)
  • vite: disable tag resolution in tests by default (#1072) (71efbae)

⚡ Performance

  • view: improve view component discovery performance (#1191) (25adb82)

🐛 Bug fixes

  • console: keep colors in key-value lines (#1068) (02aa357)
  • console: do not discover stub files (#1136) (30f012d)
  • console: do not discover stub files (#1138) (3fc2a15)
  • console: select default option in ask component (#1139) (797392e)
  • console: properly place cursor in multiline input (#1141) (b079c5e)
  • core: publish tempest binary via composer (#1207) (03cccff)
  • database: improved check on missing migrations table (#1092) (ed6f85c)
  • filesystem: add ability to delete invalid symlinks (#1206) (12e2b03)
  • mapper: properly serialize nullable properties in objects (#1107) (0b824b6)
  • support: non-dev bun dependencies installation (#1124) (da7006f)
  • support: fix psr-4 namespace path generation with dots and slashes in the composer path (#1166) (ce06b52)
  • validation: more lenient scalar validation (#1127) (dcc2401)
  • validation: enum request validation (#1130) (2181ec8)
  • view: lexing multiline attributes in windows (#1121) (33085b0)
  • view: : is replaced by - and @ is removed (#1125) (2f0b247)
  • view: hyphens in slot names (#1129) (bead5a5)
  • view: don't throw when using a <table> element (#1133) (5a05f6d)
  • view: prevent $var from being nulled after passing to component (#1160) (9aeb727)
  • view: switch to runtime icon view component (#1165) (6b84639)
  • view: improved attribute precedence (#1168) (077cc7d)
  • view: fallback attributes fix with nested slots (#1172) (5f38986)
  • view: wrong matched imports in view component slots (#1173) (6c5da00)
  • view: dynamic components with slots (#1171) (9fb3dd4)

Build

  • fix release script adding tempest/highlight dependency (be80673)

1.0.0-alpha.6 — 2025-03-24

🚨 Breaking changes

  • support: [breaking] improve architecture of support utilities (#940) (bb75e81)
  • vite: [breaking] automatically discover entrypoints (#1051) (ebe3ef4)

🚀 Features

  • console: add make:command command (#1048) (13bc731)
  • console: add make:discovery command (#1057) (2bd5814)
  • console: add make:generator-command command (#1056) (6992b70)
  • core: add kernel interface (#924) (2a2c454)
  • database: refactor DatabaseConfig interface (#902) (3d3a094)
  • database: add a Virtual attribute to exclude model properties from query builder (#966) (b6252dc)
  • database: add a findBy method to models (#965) (8d479bc)
  • http: empty request values are converted to null (#976) (dc5323b)
  • http: fix http header casing on retrieval (#1024) (be2fb43)
  • mapper: add two-way casters (#920) (0748aa9)
  • mapper: add MapFrom and MapTo attributes (#929) (b9a89de)
  • mapper: ObjectToArrayMapper use Caster::serialize to serialize the property value (#947) (269bfcb)
  • mapper: map()->with()->to() (#951) (e6f04ee)
  • mapper: allow multiple fields in #[MapFrom] (#944) (381c58d)
  • support: add enums support (#878) (964d55a)
  • support: add basename to string utils (#1039) (1d4f563)
  • support: add slug, ascii and isAscii to string utils (#1040) (3eb8b35)
  • support: add words and sentence methods to string utils (#1042) (b2dfd32)
  • support: add groupBy to array utils (#1047) (d696826)
  • support: add mapFirstTo and mapLastTo to array utils (#1038) (b188609)
  • validation: allow Stringable objects in IsString rule (#1029) (bd22988)
  • view: support dynamic $slots and x-template (#911) (1ba1629)
  • view: more lenient DOM parsing (#941) (0fe0df9)
  • view: remove empty slots in production (#950) (64b1ff0)
  • view: support relative view paths (#953) (2479148)
  • view: access view component attributes (#1008) (6c7dfae)
  • view: add view processors (#1011) (573d557)
  • view: view components by file name (#1013) (12b5503)
  • view: fallthrough attributes (#1014) (e1ce286)
  • view: add icon component (#1009) (46570eb)
  • view: support merging class attributes (#1020) (80ff7be)
  • view: cache Blade and Twig templates in internal storage (#1061) (1e33722)
  • vite: add Tailwind CSS option to the installer (#926) (cfe1564)
  • vite: add <x-vite-tags /> component (#945) (888f5b1)

🐛 Bug fixes

  • database: make AlterTableStatement produce valid SQL (#979) (fd63ec0)
  • discovery: pass real paths to discovery classes (#1053) (97bfbf2)
  • linter: exclude cache directories (#1046) (0b27762)
  • mapper: nullable datetime caster (#974) (118eeb5)
  • mapper: validate before mapping (#980) (0688c97)
  • router: content-type json support when mapping psr request to tempest request (#956) (16345b6)
  • router: use correct input stream (#1005) (768c6fb)
  • validation: prevent type errors in rules using preg_match (#1043) (4a00657)
  • view: render doctype and html tags properly (#910) (dff3884)
  • view: fix for compiling HTML documents that contain PHP (#922) (f93fb3d)
  • view: comment out empty slots (#938) (1b3433d)
  • view: hardcoded boolean attributes shouldn't be parsed (#952) (dff166b)
  • view: regex timeout (#1015) (2e24641)
  • view: support <x-component> in auto-registered components (#1018) (371d9ea)
  • view: don't allow php expressions in attributes (#1019) (6931350)
  • view: do not duplicate <br /> tag (#995) (2279402)
  • view: prevent compiling parent elements of minified void tags (#1055) (0b25975)
  • vite: generate absolute asset urls (#1023) (3551008)
  • vite: don't discover template entrypoints (#1052) (3d7cbbd)

1.0.0-alpha.5 — 2025-02-24

🚀 Features

  • console: add make:initializer command (#771) (cf354b7)
  • console: add backed enum support to ask (#808) (5e3d99e)
  • console: improve rescuing enum console parameters (#809) (7c64c7c)
  • console: allow calling console commands via fqcn (#824) (a6ba3b6)
  • console: provide command suggestions when using : shorthands (#814) (107f8b8)
  • console: add installer (#837) (90b6321)
  • console: add make:middleware command (#804) (467c664)
  • console: several QOL improvements (#847) (05dac5c)
  • console: add support for printing hyperlinks (#850) (6f457af)
  • console: add make:config command (#863) (d0f3f53)
  • console: add make:view command (#864) (a4ab813)
  • console: add task component (#857) (d4dac18)
  • container: add has and unregister (#840) (09ced7a)
  • core: allow defer callbacks to receive parameters from container (#798) (42262fa)
  • core: add TEMPEST_START constant (#791) (1cabe2d)
  • core: optionally run composer up after installers (#839) (6747d2c)
  • database: improved database indexing (#851) (82f1808)
  • database: alter table with only indices (#852) (61e7abb)
  • database: chunked results (#855) (e332bbd)
  • database: bindings in query methods (#859) (49f019c)
  • database: add raw to CreateTableStatement (#868) (60dcc28)
  • database: add explicit relation attributes (#874) (5e4df24)
  • database: add closable connection wrapper for PDO connection (#875) (15f8995)
  • debug: emit ItemsDebugged on debug (#796) (c1be5e6)
  • framework: extend http testing methods (#790) (dd01ef1)
  • framework: overhaul console interactions (#754) (e966ecb)
  • log: emit MessageLogged when logs are written (#795) (50b27c8)
  • log: configure log paths through env by default (#820) (52f200a)
  • support: improve types of HasConditions (#800) (00aa6ea)
  • support: add every to ArrayHelper (#813) (9d39e15)
  • support: add append and prepend to ArrayHelper (#833) (7daf3fc)
  • support: add HtmlString class (#842) (751f0d1)
  • view: add twig support (#841) (0f47a80)
  • vite: add Vite installer (#901) (f9f4167)
  • add Vite support (#829) (4099b40)

🐛 Bug fixes

  • core: do not redefine TEMPEST_START (#806) (2739f4f)
  • database: default strong comparison check (#858) (b6064a6)
  • database: loading database relations or other objects (#884) (0214ac3)
  • generation: ClassManipulator now make replacements before simplifies classnames (#876) (fe0f3b2)
  • http: remove empty directories when running static:clean (#784) (3f0d17b)
  • http: correct HTTP 418 description and coverage (#823) (dbad109)
  • support: support keys with dots in ArrayHelper#get (#832) (8372827)
  • tests: update IPv6 test to align with PHP 8.4.3 behavior (dec5c2f)
  • view: check the existing of the $tagName property (#803) (f34c2ba)
  • view: support doc comment elements (#816) (8b95679)
  • view: self-closing view component tags (#818) (420e5d8)
  • view: use bug when compiling view (#893) (6ce796c)
  • vite: fall back to global entrypoints if supplied ones are empty (#870) (08df98c)
  • vite: support new cors rules in Vite 6 (#890) (d991bfd)
  • change order of scripts in composer.json (#786) (f948184)

1.0.0-alpha.4 — 2024-11-25

🚀 Features

  • commandbus: async commands (#685) (bfa1706)
  • console: support negative arguments (#660) (1cdf158)
  • console: support "no prompt" mode (#661) (687e333)
  • console: add name parameter to #[ConsoleArgument] (#617) (2a73033)
  • console: ensure tempest serve supports routes with file extension (#704) (6300617)
  • console: support dynamic style injections (#703) (6847a79)
  • console: accept BackedEnum as command arguments (#722) (c21f24e)
  • console: add make:controller and make:model commands (#647) (0bdee91)
  • console: add make:request command (#730) (987eabf)
  • console: infer binary path for scheduler (#758) (25e5d81)
  • console: add make:response command (#760) (e76c1f8)
  • container: support injecting properties using #[Inject] (#690) (ab0eecd)
  • core: install main namespace (#751) (3f9bdde)
  • core: partial discovery cache (#763) (2049f6e)
  • database: add json data type (#709) (d599d50)
  • database: add set data type (#725) (f0db5c8)
  • filesystem: add new Filesystem component (#441) (25d4a47)
  • framework: add config:show command (#732) (2124577)
  • http: map uploaded files into the request properties (#702) (a97014c)
  • http: add Delete attribute (#733) (613b884)
  • http: add Put and Patch attributes (#742) (3621006)
  • log: allow usage of multiple same log channels (#718) (68d7e54)
  • mapper: json file to object mapper (#748) (99933ff)
  • routing: add regex chunking to route regex (#714) (3eb0c59)
  • support: add sorting methods to ArrayHelper (#659) (8f52e4a)
  • support: add wrap and unwrap to StringHelper (#693) (a0fffe9)
  • support: support not specifying a value to ArrayHelper::pop and ArrayHelper::unshift (#692) (6a56d94)
  • support: add start to StringHelper (#713) (f719c20)
  • support: add methods reduce, chunk and findKey to ArrayHelper (#720) (c8a31db)
  • support: add more methods to ArrayHelper and StringHelper (#721) (bdf5efc)
  • validation: ArrayList rule (#745) (ddda992)
  • validation: enhance enum validation (#755) (ca7a226)
  • view: add boolean attributes (#700) (04000ac)
  • view: add raw html element (#738) (df6a418)
  • optimize routing (#626) (83f1dac)
  • multiple routes per controller method (#667) (166912d)
  • route enum binding support (#668) (f055fc1)
  • exception handler improvements (#670) (0f97964)
  • middleware callables (#672) (d2e8a4e)

⚡ Performance

  • routing: replace recursion in favor of iteration (#705) (32aaff4)

🐛 Bug fixes

  • commandbus: disallow having two #[CommandHandler] for the same command (#706) (f3054f9)
  • console: handle nested style tags (#726) (779973e)
  • core: discovery location loading order (#663) (6fc2d95)
  • core: discovery errors being silenced (#688) (f5b848c)
  • core: installers not updating docblock references (#696) (7b7e2ca)
  • generation: simplify traits and method parameter attributes (#753) (3cca6bc)
  • http: collision between route and query params for uri generator (#687) (e22492a)
  • http: use document root instead of env in tempest serve (#717) (ccc1ece)
  • http: use default log config only if no config is provided (#719) (fbaf866)
  • support: support calling first and last on empty ArrayHelper (#691) (9021c6e)
  • view: several bugfixes (#662) (5034d0a)
  • view: attributes for raw elements (#734) (f89eb5d)
  • view: extra null check for node attributes (#740) (5fa27bc)
  • query param name collision in uri function (#679) (59fe4fb)
  • rector (#680) (7fdff1d)

1.0.0-alpha.3 — 2024-10-31

🚨 Breaking changes

  • [breaking] add support for specifying an optional port in serve command (b8b9167)
  • [breaking] add the ability to use custom regex for route params (871dda9)

🚀 Features

  • console: support string keys in MultipleChoiceComponent (#567) (78f2794)
  • container: add ability to invoke arbitrary closures (#535) (c1da5f1)
  • core: add root_path helper (#607) (ccfcf94)
  • event-bus: support closure-based listeners (#540) (0fa02bc)
  • generation: add ClassGenerator (#544) (f54a0e0)
  • support: improve helpers (#538) (6d60b9b)
  • support: improve array helper with additional methods (#557) (57e6cd8)
  • support: refactor dd() method to use logger in string helper and add the dump() method (#563) (3349cf1)
  • support: add implode()/explode() methods in string helper (#564) (5718796)
  • support: add methods to array helper (#590) (b16f797)
  • support: add inline documentation on helper classes (#611) (c5fdcad)
  • validation: support validating by closure (#570) (450bc58)
  • match all method for string helper class (#536) (0f33a44)
  • enhance matchAll method to support flags and offset (9da79f4)
  • add named hasOne relation (#549) (58906b7)
  • add initializer for builtin types (#541) (bd64f5a)
  • add boolean data type (#547) (#555) (6776fff)
  • add isList() and isAssoc() methods in ArrayHelper for array type checking (#566) (f465060)
  • event bus improvements (#623) (bf7ff15)
  • add defer helper (#624) (15cd46e)
  • install command (#625) (10f3388)
  • add inline documentation on all namespaced functions (#616) (bef5af7)
  • publish imports (#643) (52ca58d)

🐛 Bug fixes

  • #275: implement weekly log rotation (#548) (14fea7d)
  • container: fix caching of autowire discovered classes (#630) (6a5a5d5)
  • http: fix so referer header is resolved depending on request class in invalid response (#604) (d463258)
  • phpstan: fix phpstan issues (#556) (b1495b2)
  • phpstan: fix last phpstan issues (#589) (e719dfa)
  • view: consume dynamic attributes (#644) (972595c)
  • terminal line clearing (#576) (ce2b6c4)
  • low terminal frame rate causing keystrokes to be dropped (#577) (8f414d6)
  • rector config (#581) (83c103d)
  • view argument casing (#585) (158b2db)
  • nullable properties not seen as nullable by TypeReflector (#591) (6e7dc59)
  • disable rector ci (#595) (88dfdfb)
  • type reflector uses wrong definition when converting to class (#592) (94071c3)
  • view components with multiple attributes (#599) (e00d0cd)
  • console cache dependency (#603) (2acdf9a)
  • duplicate command completion (#600) (effb684)
  • publish file root namespace (#638) (2051dd4)

Build

1.0.0-alpha.2 — 2024-10-04

🚀 Features

  • core: add Composer util (#519) (40c5f03)
  • database: implement table naming strategies (#453) (519f44f)
  • discovery: add ability to hide classes from discovery (#512) (c09cdf4)
  • discovery: allow exceptions on DoNotDiscover classes (#521) (1dcacae)
  • generation: add ClassManipulator (#531) (92ccb7d)
  • string-helper: add replacement and concatenation methods (#517) (6e3a63a)
  • support: adds string pluralizer (32fb3e9)
  • support: add StringHelper (ccb1e65)
  • refactor string helper to object (#433) (5eca329)
  • add array helper (#434) (988f28d)
  • request::has methods (#448) (82e6522)
  • add base uri support (#449) (f243a1f)
  • always log errors in production handler (#454) (0652e9c)
  • cache (#474) (00fd2de)
  • add str::startswith and endswith (#484) (3ac79d6)
  • cache:clear command (#487) (c1f6cc4)
  • use directories instead of file names to allow default server config setup (#479) (140f9eb)
  • add output to schedule:run command (#489) (c57b1ac)
  • allow hard-coded uris in router::touri (#490) (72e88c8)
  • add autowire/autodiscovery/auto-initialization of interfaces to classes (#501) (1572122)
  • array helper::map-to (#505) (e4bb059)
  • authenticator (#493) (5017c5f)
  • adds enctype within the form component (#500) (7c4f12d)
  • str match (#527) (ce899cd)
  • str regex functions (#528) (672ea02)
  • allow object to define how they are mapped to array (#532) (19d001b)

🐛 Bug fixes

  • console: support default parameter on textbox component (#518) (3c86f8e)
  • view: join generic elements with an empty string (3ad5461)
  • Missing descriptions in composer files (5c28483)
  • package validation reading the license from composer files (3701b64)
  • view renderer bug fixes (#439) (d60d26f)
  • view renderer bug fixes (#440) (6a85ef8)
  • improved error handling for warnings and deprecations (#443) (1e7ad4d)
  • response sender improvements for download and file responses (#447) (3132bed)
  • extra check for existing file (#455) (f466b7d)
  • properly detect application (#456) (ee84b94)
  • view component attribute fixes (#459) (4622298)
  • package dependencies (#461) (e1e8470)
  • dependency loop between kernel and event-bus (#475) (53a9c86)
  • rename console component interfaces (#476) (d96f98e)
  • database component tests (#477) (02a85e1)
  • typo in readme (#473) (df14709)
  • handle invalid discovery cache (#492) (bc44eb9)
  • validation referer (#511) (a3710a8)
  • datetime caster with datetime object (#514) (e361f26)
  • static generate error handling (#529) (02b4db8)

Maintenance

  • phpunit fixes (#436) (759134f)
  • tag console highlighter (#437) (b7c5332)
  • update console readme (#444) (7c6f1b0)