diff --git a/CHANGELOG.md b/CHANGELOG.md index e5e553a..04c7efb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## [1.1.0] - 2026-07-01 + +### Added + +- support for `z.looseObject` in the exported subset of schemas + +### Changed + +- upgraded dependencies: `jsr:@std/path@^1.1.5`, `jsr:@std/testing@^1.0.19`, + `npm:zod@^4.4.3` + ## [1.0.0] - 2026-03-30 ### Fixed diff --git a/deno.jsonc b/deno.jsonc index 01df9c9..d492675 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -1,6 +1,6 @@ { "name": "@dklab/oak-routing-ctrl", - "version": "1.0.0", + "version": "1.1.0", "exports": { ".": "./mod.ts", "./mod": "./mod.ts" @@ -26,9 +26,9 @@ "@oak/oak": "jsr:@oak/oak@^17.2.0", "@std/assert": "jsr:@std/assert@^1.0.19", "@std/io": "jsr:@std/io@^0.225.3", - "@std/path": "jsr:@std/path@^1.1.4", - "@std/testing": "jsr:@std/testing@^1.0.17", - "zod": "npm:zod@^4.3.6", + "@std/path": "jsr:@std/path@^1.1.5", + "@std/testing": "jsr:@std/testing@^1.0.19", + "zod": "npm:zod@^4.4.3", "superoak": "https://deno.land/x/superoak@5.0.0/mod.ts" }, "fmt": { diff --git a/deno.lock b/deno.lock index 99ef424..b8ddbc5 100644 --- a/deno.lock +++ b/deno.lock @@ -2,37 +2,34 @@ "version": "5", "specifiers": { "jsr:@oak/commons@1": "1.0.1", - "jsr:@oak/oak@*": "17.2.0", "jsr:@oak/oak@^17.2.0": "17.2.0", - "jsr:@std/assert@*": "1.0.19", "jsr:@std/assert@1": "1.0.19", "jsr:@std/assert@^1.0.13": "1.0.19", - "jsr:@std/assert@^1.0.17": "1.0.19", "jsr:@std/assert@^1.0.19": "1.0.19", "jsr:@std/bytes@1": "1.0.6", "jsr:@std/bytes@^1.0.6": "1.0.6", - "jsr:@std/cli@^1.0.28": "1.0.28", - "jsr:@std/crypto@1": "1.0.5", + "jsr:@std/cli@^1.0.30": "1.0.30", + "jsr:@std/crypto@1": "1.1.0", "jsr:@std/encoding@1": "1.0.10", "jsr:@std/encoding@^1.0.10": "1.0.10", - "jsr:@std/fmt@^1.0.9": "1.0.9", - "jsr:@std/fs@^1.0.22": "1.0.23", - "jsr:@std/fs@^1.0.23": "1.0.23", - "jsr:@std/html@^1.0.5": "1.0.5", - "jsr:@std/http@1": "1.0.25", - "jsr:@std/http@^1.0.16": "1.0.25", - "jsr:@std/internal@^1.0.12": "1.0.12", + "jsr:@std/fmt@^1.0.10": "1.0.10", + "jsr:@std/fs@^1.0.24": "1.0.24", + "jsr:@std/html@^1.0.7": "1.0.7", + "jsr:@std/http@1": "1.1.1", + "jsr:@std/http@^1.0.16": "1.1.1", + "jsr:@std/internal@^1.0.12": "1.0.14", + "jsr:@std/internal@^1.0.14": "1.0.14", "jsr:@std/io@~0.225.3": "0.225.3", "jsr:@std/media-types@1": "1.1.0", "jsr:@std/media-types@^1.1.0": "1.1.0", "jsr:@std/net@^1.0.6": "1.0.6", - "jsr:@std/path@1": "1.1.4", - "jsr:@std/path@^1.1.4": "1.1.4", - "jsr:@std/streams@^1.0.17": "1.0.17", - "jsr:@std/testing@^1.0.17": "1.0.17", - "npm:@asteasolutions/zod-to-openapi@^8.5.0": "8.5.0_zod@4.3.6", + "jsr:@std/path@1": "1.1.5", + "jsr:@std/path@^1.1.5": "1.1.5", + "jsr:@std/streams@^1.1.1": "1.1.1", + "jsr:@std/testing@^1.0.19": "1.0.19", + "npm:@asteasolutions/zod-to-openapi@^8.5.0": "8.5.0_zod@4.4.3", "npm:path-to-regexp@^6.3.0": "6.3.0", - "npm:zod@^4.3.6": "4.3.6" + "npm:zod@^4.4.3": "4.4.3" }, "jsr": { "@oak/commons@1.0.1": { @@ -61,49 +58,49 @@ "@std/assert@1.0.19": { "integrity": "eaada96ee120cb980bc47e040f82814d786fe8162ecc53c91d8df60b8755991e", "dependencies": [ - "jsr:@std/internal" + "jsr:@std/internal@^1.0.12" ] }, "@std/bytes@1.0.6": { "integrity": "f6ac6adbd8ccd99314045f5703e23af0a68d7f7e58364b47d2c7f408aeb5820a" }, - "@std/cli@1.0.28": { - "integrity": "74ef9b976db59ca6b23a5283469c9072be6276853807a83ec6c7ce412135c70a" + "@std/cli@1.0.30": { + "integrity": "769446536522d0417d7127ebcabcafac1ab0ce6766d0eb3fca1d36326fe98d13" }, - "@std/crypto@1.0.5": { - "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" + "@std/crypto@1.1.0": { + "integrity": "b8d6d0a6377a32b213af2661ed7bf1062d94feac0c57def5526a8e74a95c3ec8" }, "@std/encoding@1.0.10": { "integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1" }, - "@std/fmt@1.0.9": { - "integrity": "2487343e8899fb2be5d0e3d35013e54477ada198854e52dd05ed0422eddcabe0" + "@std/fmt@1.0.10": { + "integrity": "90dfba288802ac6de82fb31d0917eb9e4450b9925b954d5e51fc29ac07419db5" }, - "@std/fs@1.0.23": { - "integrity": "3ecbae4ce4fee03b180fa710caff36bb5adb66631c46a6460aaad49515565a37", + "@std/fs@1.0.24": { + "integrity": "f3061b45b81673a2bece689da041df32d174be064c89eb6397fb5718d3fb7877", "dependencies": [ - "jsr:@std/path@^1.1.4" + "jsr:@std/path@^1.1.5" ] }, - "@std/html@1.0.5": { - "integrity": "4e2d693f474cae8c16a920fa5e15a3b72267b94b84667f11a50c6dd1cb18d35e" + "@std/html@1.0.7": { + "integrity": "175c818905a6e75743c69c251395e273d82698e58cfe7dd76268d70e28b8d8fe" }, - "@std/http@1.0.25": { - "integrity": "577b4252290af1097132812b339fffdd55fb0f4aeb98ff11bdbf67998aa17193", + "@std/http@1.1.1": { + "integrity": "e343a9a80aea07c716b91be5c79df764144430ad2dd7c9121ed7443f08dc74f7", "dependencies": [ "jsr:@std/cli", "jsr:@std/encoding@^1.0.10", "jsr:@std/fmt", - "jsr:@std/fs@^1.0.23", + "jsr:@std/fs", "jsr:@std/html", "jsr:@std/media-types@^1.1.0", "jsr:@std/net", - "jsr:@std/path@^1.1.4", + "jsr:@std/path@^1.1.5", "jsr:@std/streams" ] }, - "@std/internal@1.0.12": { - "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027" + "@std/internal@1.0.14": { + "integrity": "291516b3d4c35024d6ffbc0a9df5bf4c64116e05b50012cf846710152d2ffdf7" }, "@std/io@0.225.3": { "integrity": "27b07b591384d12d7b568f39e61dff966b8230559122df1e9fd11cc068f7ddd1", @@ -117,35 +114,35 @@ "@std/net@1.0.6": { "integrity": "110735f93e95bb9feb95790a8b1d1bf69ec0dc74f3f97a00a76ea5efea25500c" }, - "@std/path@1.1.4": { - "integrity": "1d2d43f39efb1b42f0b1882a25486647cb851481862dc7313390b2bb044314b5", + "@std/path@1.1.5": { + "integrity": "ccea00982ea28c36becaf6e62f855406c76a8c32d462f66f415bbb7d83a271bc", "dependencies": [ - "jsr:@std/internal" + "jsr:@std/internal@^1.0.14" ] }, - "@std/streams@1.0.17": { - "integrity": "7859f3d9deed83cf4b41f19223d4a67661b3d3819e9fc117698f493bf5992140" + "@std/streams@1.1.1": { + "integrity": "92556d350e537e9dce527a6d08f6f15be3ff65e656079dea69d15252187c7613" }, - "@std/testing@1.0.17": { - "integrity": "87bdc2700fa98249d48a17cd72413352d3d3680dcfbdb64947fd0982d6bbf681", + "@std/testing@1.0.19": { + "integrity": "f4236172365b216728dc3cc8b5e80a9f4c33083d1e4ede7613d5b25b4014898e", "dependencies": [ - "jsr:@std/assert@^1.0.17", - "jsr:@std/fs@^1.0.22", - "jsr:@std/internal", - "jsr:@std/path@^1.1.4" + "jsr:@std/assert@^1.0.19", + "jsr:@std/fs", + "jsr:@std/internal@^1.0.14", + "jsr:@std/path@^1.1.5" ] } }, "npm": { - "@asteasolutions/zod-to-openapi@8.5.0_zod@4.3.6": { + "@asteasolutions/zod-to-openapi@8.5.0_zod@4.4.3": { "integrity": "sha512-SABbKiObg5dLRiTFnqiW1WWwGcg1BJfmHtT2asIBnBHg6Smy/Ms2KHc650+JI4Hw7lSkdiNebEGXpwoxfben8Q==", "dependencies": [ "openapi3-ts", "zod" ] }, - "openapi3-ts@4.5.0": { - "integrity": "sha512-jaL+HgTq2Gj5jRcfdutgRGLosCy/hT8sQf6VOy+P+g36cZOjI1iukdPnijC+4CmeRzg/jEllJUboEic2FhxhtQ==", + "openapi3-ts@4.6.0": { + "integrity": "sha512-a4sfn6L2sIShhtzJqmjGrARvxAW/3F2BJDdyRVvNF9VhAsZSh5hSyI3a9TNvmzBxXmq66nY5LNT5bQcBxYAZZg==", "dependencies": [ "yaml" ] @@ -153,12 +150,12 @@ "path-to-regexp@6.3.0": { "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" }, - "yaml@2.8.3": { - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "yaml@2.9.0": { + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "bin": true }, - "zod@4.3.6": { - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==" + "zod@4.4.3": { + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==" } }, "remote": { @@ -227,10 +224,10 @@ "jsr:@oak/oak@^17.2.0", "jsr:@std/assert@^1.0.19", "jsr:@std/io@~0.225.3", - "jsr:@std/path@^1.1.4", - "jsr:@std/testing@^1.0.17", + "jsr:@std/path@^1.1.5", + "jsr:@std/testing@^1.0.19", "npm:@asteasolutions/zod-to-openapi@^8.5.0", - "npm:zod@^4.3.6" + "npm:zod@^4.4.3" ] } } diff --git a/src/utils/schema_utils.ts b/src/utils/schema_utils.ts index dc8c9ea..86deb60 100644 --- a/src/utils/schema_utils.ts +++ b/src/utils/schema_utils.ts @@ -42,6 +42,7 @@ extendZodWithOpenApi(slowTypedZ); type SubsetOfZ = Pick< typeof slowTypedZ, | "object" + | "looseObject" | "array" | "string" | "number"