0.22.2 (2026-04-25)
0.22.1 (2026-04-03)
- default and catch funcs (#215) (f27b872)
- experimental any schema (#214) (873c637)
- experimental map schema (#211) (0907ff2)
- experimental recursive schema (#209) (e717322)
- experimental Zog Schema Specification (#203) (b3c4e89)
0.22.0 (2025-12-14)
- all schemas now return a issue list. Issue paths are now slices
- better panic message when user passes non pointer destination to parse/validate functions (#205) (9570fec)
- experimental custom schema API (#187) (76a1d47)
- new issue formatting utilities. (1305e68)
0.21.10 (2025-12-12)
0.21.9 (2025-11-12)
- add IPv6 and generic IP validators for strings (#199) (c6fe2a3)
- i18n: add Azerbaijani message for IP validator (#198) (272a6bf)
- i18n: add Japanese message for IP validator (IPv4) (#195) (0d3278f)
0.21.8 (2025-11-02)
0.21.7 (2025-10-17)
- zhttp now supports multipart form data (3fae95f)
0.21.6 (2025-08-24)
0.21.5 (2025-07-23)
- z.time.Format() not working (638ff57)
0.21.4 (2025-07-13)
0.21.3 (2025-07-03)
0.21.2 (2025-06-15)
- error message for number().oneOf() (5de48a3)
- optional in zhttp (#167) (f1e621b)
- regex for email (#166) (954de17)
0.21.1 (2025-05-24)
0.21.0 (2025-05-03)
- transforms and tests are now typesafe for the schema you are using. No more typecasting in Zog! (#149)
- provide better panic msgs and docs (#153) (f605689)
- transforms and tests are now typesafe for the schema you are using. No more typecasting in Zog! (#149) (2da0c0c)
0.20.0 (2025-04-26)
- Deprecated z.Schema in favor of z.Shape. No plans to remove z.Schema for now
- Allow empty strings during parsing to not trigger required. Instead do .Min(1). (#148)
- Transforms are now run sequentially with tests in the order they were defined in. schema.PostTransform has been deprecated and until it is removed it will work just like schema.Transform. Therefore schema.Min(1).Trim().Min(1) will work and first check string length > 1 then trim then check again for string len > 1
- implemented preprocess, removed preTransforms
- Deprecated z.Schema in favor of z.Shape. No plans to remove z.Schema for now (544f03d)
- implemented preprocess, removed preTransforms (9dde9be)
- ordered transforms (#147) (1db8140)
0.19.2 (2025-04-18)
0.19.1 (2025-04-13)
- customFunc for easy custom schemas. Usage is z.CustomFunc[T any](func (valPtr *T, ctx z.Ctx) bool {}, ...TestOptions) (#141) (4c2b42e)
- release 0.19.1 (0485a6b)
0.19.0 (2025-04-03)
- Test.ValidateFunc's name has been changed to Test.Func
- release 0.19.0 (2a25dc4)
0.18.4 (2025-03-16)
- release 0.18.4 (a3526ae)
0.18.2 (2025-03-08)
- zog tag changed to a catch all instead of superseding the other tags
- zog tag changed to a catch all instead of superseding the other tags (869268e)
- release 0.18.2 (6517301)
0.18.1 (2025-03-08)
- allow zog to use multiple struct tags zog, json, form, query, env (5426bb6)
- release 0.18.1 (62fcb88)
0.18.0 (2025-03-08)
- DELETE Method on zhttp also supports multiplexing based on content type header
- Removed deprecated z.ParseCtx interface. Use z.Ctx instead
- Zog issue interface is converted into a struct (#119)
- DELETE Method on zhttp also supports multiplexing based on content type header (b8ebdc7)
- export pre & post transforms from main zog package (57703a4)
- release 0.18.0 (df12fb1)
- Removed deprecated z.ParseCtx interface. Use z.Ctx instead (0bb4cfd)
- Zog issue interface is converted into a struct (#119) (a68b393)
0.17.2 (2025-03-02)
- removed allocation for struct schemas (4cd379c)
0.17.1 (2025-02-28)
- removed one allocation per schema (14f3511)
0.17.0 (2025-02-22)
- new schemas, float32, int64, int32 (#108) (0e57a5b)
- number schema now supports any number (#110) (6af9605)
0.16.6 (2025-02-21)
- delete method also only allows for parsing of query params just like GET and HEAD with zhttp (6bc7636)
- zhttp GET request with json or form content type still fetches from params (867cd06)
0.16.5 (2025-02-20)
0.16.4 (2025-02-20)
- panic on single letter query param zhttp (#101) (cd8d172)
- zhttp supports more complex content type strings (#99) (9460ea2)
0.16.3 (2025-02-20)
0.16.2 (2025-02-19)
0.16.1 (2025-02-19)
- release 0.16.1 (6d416fa)
0.16.0 (2025-02-11)
- structs can no longer be required or optional. Define this in the fields instead. If you need to model a struct that might exist use a pointer to a struct. This should not affect most users as now it works how everyone intuitively thought it worked. (#88)
- renamed ZogError to ZogIssue to be more aligned with Zod. Deprecated a bunch of APIs for naming consistency. conf.ErrorFormatter removed in favor of conf.IssueFormatter (#86)
- new test option to set the issue path for issues generated from that test (#87) (47d24a1)
- testFunc method on schemas for easier custom tests (#82) (52a90eb)
- structs can no longer be required or optional. Define this in the fields instead. If you need to model a struct that might exist use a pointer to a struct. This should not affect most users as now it works how everyone intuitively thought it worked. (#88) (9681ebb)
- release 0.16.0 (3a222d0)
- renamed ZogError to ZogIssue to be more aligned with Zod. Deprecated a bunch of APIs for naming consistency. conf.ErrorFormatter removed in favor of conf.IssueFormatter (#86) (49f01e3)
0.15.1 (2025-02-09)
0.15.0 (2025-02-03)
- release 0.15.0 (17cc76d)
0.14.1 (2025-01-13)
0.14.0 (2025-01-02)
0.13.0 (2024-11-12)
0.12.1 (2024-11-11)
- release 0.12.1 (505dcdb)
0.12.0 (2024-11-09)
- implement z.String().Trim() as a built in PreTransform that trims the input data if it is a string (#51) (1d65859)
- schema custom coercer support via the z.WithCoercer function and custom time formats via z.Time.Format() fuction (#48) (1472669)
- time coercer now support for unix timestamps in ms (#47) (4c5b4bd)
- zhttp package now supports providing your own custom parsers (#50) (e8a111f)
0.11.0 (2024-11-01)
- zhttp.NewRequestDataProvider() which was deprecated is now removed. Please use zhttp.Request() instead
- ZogError.Error() no longer proxies to the wrapped error. Now it returns a string representation of the ZogError. You can still access Wrapped error through Unwrap()
- release (6bfc8cc)
- removed zhttp new data provider (86d4e6f)
0.10.0 (2024-10-07)
- add test options to time methods (42db318)
- boolean false parsing behavior (#35) (8670b64)
- struct merge panic on merging schemas with transforms (90ccc88)
0.9.1 (2024-09-26)
- zhttp request method (f69af8b)
0.9.0 (2024-09-22)
- i18n package with spanish & english translations (#28) (1120fd6)
- improved zhttp library (#32) (891bb6c)
- trim space for env variables (166d881)
0.8.0 (2024-09-16)
- added transforms for slices (#22) (71c01cb)
- json data provider (2d10c92)
- panic on invalid struct schema (#25) (8d5b493)
- required custom z.Message (#24) (49198a0)
- structs now handle both uppercase and lowercase first letters (4fbc9c3)
0.7.0 (2024-09-09)
- custom tests now require that you pass a test struct or use the TestFunc() helper
- order of schema.Test() params has changed from (errorCode, z.Message(), func) to (errCode, func, [optionalTestOptions])
- All z.Errors functions have changed. I still don't recommend you use them since they might still change in the future
- better errors (fe78a8d)
- move coercers to default variable to make it easier to replace the coercers struct without losing access to the default coercers (2387330)
- new & improved API for custom tests (9acfc37)
- bool coercer (#14) (01f8c17)
- minor fix to order of operations when required is set (cff0fc3)
- Time().EQ() was broken due to typo (9310e1a)
- release 0.7.0 (0e0eb47)
- custom test method is now more in line with the rest. (d163f36)
0.6.2 (2024-08-16)
- slice errMap will now access validation errors for the first element through
[0]key rather than0key
- release 0.6.2 (b4c90c4)
0.6.1 (2024-08-16)
0.6.0 (2024-08-16)
- release 0.5.0 (6da4503)