elysiajs/elysia (elysia)
### [`v1.1.9`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#119---28-Aug-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/929df61448afce52fbccfc09552355730f6f5e60...68987faecc79ea58fdb92c4a8119ce0bcf903b49)
Change:
- getter fields no longer stringified to JSON by default on returning response
Bug fix:
- [#796](https://togithub.com/elysiajs/elysia/issues/796) ValueClone: Unable to clone value after 1.1.8 update
- [#795](https://togithub.com/elysiajs/elysia/issues/795) Broken Dates after 1.1.8 update
- [#793](https://togithub.com/elysiajs/elysia/issues/793) Unable to delete property. t.File()
### [`v1.1.8`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#118---27-Aug-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/5e497ab4c7a0b9f98c0e1fa611a3c8a6d84c4043...929df61448afce52fbccfc09552355730f6f5e60)
Feature:
- [#748](https://togithub.com/elysiajs/elysia/issues/748) add standardHostname config
Bug fix:
- [#787](https://togithub.com/elysiajs/elysia/issues/787) [#789](https://togithub.com/elysiajs/elysia/issues/789)[#737](https://togithub.com/elysiajs/elysia/issues/737) Unexpected TypeError on NODE_ENV=production in mapValueError
- [#793](https://togithub.com/elysiajs/elysia/issues/793) unable to delete property t.File()
- [#780](https://togithub.com/elysiajs/elysia/issues/780) error from sending empty body multipart/form-data
- [#779](https://togithub.com/elysiajs/elysia/issues/779) custom errors thrown in onRequest are not usable when caught in onError
- [#771](https://togithub.com/elysiajs/elysia/issues/771) error from body-parser when sent Content-Type header without body
- [#679](https://togithub.com/elysiajs/elysia/issues/679) plugin registered by async inline function don't work
- [#670](https://togithub.com/elysiajs/elysia/issues/670) support for classes and getter fields
### [`v1.1.7`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#117---19-Aug-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/dc1f0592504f8246193a98db7963240e36b6e675...5e497ab4c7a0b9f98c0e1fa611a3c8a6d84c4043)
Bug fix:
- `parseQuery` is not parsing array on body
Change:
- rename `parseQuery` to `parseQueryFromURL`
- export fast-querystring.js path
### [`v1.1.6`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#116---12-Aug-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/a0c417cd628a87f71ee255aa1c73f96cd3d8c051...dc1f0592504f8246193a98db7963240e36b6e675)
Feature:
- [#763](https://togithub.com/elysiajs/elysia/pull/763) add hide in detail to hide route from OpenAPI/swagger
- add streaming support for fetch proxy
Bug fix:
- [#776](https://togithub.com/elysiajs/elysia/issues/776) custom errors throw in onRequest do not get proper code set in onError
### [`v1.1.5`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#115---2-Aug-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/a53e86f7c6a4f5ac5c80155ccabd0b06633d2224...a0c417cd628a87f71ee255aa1c73f96cd3d8c051)
Feature:
- refactor fastQuerystring using switch and bitwise flag
Bug fix:
- sucrose: invalid separateFunction on minified async function
- [#758](https://togithub.com/elysiajs/elysia/issues/758) guard doesn't apply cookie schema
### [`v1.1.4`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#114---23-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/8173d905944b8b305f8989985abe7760af681de9...a53e86f7c6a4f5ac5c80155ccabd0b06633d2224)
Feature:
- [#718](https://togithub.com/elysiajs/elysia/pull/718) implement normalization support for class instances with getter functions
Bug fix:
- removeColonAlias accidentally slice -2 end index for last parameter
- [#726](https://togithub.com/elysiajs/elysia/pull/726) lazy instantiation of `stringToStructureCoercions`
- [#750](https://togithub.com/elysiajs/elysia/issues/750) Cookie: Right side of assignment cannot be destructured
- [#749](https://togithub.com/elysiajs/elysia/issues/749) Query params following an array query are parsed as array items
- [#751](https://togithub.com/elysiajs/elysia/issues/751) Dynamic mode response failed if null or undefined value is returned
- [#741](https://togithub.com/elysiajs/elysia/issues/741) stream stringify object
### [`v1.1.3`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#113---17-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/e12c04eb58cac73c0f025a06e4462aae923d90b7...8173d905944b8b305f8989985abe7760af681de9)
Change:
- sucrose: exact inference name
- use `mapResponse` instead of `mapCompactResponse` for stream
- [#727](https://togithub.com/elysiajs/elysia/issues/727)
- defers first stream execution before returning response
- [#729](https://togithub.com/elysiajs/elysia/issues/729)
- [#722](https://togithub.com/elysiajs/elysia/issues/722) derive context is not passed to onError
Bug fix:
- `onError` with scope not being able to infer context type
### [`v1.1.2`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#112---16-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/b641de5b98215f67b952e231c63ad0ec6b3cbb87...e12c04eb58cac73c0f025a06e4462aae923d90b7)
Bug fix:
- [#724](https://togithub.com/elysiajs/elysia/issues/724), [bun#12594](https://togithub.com/oven-sh/bun/issues/12594) sucrose: possibly fix `bun build --compile` not being able to infer first, and last context parameter
- derive is being override by resolve in certain function
- [#722](https://togithub.com/elysiajs/elysia/issues/722) Type error with global `app.derive` followed by onError
- params on `onError` is now `{ [key in string]: string }` instead of `never`
- [#721](https://togithub.com/elysiajs/elysia/issues/721) unexpected isContextPassToFunction: minified whitespace of arrow function causing inaccurate separateFunction
### [`v1.1.1`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#111---16-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/7eb74d38771c12b5d23be3b5ebd133ffca7873ef...b641de5b98215f67b952e231c63ad0ec6b3cbb87)
Breaking Change:
- parse query as `string` instead of `string | string[]` unless specified
### [`v1.1.0`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#110---16-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/3d0adcf7e25d9044dce3ea541daa6d0272d91582...7eb74d38771c12b5d23be3b5ebd133ffca7873ef)
Feature:
- Trace v2
- Normalization is on by default
- Data type coercion
- Guard as, bulk as cast
- Response status coercion
- Optional path parameter
- Generator response stream
Breaking Change:
- Parse value as string for all validators unless explicitly specified.
- See [50a5d92](https://togithub.com/elysiajs/elysia/commit/50a5d92ea3212c5f95f94552e4cb7d31b2c253ad), [44bf279](https://togithub.com/elysiajs/elysia/commit/44bf279c3752c6909533d19c83b24413d19d27fa).
- Remove objects auto-parsing in query unless explicitly specified via query
- Except query string as defined in RFC 3986, TLDR; query string could be either string or array of string.
- Rename `onResponse` to `onAfterResponse`
- \[Internal] Remove $passthrough in favor of toResponse
- \[Internal] UnwrapRoute type now always resolve with status code
Improvement:
- Add auto-complete for `set.headers`
- Add `server` property
- `onError` supports array function
- Parse query object with and without schema
- Sucrose: improve isContextPassToFunction, and extractMainParameter stability
- Add `replaceSchemaType`
- Add `route` to `context`
- Optimize recursive MacroToProperty type
- Parse query array and object
- Optimize code path for `composeGeneralHandler`
- Add debug report on compiler panic
- Reduce memory usage of route registration ~36% on large codebase
- Reduce compilation code path
- Remove trace inference
- Reduce router compilation code path
- removing route handler compilation cache (st${index}, stc${index})
- Add undefined union to cookie in case if cookie is not present
- Optimize response status resolve type inference
Change:
- Deprecated `ObjectString` for parsing array
- Using `Cookie` instead of `Cookie` if schema is not defined
- Remove prototype poluation from hook
- remove static analysis for query name
- remove query replace '+' in favor removing static query analysis
- mapResponse is now called in error event
- reconcilation decorator in type level
Bug fix:
- Normalize headers accidentally use query validator check instead
- `onError` missing trace symbol
- Headers validator compilation is not cached
- Deduplicate macro propagation
- Websocket in nested group now work
- Error response is not check unless successful status code is provided
### [`v1.0.27`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1027---2-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/ccb6046f7279bbb3d689f907e28f71b4cecb8142...3d0adcf7e25d9044dce3ea541daa6d0272d91582)
Bug fix:
- [#640](https://togithub.com/elysiajs/elysia/issues/640) Unable to access root level macros in plugins
- [#606](https://togithub.com/elysiajs/elysia/issues/606) Object encoding in query parameters
### [`v1.0.26`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1026---30-Jun-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/d1297cf1ae8e232c8355a048cd099d373af83c97...ccb6046f7279bbb3d689f907e28f71b4cecb8142)
Bug fix:
- mapResponse is not called on beforeHandle, and afterHandle
### [`v1.0.25`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1025---21-Jun-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/95ed5a57ce8f168b7c4cb97d9694927eeff937f8...d1297cf1ae8e232c8355a048cd099d373af83c97)
Bug fix:
- type is resolved as `File` if `@types/bun` is not installed when using with Eden Treaty
### [`v1.0.24`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1024---18-Jun-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/d1a70fca7bec2e0ddc15ff90fa21825b2d74b69e...95ed5a57ce8f168b7c4cb97d9694927eeff937f8)
Bug fix:
- `derive`, `resolve` support void return
- [#677](https://togithub.com/elysiajs/elysia/issues/677) Query params validation for array of string fail
### [`v1.0.23`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1023---9-Jun-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/da63011c213158853e129d9668c1bb95f908c7d1...d1a70fca7bec2e0ddc15ff90fa21825b2d74b69e)
Feature:
- add `toResponse` for mapping custom response
- [#606](https://togithub.com/elysiajs/elysia/issues/606) Object encoding in query parameters
Bug fix:
- [#654](https://togithub.com/elysiajs/elysia/pull/654) set correct normalization behavior for addtional properties
- [#649](https://togithub.com/elysiajs/elysia/pull/649) cookie decode value might be null
- [#664](https://togithub.com/elysiajs/elysia/issues/664) "default" option is not being applied on validation
- [#656](https://togithub.com/elysiajs/elysia/issues/656) ctx.query doesn't work in some case
- set forceDynamicQuery to true by default
- [#658](https://togithub.com/elysiajs/elysia/issues/658) aot does not recognize the use of ctx.body within a try catch
- [#630](https://togithub.com/elysiajs/elysia/issues/630) accessing ctx.query directly breaks the object
### [`v1.0.22`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1022---23-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/321a7c5539b9503cfd9169f8c313643c351037b0...da63011c213158853e129d9668c1bb95f908c7d1)
Breaking Change:
- set default cookie path to `/`
Feature:
- add `form` utility for returning explicit formdata
- add object with image to return as `formdata`
Bug fix:
- return `Bun.file` by specifying `t.File()` and `t.Object({ any: t.File() })` as a response
### [`v1.0.21`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1021---21-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/69949954c8049086ac4e451e58aed685ec386f01...321a7c5539b9503cfd9169f8c313643c351037b0)
Breaking Change:
- `t.type({ error })` now accepts `(error: ({ type, validator, value, errors }) => unknown)` instead of `(error: (type, validator, value) => unknown)`
Improvement:
- `t.type({ error })` accepts `string | number | boolean | Object` instead of `string`
- `t.type({ error })` return `string | number | boolean | Object | void` instead of `string`
- add `errors: ValueError[]` to `t.type({ error({ errors }) {} })`
Bug fix:
- [#644](https://togithub.com/elysiajs/elysia/issues/644) redirect doesn't work with `aot: false`
- [#641](https://togithub.com/elysiajs/elysia/issues/641) cookie schema validation doesn't work with `aot: true`
- [#615](https://togithub.com/elysiajs/elysia/issues/615) highlight derive and resolve when using `onError`
### [`v1.0.20`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1020---13-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/a4d74d5968f461d528a0d682a773cca2f7df0758...69949954c8049086ac4e451e58aed685ec386f01)
Bug fix:
- macro is not inherits inside group
### [`v1.0.19`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1019---13-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/c5cc499fe981c3976b3704f7331e47479930431f...a4d74d5968f461d528a0d682a773cca2f7df0758)
Bug fix:
- remove set.clone spread operator for mapping Response
### [`v1.0.18`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1018---11-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/4ec9e81cb5acbbf27fbeef975955a4066ef4ff4f...c5cc499fe981c3976b3704f7331e47479930431f)
Feature:
- add support for partitioned cookie
Bug fix:
- recursive MacroToProperty type on unknown macro
### [`v1.0.17`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1017---9-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/57cc1a912fe587813de5d3acd29c147624ef87d3...4ec9e81cb5acbbf27fbeef975955a4066ef4ff4f)
Improvement:
- add context.url to get full URL string (including query)
- reduce query parsing instruction
### [`v1.0.16`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1016---2-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/3623be5997da4df8c40a832e0bf2d4940d95eb64...57cc1a912fe587813de5d3acd29c147624ef87d3)
Bug fix:
- [ratelimit#28](https://togithub.com/rayriffy/elysia-rate-limit/issues/28) trace hang when using server-timing with rate-limit plugin
### [`v1.0.15`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1015---27-Apr-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/cc16953b2b813416c791d4d5ac06b1ebb29cee03...3623be5997da4df8c40a832e0bf2d4940d95eb64)
Feature:
- add `redirect` function to `Context`
Improvement:
- sucrose: remove unreachable query bracket check, reduce bracket instruction
- sucrose: query accessor keyword check at initialization instead of in loop
- sucrose: remove accessor check
- sucrose: skip query check for immediate return
Change:
- sucrose: add `isArrowReturn` to `separateFunction`
- sucrose: skip inference queries check if `query` is not found
Change:
- allow custom parser when `type` is specified
- add `contentType` to context
- soft deprecate `contentType` as 2nd `parse` parameter
Bug fix:
- [#622](https://togithub.com/elysiajs/elysia/issues/622) sucrose: mistake cookie for query
- duplicate format found
- using `parse`, `type`, `body` generate invalid syntax
### [`v1.0.14`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1014---22-Apr-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/4debff9bd440cebd105b77bbc2de2380b076cbc7...cc16953b2b813416c791d4d5ac06b1ebb29cee03)
Improvement:
- [#596](https://togithub.com/elysiajs/elysia/pull/596) account for 20x response status schemas for type safety
Bug fix:
- [#615](https://togithub.com/elysiajs/elysia/issues/615)
- [588](https://togithub.com/elysiajs/elysia/issues/588) separate async derive/resolve function doesn't get await
- primitive thrown result in invalid type
### [`v1.0.13`](https://togithub.com/elysiajs/elysia/compare/a288a29cc0955f564e0410688e70bcd46138104c...4debff9bd440cebd105b77bbc2de2380b076cbc7)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/a288a29cc0955f564e0410688e70bcd46138104c...4debff9bd440cebd105b77bbc2de2380b076cbc7)
### [`v1.0.12`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1012---5-Apr-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/fbadb73b06d03032bf5a3da12ab77371082be8b6...a288a29cc0955f564e0410688e70bcd46138104c)
Improvement:
- export `InferContext` and `InferHandler`
Bug fix:
- remove accidental `console.log` in `compile`
### [`v1.0.11`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1011---2-Apr-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/9a8a285dfdc3b62ed535d44e460d00ced65a8e1f...fbadb73b06d03032bf5a3da12ab77371082be8b6)
Bug fix:
- possibly fix for "Duplicate type kind 'Files' detected"
- add ajv-formats
- [#562](https://togithub.com/elysiajs/elysia/pull/575) %26 (&) to be interpreted as & (query separator)
### [`v1.0.10`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1010---30-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/9a8a285dfdc3b62ed535d44e460d00ced65a8e1f...9a8a285dfdc3b62ed535d44e460d00ced65a8e1f)
Bug fix:
- [ServerTiming#1](https://togithub.com/elysiajs/elysia-server-timing/issues/1) late beforeHandle on set trace inference doesn't produce exit instruction
### [`v1.0.9`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#109---25-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/0ca4c571249838762f31ecc661bd3f43842496d1...9a8a285dfdc3b62ed535d44e460d00ced65a8e1f)
Feature:
- `Elysia.config.detail` constructor
- shorthand `Elysia.tags` to constructor, `LocalHook`
- guard inherits detail
Bug fix:
- inference link on `precompile: false` creating unnecessary instruction
### [`v1.0.8`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#108---25-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/e8ddb2f76c273275940c0f80881931f61ab918db...0ca4c571249838762f31ecc661bd3f43842496d1)
Feature:
- [#562](https://togithub.com/elysiajs/elysia/pull/562) add `normalize` config
Improvement:
- Scope cookie instruction to route level instead of global config
- [#557](https://togithub.com/elysiajs/elysia/pull/557) cache tsc buildinfo for running faster
- [#551](https://togithub.com/elysiajs/elysia/pull/551) use AnyElysia instead of inline Elysia
Bug fix:
- [#564](https://togithub.com/elysiajs/elysia/pull/564) Fixing "ReadableStream is locked"
- [#552](https://togithub.com/elysiajs/elysia/pull/552) fix: shift promise in PromiseGroup even when rejected
### [`v1.0.7`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#107---20-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/23502b0265cef1e305c1f7c440bb2f1a5cd66b89...e8ddb2f76c273275940c0f80881931f61ab918db)
Feature:
- add Elysia.propagate to propagate hook type from 'local' to 'scoped'
Improvement:
- remove function.$elysia
- remove function extension
Bug fix:
- duplicate macro call
- [#548](https://togithub.com/elysiajs/elysia/issues/548) additional case for "accessing all query params using property name (ctx.query) doesn't work anymore"
- [#599](https://togithub.com/elysiajs/elysia/issues/559) plugin with scoped settings not functioning correctly
### [`v1.0.6`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#106---20-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/23502b0265cef1e305c1f7c440bb2f1a5cd66b89...23502b0265cef1e305c1f7c440bb2f1a5cd66b89)
Bug fix:
- inline function doesn't propagate correctly on type level
### [`v1.0.5`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#105---19-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/8b269257ca46c5d55cb192765758105064b080f8...23502b0265cef1e305c1f7c440bb2f1a5cd66b89)
Improvement:
- using regex for date pattern matching before using new Date validation
- using tsc to emit declaration file instead of tsup
- add `mapResponse` to MacroManager
Bug fix:
- Ephemeral and Volatile type isn't recognize by MacroManager
- inline guard cookie doesn't apply to local instance
### [`v1.0.4`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#104---18-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/bdde62bb1f30ad6745bcb42f2f361c58c9662555...8b269257ca46c5d55cb192765758105064b080f8)
Improvement:
- resolve, derive soundness
### [`v1.0.3`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#103---18-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/023af448199e20000d79729cea767d86fc291595...bdde62bb1f30ad6745bcb42f2f361c58c9662555)
Improvement:
- Reduce instruction for static resource
Bug fix:
- Fix returning mulitple status code using `error` doesn't accept the response
### [`v1.0.2`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1027---2-Jul-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/bc32ad58cf4e62a60cfd36d1989fb4ed5ab5505f...023af448199e20000d79729cea767d86fc291595)
Bug fix:
- [#640](https://togithub.com/elysiajs/elysia/issues/640) Unable to access root level macros in plugins
- [#606](https://togithub.com/elysiajs/elysia/issues/606) Object encoding in query parameters
### [`v1.0.1`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#1019---13-May-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/891cce5fbe8c2b3f7069e69dc84d4eb8c71c3b7f...bc32ad58cf4e62a60cfd36d1989fb4ed5ab5505f)
Bug fix:
- remove set.clone spread operator for mapping Response
### [`v1.0.0`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#100---16-Mar-2024)
[Compare Source](https://togithub.com/elysiajs/elysia/compare/78671b1827ecb40add10c6a0fab28ce4187f28ef...891cce5fbe8c2b3f7069e69dc84d4eb8c71c3b7f)
Improvement:
- fine-grained reactive cookie
- using single source of truth for cookie
- macro support for websocket
- add `mapResolve`
- add `{ as: 'global' | 'scoped' | 'local' }` to lifecycle event
- add ephemeral type
- inline `error` to handler
- inline `error` has auto-completion and type checking based on status code
- handler now check return type of `error` based on status code
- utility `Elysia._types` for types inference
- [#495](https://togithub.com/elysiajs/elysia/issues/495) Provide user friendly error for failed parse
- handler now infers return type for error status for Treaty
- `t.Date` now allow stringified date
- improves type test case
- add test case for all life-cycle
- resolve, mapResolve, derive, mapDerive use ephemeral type to scope down accurately
- inference query dynamic variable
Breaking Change:
- [#513](https://togithub.com/elysiajs/elysia/issues/513) lifecycle is now local first
Change:
- group private API property
- move `Elysia.routes` to `Elysia.router.history`
- detect possible json before return
- unknown response now return as-is instead of JSON.stringify()
- change Elysia validation error to JSON instead of string
- static content evalute hook JIT instead of AOT
Bug fix:
- [#466](https://togithub.com/elysiajs/elysia/issues/466) Async Derive leaks request context to other requests if `aot: true`
- [#505](https://togithub.com/elysiajs/elysia/issues/505) Empty ObjectString missing validation inside query schema
- [#503](https://togithub.com/elysiajs/elysia/issues/503) Beta: undefined class when using decorate and derive
- onStop callback called twice when calling .stop
- mapDerive now resolve to `Singleton['derive']` instead of `Singleton['store']`
- `ValidationError` doesn't return `content-type` as `application/json`
- validate `error(status, value)` validate per status
- derive/resolve always scoped to Global
- duplicated onError call if not handled
- [#516](https://togithub.com/elysiajs/elysia/issues/516) server timing breaks beforeHandle guards
- cookie.remove() doesn't set correct cookie path
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[x] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^0.8.0
->^1.0.0
Release Notes
elysiajs/elysia (elysia)
### [`v1.1.9`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#119---28-Aug-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/929df61448afce52fbccfc09552355730f6f5e60...68987faecc79ea58fdb92c4a8119ce0bcf903b49) Change: - getter fields no longer stringified to JSON by default on returning response Bug fix: - [#796](https://togithub.com/elysiajs/elysia/issues/796) ValueClone: Unable to clone value after 1.1.8 update - [#795](https://togithub.com/elysiajs/elysia/issues/795) Broken Dates after 1.1.8 update - [#793](https://togithub.com/elysiajs/elysia/issues/793) Unable to delete property. t.File() ### [`v1.1.8`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#118---27-Aug-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/5e497ab4c7a0b9f98c0e1fa611a3c8a6d84c4043...929df61448afce52fbccfc09552355730f6f5e60) Feature: - [#748](https://togithub.com/elysiajs/elysia/issues/748) add standardHostname config Bug fix: - [#787](https://togithub.com/elysiajs/elysia/issues/787) [#789](https://togithub.com/elysiajs/elysia/issues/789)[#737](https://togithub.com/elysiajs/elysia/issues/737) Unexpected TypeError on NODE_ENV=production in mapValueError - [#793](https://togithub.com/elysiajs/elysia/issues/793) unable to delete property t.File() - [#780](https://togithub.com/elysiajs/elysia/issues/780) error from sending empty body multipart/form-data - [#779](https://togithub.com/elysiajs/elysia/issues/779) custom errors thrown in onRequest are not usable when caught in onError - [#771](https://togithub.com/elysiajs/elysia/issues/771) error from body-parser when sent Content-Type header without body - [#679](https://togithub.com/elysiajs/elysia/issues/679) plugin registered by async inline function don't work - [#670](https://togithub.com/elysiajs/elysia/issues/670) support for classes and getter fields ### [`v1.1.7`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#117---19-Aug-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/dc1f0592504f8246193a98db7963240e36b6e675...5e497ab4c7a0b9f98c0e1fa611a3c8a6d84c4043) Bug fix: - `parseQuery` is not parsing array on body Change: - rename `parseQuery` to `parseQueryFromURL` - export fast-querystring.js path ### [`v1.1.6`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#116---12-Aug-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/a0c417cd628a87f71ee255aa1c73f96cd3d8c051...dc1f0592504f8246193a98db7963240e36b6e675) Feature: - [#763](https://togithub.com/elysiajs/elysia/pull/763) add hide in detail to hide route from OpenAPI/swagger - add streaming support for fetch proxy Bug fix: - [#776](https://togithub.com/elysiajs/elysia/issues/776) custom errors throw in onRequest do not get proper code set in onError ### [`v1.1.5`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#115---2-Aug-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/a53e86f7c6a4f5ac5c80155ccabd0b06633d2224...a0c417cd628a87f71ee255aa1c73f96cd3d8c051) Feature: - refactor fastQuerystring using switch and bitwise flag Bug fix: - sucrose: invalid separateFunction on minified async function - [#758](https://togithub.com/elysiajs/elysia/issues/758) guard doesn't apply cookie schema ### [`v1.1.4`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#114---23-Jul-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/8173d905944b8b305f8989985abe7760af681de9...a53e86f7c6a4f5ac5c80155ccabd0b06633d2224) Feature: - [#718](https://togithub.com/elysiajs/elysia/pull/718) implement normalization support for class instances with getter functions Bug fix: - removeColonAlias accidentally slice -2 end index for last parameter - [#726](https://togithub.com/elysiajs/elysia/pull/726) lazy instantiation of `stringToStructureCoercions` - [#750](https://togithub.com/elysiajs/elysia/issues/750) Cookie: Right side of assignment cannot be destructured - [#749](https://togithub.com/elysiajs/elysia/issues/749) Query params following an array query are parsed as array items - [#751](https://togithub.com/elysiajs/elysia/issues/751) Dynamic mode response failed if null or undefined value is returned - [#741](https://togithub.com/elysiajs/elysia/issues/741) stream stringify object ### [`v1.1.3`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#113---17-Jul-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/e12c04eb58cac73c0f025a06e4462aae923d90b7...8173d905944b8b305f8989985abe7760af681de9) Change: - sucrose: exact inference name - use `mapResponse` instead of `mapCompactResponse` for stream - [#727](https://togithub.com/elysiajs/elysia/issues/727) - defers first stream execution before returning response - [#729](https://togithub.com/elysiajs/elysia/issues/729) - [#722](https://togithub.com/elysiajs/elysia/issues/722) derive context is not passed to onError Bug fix: - `onError` with scope not being able to infer context type ### [`v1.1.2`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#112---16-Jul-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/b641de5b98215f67b952e231c63ad0ec6b3cbb87...e12c04eb58cac73c0f025a06e4462aae923d90b7) Bug fix: - [#724](https://togithub.com/elysiajs/elysia/issues/724), [bun#12594](https://togithub.com/oven-sh/bun/issues/12594) sucrose: possibly fix `bun build --compile` not being able to infer first, and last context parameter - derive is being override by resolve in certain function - [#722](https://togithub.com/elysiajs/elysia/issues/722) Type error with global `app.derive` followed by onError - params on `onError` is now `{ [key in string]: string }` instead of `never` - [#721](https://togithub.com/elysiajs/elysia/issues/721) unexpected isContextPassToFunction: minified whitespace of arrow function causing inaccurate separateFunction ### [`v1.1.1`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#111---16-Jul-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/7eb74d38771c12b5d23be3b5ebd133ffca7873ef...b641de5b98215f67b952e231c63ad0ec6b3cbb87) Breaking Change: - parse query as `string` instead of `string | string[]` unless specified ### [`v1.1.0`](https://togithub.com/elysiajs/elysia/blob/HEAD/CHANGELOG.md#110---16-Jul-2024) [Compare Source](https://togithub.com/elysiajs/elysia/compare/3d0adcf7e25d9044dce3ea541daa6d0272d91582...7eb74d38771c12b5d23be3b5ebd133ffca7873ef) Feature: - Trace v2 - Normalization is on by default - Data type coercion - Guard as, bulk as cast - Response status coercion - Optional path parameter - Generator response stream Breaking Change: - Parse value as string for all validators unless explicitly specified. - See [50a5d92](https://togithub.com/elysiajs/elysia/commit/50a5d92ea3212c5f95f94552e4cb7d31b2c253ad), [44bf279](https://togithub.com/elysiajs/elysia/commit/44bf279c3752c6909533d19c83b24413d19d27fa). - Remove objects auto-parsing in query unless explicitly specified via query - Except query string as defined in RFC 3986, TLDR; query string could be either string or array of string. - Rename `onResponse` to `onAfterResponse` - \[Internal] Remove $passthrough in favor of toResponse - \[Internal] UnwrapRoute type now always resolve with status code Improvement: - Add auto-complete for `set.headers` - Add `server` property - `onError` supports array function - Parse query object with and without schema - Sucrose: improve isContextPassToFunction, and extractMainParameter stability - Add `replaceSchemaType` - Add `route` to `context` - Optimize recursive MacroToProperty type - Parse query array and object - Optimize code path for `composeGeneralHandler` - Add debug report on compiler panic - Reduce memory usage of route registration ~36% on large codebase - Reduce compilation code path - Remove trace inference - Reduce router compilation code path - removing route handler compilation cache (st${index}, stc${index}) - Add undefined union to cookie in case if cookie is not present - Optimize response status resolve type inference Change: - Deprecated `ObjectString` for parsing array - Using `CookieConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.