diff --git a/README.md b/README.md index b5917dbc..6367fbfa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Keep your business logic clean with Domain Functions Domain Functions helps you decouple your business logic from your controllers, with first-class type inference from end to end. -It does this by enforcing the parameters' types at runtime and always wrapping results (even exceptions) into a `Promise>` type. +It does this by enforcing the parameters' types at runtime (through [zod](https://github.com/colinhacks/zod#what-is-zod) schemas) and always wrapping results (even exceptions) into a `Promise>` type. ![](example.gif) @@ -42,7 +42,6 @@ It does this by enforcing the parameters' types at runtime and always wrapping r - [inputFromFormData](#inputfromformdata) - [inputFromUrl](#inputfromurl) - [inputFromSearch](#inputfromsearch) -- [Using other schema validators](#using-other-schema-validators) - [Resources](#resources) - [FAQ](#faq) - [Acknowlegements](#acknowlegements) @@ -61,9 +60,6 @@ It does this by enforcing the parameters' types at runtime and always wrapping r npm i domain-functions zod ``` -**NOTE :** All our examples will use [zod](https://zod.dev/) which we recommend if you have no existing schema validation library in your project. -You can, however, [use other schema validators](#using-other-schema-validators). - ```tsx import { makeDomainFunction, inputFromForm } from 'domain-functions' import * as z from 'zod' @@ -92,8 +88,7 @@ failedResult = { */ ``` -To understand how to build the schemas, refer to your schema validation library documentation. -See the [Zod documentation](https://zod.dev) to better understand how our examples are built. +To understand how to build the schemas, refer to [Zod documentation](https://github.com/colinhacks/zod#defining-schemas). ## Using Deno @@ -523,7 +518,7 @@ const result = await first(a, b)({ id: 1 }) It will pass the same environment to all given functions, and it will pass the output of a function as the next function's input in left-to-right order. The resulting data will be the output of the rightmost function. -**NOTE :** that there is no type-level assurance that a function's output will align with and be succesfully parsed by the next function in the pipeline. +Note that there is no type-level assurance that a function's output will align with and be succesfully parsed by the next function in the pipeline. ```ts const a = makeDomainFunction(z.object({ aNumber: z.number() }))( @@ -978,40 +973,6 @@ async (request: Request) => { To better understand how to structure your data, refer to [this test file](./src/input-resolvers.test.ts) -## Using other schema validators - -Although our examples use `zod`, you are able to chose any one of the supported libraries: - - * [Valibot](https://valibot.dev/) - * [yup](https://github.com/jquense/yup) - * [Superstruct](https://docs.superstructjs.org/) - * [TypeBox](https://github.com/sinclairzx81/typebox) - * [runtypes](https://github.com/pelotom/runtypes) - -See below another version of our initial example using [Valibot](https://valibot.dev/). - -```typescript -import { makeDomainFunction, inputFromForm } from 'domain-functions' -import { object, number } from 'valibot'; - -const schema = object({ number: number() }) -const increment = makeDomainFunction(schema)(({ number }) => number + 1) - -const result = await increment({ number: 1 }) - -/* -result = { - success: true, - data: 2, - errors: [] - inputErrors: [] - environmentErrors: [] -} -*/ -``` - -For more examples of how to use other libraries check our [test file](./src/parsers.test.ts). - ## Resources - [The case for domain-functions](https://dev.to/diogob/the-case-for-domain-functions-f4e) @@ -1027,7 +988,6 @@ For more examples of how to use other libraries check our [test file](./src/pars ## Acknowlegements We are grateful for [Zod](https://github.com/colinhacks/zod), as it is a great library and it informed our design. -[TypeSchema](https://typeschema.com/) is another great project that allowed us to support multiple validators. It's worth mentioning two other projects that inspired domain-functions: - [Servant](https://github.com/haskell-servant/servant/) diff --git a/deno.lock b/deno.lock index 9dd5dc35..620126d2 100644 --- a/deno.lock +++ b/deno.lock @@ -110,382 +110,12 @@ "https://deno.land/x/dnt@0.38.0/lib/utils.ts": "878b7ac7003a10c16e6061aa49dbef9b42bd43174853ebffc9b67ea47eeb11d8", "https://deno.land/x/dnt@0.38.0/mod.ts": "b13349fe77847cf58e26b40bcd58797a8cec5d71b31a1ca567071329c8489de1", "https://deno.land/x/dnt@0.38.0/transform.ts": "f68743a14cf9bf53bfc9c81073871d69d447a7f9e3453e0447ca2fb78926bb1d", - "https://deno.land/x/fp_ts@v2.11.4/Alt.ts": "c6dc9b09b7eda940e41038f987a20429efbafa8b594c2e3b2590929b9662a207", - "https://deno.land/x/fp_ts@v2.11.4/Alternative.ts": "6aa829f39ce6dd71b5de2e67069ad83a380499ec8b18830e670943dad1054c22", - "https://deno.land/x/fp_ts@v2.11.4/Applicative.ts": "b1ff911f447544153398e596a15b328db3c6d781313059cdcf8e34466f53a8b7", - "https://deno.land/x/fp_ts@v2.11.4/Apply.ts": "91c356f6f66916bb47a3cd6e4cbd0b867c6324cf3880a9f5f60d5bcc2da839d1", - "https://deno.land/x/fp_ts@v2.11.4/Bifunctor.ts": "9b3496dbedba8f4f994f4f640d28cc5266949e5a350d6cf9f023dc648aff6112", - "https://deno.land/x/fp_ts@v2.11.4/BooleanAlgebra.ts": "601a11f8a210bd8e2c6eabe20efe8aa060442b87d7231134a953d2f20f7889f8", - "https://deno.land/x/fp_ts@v2.11.4/Bounded.ts": "173c354582b731dce6dd104e1d525fa5320d37c8f433cd3d07f54440bb232062", - "https://deno.land/x/fp_ts@v2.11.4/BoundedDistributiveLattice.ts": "4c4ab4aa5652b4a5fd024c2031b44fa458a74489898cc4e51b03145aa0605436", - "https://deno.land/x/fp_ts@v2.11.4/BoundedJoinSemilattice.ts": "6e787586fa33e27589aec9b9bdcb052376999554b3f18c99ace560fc84b2d16e", - "https://deno.land/x/fp_ts@v2.11.4/BoundedLattice.ts": "ebdfddbe024a0fe21d29914d8faa6c8c65cfb3bea5b3d0bf14f3e499c572e29a", - "https://deno.land/x/fp_ts@v2.11.4/BoundedMeetSemilattice.ts": "8175a61f89b7bd03abb3acb99e32ac8e7205b68a1cac4ceb0f2aeea978952506", - "https://deno.land/x/fp_ts@v2.11.4/Chain.ts": "85d0ec8aeb96a062fdb80f1895c0272c9a54e710860c89709f3cbb3ac67239bc", - "https://deno.land/x/fp_ts@v2.11.4/ChainRec.ts": "5f0a88a9731481a881a79e7e61742e22c48c612f4e2e49d254306b1bc75cfebb", - "https://deno.land/x/fp_ts@v2.11.4/Comonad.ts": "4d2875a02fc103a5b05bfa04126d4ecf9f490f9cf33e1344d62161ee49e98420", - "https://deno.land/x/fp_ts@v2.11.4/Compactable.ts": "3de0964918b299d032f96eb97d7d705e42e0cd64d3ad1350c67d8336c987d0e0", - "https://deno.land/x/fp_ts@v2.11.4/Contravariant.ts": "9d2b06365f58b37bcca6275803735d2b737d6a790b54dd6d4088a9b1b656a0eb", - "https://deno.land/x/fp_ts@v2.11.4/DistributiveLattice.ts": "eeaef952c590ee1ec62bf3bf903d4dab1c1bb6aaac5d8ab7b5b41983591e0b7d", - "https://deno.land/x/fp_ts@v2.11.4/Either.ts": "8b31e8c8fb45723b430a9a37487f7aca0c7d765cf682e6f4c727111e049e565b", - "https://deno.land/x/fp_ts@v2.11.4/Endomorphism.ts": "d6f055996acd87d62b83b2e4488aafd682f995712abbec87294411db7fa6eaf4", - "https://deno.land/x/fp_ts@v2.11.4/Eq.ts": "1b87181763a58917df6e5faa07fda58808953803764dcc7e0580bbaf7392ab29", - "https://deno.land/x/fp_ts@v2.11.4/Extend.ts": "e46c5ed00fb422263f3c448188082780849b69d1cd33da48909e432ddac81b2f", - "https://deno.land/x/fp_ts@v2.11.4/Filterable.ts": "34a5c2df7131c5b07ea2f1cb5c5e31ce6ea05fdd151d63297dc0d50852cefa49", - "https://deno.land/x/fp_ts@v2.11.4/FilterableWithIndex.ts": "f9633984c9c647348d68fe7fdad8981ec3120a1db6188c3ea3150799b93d888b", - "https://deno.land/x/fp_ts@v2.11.4/Foldable.ts": "33a67d5154f739830403e5d9c1536a8f7e1b559c6770b8cada22d85b0f038bb7", - "https://deno.land/x/fp_ts@v2.11.4/FoldableWithIndex.ts": "b8e1ed3c33fe8a3ccfac60befcf1bbc18a111d93800da5c82c422725142e4f0d", - "https://deno.land/x/fp_ts@v2.11.4/FromEither.ts": "edef9de6314ca65ff7cc8304e8d7e45b0731d1718c4afa482e16294bde05f427", - "https://deno.land/x/fp_ts@v2.11.4/Functor.ts": "ea4ad672027212168763d4827de8c501dbddcedab9af3c888808e4408b4484ab", - "https://deno.land/x/fp_ts@v2.11.4/FunctorWithIndex.ts": "5a6f8e5b512137645cc8ae91e5ee9397a53ba83c22337fb95b7b8270238bde22", - "https://deno.land/x/fp_ts@v2.11.4/HKT.ts": "4c565568046d3f95e944b1aea4143d9195c93a86d4b082bfdbcf685d4d6d903d", - "https://deno.land/x/fp_ts@v2.11.4/HeytingAlgebra.ts": "fda47a135e7f3e69a93ba02b254c1cbd03a8adbffdc77b274838ea804e42d5b1", - "https://deno.land/x/fp_ts@v2.11.4/JoinSemilattice.ts": "83b758f3070521127da3788d554def26492df79d0c66f574e4a7fdd8f73f44ea", - "https://deno.land/x/fp_ts@v2.11.4/Lattice.ts": "1b9a3c18b55f617598dd8abe2724600f52a4d81b915dd1ca5a50f53628225427", - "https://deno.land/x/fp_ts@v2.11.4/Magma.ts": "0c7f20604337fdb2fd3a3159a1e78c6f765a7f918d29ccbc9394855474f4a919", - "https://deno.land/x/fp_ts@v2.11.4/MeetSemilattice.ts": "fa536ec9457eb75cac1d40aff1524bd0d51b0829e118225f75fc10e05d47aba5", - "https://deno.land/x/fp_ts@v2.11.4/Monad.ts": "7fe452a98d61c14e487e6e033018019c502af91523feb5172df5315e2b8081ec", - "https://deno.land/x/fp_ts@v2.11.4/MonadThrow.ts": "fe9e6e489a4865655f754412026ecfe3bb2cb69e7aee6988ed4f07264724c3d6", - "https://deno.land/x/fp_ts@v2.11.4/Monoid.ts": "3e83956dfefa349d3236e14d5dff80dbc1e8c2f6e882a105733597f096fbb0e0", - "https://deno.land/x/fp_ts@v2.11.4/NaturalTransformation.ts": "2b15bcab7ef3ce9006132edf39e0574acdfa4c711224fc34deb31d6a6939c1d6", - "https://deno.land/x/fp_ts@v2.11.4/NonEmptyArray.ts": "d0c3bfe23813b5c2c1ddfdcdc89ef3da930eb0557118bfad505cbeaa0ee97795", - "https://deno.land/x/fp_ts@v2.11.4/Option.ts": "c16c369636613a20d192ae4d3defe43830669fc3587f2114b6c0ebc48969a0ce", - "https://deno.land/x/fp_ts@v2.11.4/Ord.ts": "198287f88301a0a0d24e13777cc48ba8d1e0aed14acd69bdb0869da44717943b", - "https://deno.land/x/fp_ts@v2.11.4/Ordering.ts": "0fff70e5459a950b8729d046550c6d5ec7680451f578b632ff8cc6bf44f3671f", - "https://deno.land/x/fp_ts@v2.11.4/Pointed.ts": "a7a7f9fa80f7e22e108c60acef9b863a7e2d6e1d4dc4f62c8126a3cc343dc7b5", - "https://deno.land/x/fp_ts@v2.11.4/Predicate.ts": "3929a868e4dd9b8a1f82c2f99b9c9fb63d94a8ded67c45179698cf6cb6f4621d", - "https://deno.land/x/fp_ts@v2.11.4/ReadonlyNonEmptyArray.ts": "d3de7798ae111af3546b92d4c88704b8711ffdec5f3ac012afc9536fec5d53b8", - "https://deno.land/x/fp_ts@v2.11.4/ReadonlyRecord.ts": "4b4583f2a8ca504f082bf32859f7bd9ebcba1f70c67a2fec734aaeaf68f395fa", - "https://deno.land/x/fp_ts@v2.11.4/Refinement.ts": "a2ced42de715df56c696887cfff37954276c258801094d9da7e6946ec141c56b", - "https://deno.land/x/fp_ts@v2.11.4/Ring.ts": "3a213df2ab441cc58c785d7d0cb9448d8f9d06fe908602dbe158bfa4a0d80d55", - "https://deno.land/x/fp_ts@v2.11.4/Semigroup.ts": "ee41cf3555b4e5032ffeee6e89684999f6a203fc5624bcbc7606246bca889ce9", - "https://deno.land/x/fp_ts@v2.11.4/Semiring.ts": "d5eda77b6145fd283af1e011ab1b7dce6b95c7e4f57b77c3ce54e841640f9814", - "https://deno.land/x/fp_ts@v2.11.4/Separated.ts": "c63363255070370d173df9178c6bf482fcdaa11da20bb9240e02dd9c07b8b875", - "https://deno.land/x/fp_ts@v2.11.4/Show.ts": "a6642d3f63dc2a4860a0fbbb731263e6041ea73b6bedfc3fc0052e6ef23d286b", - "https://deno.land/x/fp_ts@v2.11.4/Traversable.ts": "1f0c800b803b6337dec88b38b9301cb1e44c7dd074b24c4ed8a8e2d49d485e03", - "https://deno.land/x/fp_ts@v2.11.4/TraversableWithIndex.ts": "58142b89772592879a2d81279dae448a5585c3cd464fea1212b11766c1e65da8", - "https://deno.land/x/fp_ts@v2.11.4/Unfoldable.ts": "a5434907429327fb1b11578e21fb703840045acbee321ac7c5f20bcb5c9a3773", - "https://deno.land/x/fp_ts@v2.11.4/Witherable.ts": "56c9aa09d5dfacf6d012a35fc3d1ec912094bd0fe89b87e909d2af4054ad6fdc", - "https://deno.land/x/fp_ts@v2.11.4/Zero.ts": "1a439e721b562321fe0f8419cab7ad3f8380f93ed266387a145d62c1b78fd822", - "https://deno.land/x/fp_ts@v2.11.4/function.ts": "5f80016e6c379b6041ea468d940b8c6d4b5e4e40a9fed8c240aa518dedced841", - "https://deno.land/x/fp_ts@v2.11.4/internal.ts": "a879994586e35f2ca16c976038569f0f0d00492e20767fe40e94055e9fadf985", - "https://deno.land/x/fp_ts@v2.11.4/string.ts": "85843345b77b69ca9b4bb489a5ba997e58cb4840024b4cbf772193edb65efd03", "https://deno.land/x/ts_morph@18.0.0/bootstrap/mod.ts": "b53aad517f106c4079971fcd4a81ab79fadc40b50061a3ab2b741a09119d51e9", "https://deno.land/x/ts_morph@18.0.0/bootstrap/ts_morph_bootstrap.js": "6645ac03c5e6687dfa8c78109dc5df0250b811ecb3aea2d97c504c35e8401c06", "https://deno.land/x/ts_morph@18.0.0/common/DenoRuntime.ts": "6a7180f0c6e90dcf23ccffc86aa8271c20b1c4f34c570588d08a45880b7e172d", "https://deno.land/x/ts_morph@18.0.0/common/mod.ts": "01985d2ee7da8d1caee318a9d07664774fbee4e31602bc2bb6bb62c3489555ed", "https://deno.land/x/ts_morph@18.0.0/common/ts_morph_common.js": "845671ca951073400ce142f8acefa2d39ea9a51e29ca80928642f3f8cf2b7700", "https://deno.land/x/ts_morph@18.0.0/common/typescript.js": "d5c598b6a2db2202d0428fca5fd79fc9a301a71880831a805d778797d2413c59", - "https://deno.land/x/typeschema@v0.10.0/adapters/ajv.ts": "892e5ca6453d945e4418c487d5402881fe1359e2952c31957d4ea8604a8d5e0c", - "https://deno.land/x/typeschema@v0.10.0/adapters/arktype.ts": "59cc15b6638b3e881eed9cb38017321f59ab9709e5ce014fd385d7e48abe4bc6", - "https://deno.land/x/typeschema@v0.10.0/adapters/custom.ts": "403ffb422239ea1796272fc20d38769f479bc4b6e7564578fdd3fb1612bbf5c7", - "https://deno.land/x/typeschema@v0.10.0/adapters/deepkit.ts": "14a6661c778be2b39b77f664d4768ccf0896e50381942bf97251fb134006671d", - "https://deno.land/x/typeschema@v0.10.0/adapters/index.ts": "620d91712c09c2db715b0afa0c266229e4b5103896e51ce165349c9ae8ee530f", - "https://deno.land/x/typeschema@v0.10.0/adapters/io-ts.ts": "01255601f33ba92c5ff68d69623bc0e601ea2638271c8a94f8aef7c19e6f49d6", - "https://deno.land/x/typeschema@v0.10.0/adapters/joi.ts": "0af50c0cfe23e9faa63a6def0f41faa9a133e95a025fce559ee96d65d87e84eb", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/ajv.ts": "31db6a4919b73ce580cc23902a4077a9575221dccf474cddb182adb4e10ee817", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/deepkit.ts": "fe29d7efd0e2aca81d3884673e298c70d65de3dd56d35bff938616e5f3188f91", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/io-ts.ts": "3f888b76e7f5f1b2f23bbcd8965b169d5e9b3db6f2eb303261601cf717bc1aba", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/ow.ts": "52f7bb7277746655501e5cc9667c05337f605a52fb5a20a00af1e4173458216e", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/typebox.ts": "51d7fd702df6f954585c53f164294cf75c2fd9c18ac1fbd0045fb66e33d0860a", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/valibot.ts": "2fb41a3a9cd15ff20dd5413bc98b09e7469583b062aff1393ab0b38c79fb7fde", - "https://deno.land/x/typeschema@v0.10.0/adapters/modules/yup.ts": "2409f40be9765f92ac81376f9617e1a3674a54ac3caec6b7538be585e52e9f84", - "https://deno.land/x/typeschema@v0.10.0/adapters/ow.ts": "44178f6f23cdc0e80f86b1c2e4cb63f87586c4dd4930c01ea1c39018b9e74e2d", - "https://deno.land/x/typeschema@v0.10.0/adapters/runtypes.ts": "8a12725c4b3b9b1279c1d910c33115b3ea4b4f976ff9a14a609a7bfd43b2cf66", - "https://deno.land/x/typeschema@v0.10.0/adapters/superstruct.ts": "ce4f379a00941cf7e7f84bda771e202f25c24e8d4df7e3b5b5cc38b92970d4f7", - "https://deno.land/x/typeschema@v0.10.0/adapters/typebox.ts": "1c4883d6c6a99d924be5ae87a7b1633f2f41f7f99eb5f30153997f2e8aca67dc", - "https://deno.land/x/typeschema@v0.10.0/adapters/valibot.ts": "febb7f898eb48d0799a744ee5b7a5f55a338d80e1f216afcdd636df8880d776c", - "https://deno.land/x/typeschema@v0.10.0/adapters/yup.ts": "3f68a29543c5b4e5223ded495ee0b6b1e2491270dd8f2e6cc3056b09618c15ae", - "https://deno.land/x/typeschema@v0.10.0/adapters/zod.ts": "58c19f7579faf1aca36a20068b3d6ad30a2aac0d637ef19be8cf137000e2efef", - "https://deno.land/x/typeschema@v0.10.0/index.ts": "28f4c5fba89a46ad320e6a347780829e4890a6e6929a45cd7c880d2d4e4290c3", - "https://deno.land/x/typeschema@v0.10.0/inference.ts": "24db51460bf43be73f9b55975246932cfad967f2dedeecabba39bedf0bd08d51", - "https://deno.land/x/typeschema@v0.10.0/mod.ts": "882e3724ca160624f934070ead4633e971f81a90dcedc03a428f20769e96307b", - "https://deno.land/x/typeschema@v0.10.0/registry.ts": "4f9d4c297a30f249e3555684dd1e2741f9bff563c23bc22e94c140cc82f50b56", - "https://deno.land/x/typeschema@v0.10.0/resolver.ts": "ed73726ce6ad7f900cc988ef052f000c62c12aab783b0b0652accc841c032515", - "https://deno.land/x/typeschema@v0.10.0/utils.ts": "d5b194205a82d7ef250047e303bcb1ed19d7338669b095b33a544ab5957ffbdc", - "https://deno.land/x/typeschema@v0.10.0/validation.ts": "5e7d313d88b9aba8a45fde004221facc68273a1666b44c6b8e7e730b2f87812f", - "https://deno.land/x/typeschema@v0.10.0/wrap.ts": "9641465f9533d062e99ad68e76dcd88f138f7a59127eabed5fa769ba6c30f69b", - "https://deno.land/x/valibot@v0.13.1/mod.ts": "62e8bad0367465ff9baf1861ba23e51e2fe19feaea2fe298965f1b4d46a30ac8", - "https://deno.land/x/valibot@v0.13.1/src/error/ValiError/ValiError.ts": "e38d4f518a6071c5e1effb561944f58a8d3132c64984be2d3e9408eb094c0959", - "https://deno.land/x/valibot@v0.13.1/src/error/ValiError/index.ts": "cf20d1fb4425bf9824c0b8e6c42743409ac9b79dd71f92b9fdbf8168ce303594", - "https://deno.land/x/valibot@v0.13.1/src/error/flatten/flatten.ts": "ee63a17f48ebca5e7c049cc27934d7ae02c1a55c9ec4bca33b1b9e668e49aaaa", - "https://deno.land/x/valibot@v0.13.1/src/error/flatten/index.ts": "253b6a678058122873a54cbbf6bd6599d9538bec3586339cff242a2fa11124b3", - "https://deno.land/x/valibot@v0.13.1/src/error/index.ts": "582ea7635c2b29035e77909ba66184756ccadfe801441fe856d301abf3f016e2", - "https://deno.land/x/valibot@v0.13.1/src/index.ts": "f5800fee7d93c6011eaa69ceb4abc40ec4078a674f61b09024a5188eafe95dfe", - "https://deno.land/x/valibot@v0.13.1/src/methods/brand/brand.ts": "676517788360f48da3a9a0d8a18a3c88a4d5474126f5924187dc2d1c62921707", - "https://deno.land/x/valibot@v0.13.1/src/methods/brand/index.ts": "da906e41b9cfd44920bcd9015b03501d478811c5379478e357d1b18a59085727", - "https://deno.land/x/valibot@v0.13.1/src/methods/coerce/coerce.ts": "96c3580990784f24ca84262a9c1d1851e7ad176a83c4c9f68fece6c3259fd787", - "https://deno.land/x/valibot@v0.13.1/src/methods/coerce/coerceAsync.ts": "de6c1714f1788c45fde332168375a237502d98153341a6187f2660c4afdad27c", - "https://deno.land/x/valibot@v0.13.1/src/methods/coerce/index.ts": "ee64fe8c55b0d2ae738013ada9db92178a245bb67e68d1fc906e45a284485362", - "https://deno.land/x/valibot@v0.13.1/src/methods/fallback/fallback.ts": "a85c27356f413b42a21f0ad1b138f725b326e4ea6ff3c3e5e851ceecd0ebdd69", - "https://deno.land/x/valibot@v0.13.1/src/methods/fallback/fallbackAsync.ts": "70c7ec0bb2e7c5cfbc34300785004e166c63471a6fa35f8f0beb086fa253f16f", - "https://deno.land/x/valibot@v0.13.1/src/methods/fallback/index.ts": "44a9494e09eb84f3a5be700f85a7559f4a3b2552d37c05a6f821cc9621b97834", - "https://deno.land/x/valibot@v0.13.1/src/methods/fallback/types.ts": "5c5d2e6cc0d1f7246d6f2a93ff5f850368abdd9b2d52a62bf2a4a78abbfd1c25", - "https://deno.land/x/valibot@v0.13.1/src/methods/index.ts": "b585298775118a517b348edd4c31e8a0cdc4064fc9e244fab31cfb9a395ea3ba", - "https://deno.land/x/valibot@v0.13.1/src/methods/is/index.ts": "327fc84a5ed4eff4af039753173f4f6ad8cc769b95fabbd01dce9a1fe3481c54", - "https://deno.land/x/valibot@v0.13.1/src/methods/is/is.ts": "974aff2a2af6ae5c986648bbc71411a18e9de81daf6dfaa0e83d7adb792bd096", - "https://deno.land/x/valibot@v0.13.1/src/methods/keyof/index.ts": "7d50e6f637ee4a19365e3044b83ff1821bab4367271c057781e396324b93cf3c", - "https://deno.land/x/valibot@v0.13.1/src/methods/keyof/keyof.ts": "faa41832458a8d9ab7b780de44b19b3f80afe9608dad2863151f3fac75fa7e97", - "https://deno.land/x/valibot@v0.13.1/src/methods/merge/index.ts": "ca839a5e99996869dc9bc9522a4791d342dd1071d4c7ef5fda42a7a3b1ddbf23", - "https://deno.land/x/valibot@v0.13.1/src/methods/merge/merge.ts": "97627bb9377ffa879c04b8d4c7589e77c2ef51c58eb5671fb8699d8e42678bdf", - "https://deno.land/x/valibot@v0.13.1/src/methods/merge/mergeAsync.ts": "09065c89f4fc6ca994d8bff40b8103192be80b4e6dfd03900cfd71cfb6b60fe8", - "https://deno.land/x/valibot@v0.13.1/src/methods/merge/types.ts": "54c2c1fca949c994387c6b1e829ce9422cdb366aee637f68cd20c98feb5ff512", - "https://deno.land/x/valibot@v0.13.1/src/methods/omit/index.ts": "85e672fea9a1146e9efd099bc5fac0e9617c7d941eb3f1afce5160c95c6d8561", - "https://deno.land/x/valibot@v0.13.1/src/methods/omit/omit.ts": "0d140555f18a649a289a20abe2a12a3c028b80453cac2c09b44c9093fe0f64a7", - "https://deno.land/x/valibot@v0.13.1/src/methods/omit/omitAsync.ts": "11f0e3f75fa8e0b32987fa1c7944d006dbffc3a30ddee3c2a82b6457fead91bb", - "https://deno.land/x/valibot@v0.13.1/src/methods/omit/types.ts": "2603840b412bb219e9eea4181e1b72e46e348e34f80e49710f11355a1155f5b5", - "https://deno.land/x/valibot@v0.13.1/src/methods/parse/index.ts": "669ec1a3e7e825f7344f78162e9396fa18106ebc3cb5118a2d97077a3a78c037", - "https://deno.land/x/valibot@v0.13.1/src/methods/parse/parse.ts": "83435957c7d5a20fadac1320336aad9018ce83343c3510c0ac0623cc5c1e781f", - "https://deno.land/x/valibot@v0.13.1/src/methods/parse/parseAsync.ts": "22798731861acb21e5d761e9c9c7a226af5e9f845b148a63d21952607ef1548a", - "https://deno.land/x/valibot@v0.13.1/src/methods/partial/index.ts": "2c9fbdbb46230dfb88433be8bcb32bbce703856d73dd80e520c489fda18dea8e", - "https://deno.land/x/valibot@v0.13.1/src/methods/partial/partial.ts": "4df0f871e719e0f1dbd107c5044fe7994859589ac361b8fb7eac81f5f1cad0b5", - "https://deno.land/x/valibot@v0.13.1/src/methods/partial/partialAsync.ts": "2fc6350133ca6337f91d0e47d6396c1ff468bd1d1ed083d679885d2ee0ca4374", - "https://deno.land/x/valibot@v0.13.1/src/methods/pick/index.ts": "29b89f8597ddc130e8b8ce9ddacddd95e3deeea492c2f6a3f7a6ee17318bebbe", - "https://deno.land/x/valibot@v0.13.1/src/methods/pick/pick.ts": "3da2fcc1b4b82256889bc96d373e662aab2305af5f8de9e9ddede91237fec4c8", - "https://deno.land/x/valibot@v0.13.1/src/methods/pick/pickAsync.ts": "1382514e56cda80a230d211ce55ca0cf4f0aa5dcf06290a87037718f9636632a", - "https://deno.land/x/valibot@v0.13.1/src/methods/required/index.ts": "9bdcaedd3f4e8cf66620c77a427dfbae8bcd2c393dc5cac460287cea8ab4c59f", - "https://deno.land/x/valibot@v0.13.1/src/methods/required/required.ts": "0daa437d219a26f1e1cd1fec6fe145caae0161618afa768de377b517869b4190", - "https://deno.land/x/valibot@v0.13.1/src/methods/required/requiredAsync.ts": "dab38f724f88999904365ef7cf9126488c9503c22c4984a963fe37ab563e1983", - "https://deno.land/x/valibot@v0.13.1/src/methods/safeParse/index.ts": "47442f36db5a8cb85e67790a9d8590613853e528309e8d40fa2b58ae173e978a", - "https://deno.land/x/valibot@v0.13.1/src/methods/safeParse/safeParse.ts": "24ce85eeb83affdaae3081f65fa7816e5e018815365613df158f4b776fafd436", - "https://deno.land/x/valibot@v0.13.1/src/methods/safeParse/safeParseAsync.ts": "ffad0239b89db96fbff563d546eb79c3af092bcc1c74f19ce78448a66ff48d08", - "https://deno.land/x/valibot@v0.13.1/src/methods/safeParse/types.ts": "267173db70ed1259e6ae3a62385be645277d2d29aca8badd7817254bd4da36b3", - "https://deno.land/x/valibot@v0.13.1/src/methods/strict/index.ts": "df5ca04019a43710000edcecf48dc8ce4ad469785a5e56c5536c9d0f0498ab39", - "https://deno.land/x/valibot@v0.13.1/src/methods/strict/strict.ts": "ae5877677d7f7cb74ea3c16de4497fb63ffe4323a81c8abe78f539760d605345", - "https://deno.land/x/valibot@v0.13.1/src/methods/strict/strictAsync.ts": "e35722cfb0ef279ad842b6e65882d23ff75227d8b8bce328bb4200eb6dd35e6b", - "https://deno.land/x/valibot@v0.13.1/src/methods/transform/index.ts": "d70b89ce2088b9cf07b371d7b03a5634f6fb92411a636d06addafc5b26c712a0", - "https://deno.land/x/valibot@v0.13.1/src/methods/transform/transform.ts": "abcc7d4b48abe2fd629cb722a510552a215c9a333028f1656424ae9520ce5b74", - "https://deno.land/x/valibot@v0.13.1/src/methods/transform/transformAsync.ts": "29528381dd2f5ba2546636ae3f578c31cd7667be2ac5e8d31721b8acbb984c2c", - "https://deno.land/x/valibot@v0.13.1/src/methods/unwrap/index.ts": "c650d5956fec65bb504a21ffb825c0b166ab8600acbf4b245b529000c2603458", - "https://deno.land/x/valibot@v0.13.1/src/methods/unwrap/unwrap.ts": "1d57da5d9a967cb7cdd3f7db26b0ace22c47d4a9742fc230bfe393533ea51c8d", - "https://deno.land/x/valibot@v0.13.1/src/methods/withDefault/index.ts": "e66c01db567dec0a880f13b9a757a1a2fbe829fe7ebd95abfba2590af03e18e4", - "https://deno.land/x/valibot@v0.13.1/src/methods/withDefault/withDefault.ts": "d92834c29692ebf55c40c36c1655f07aece03b4e8a5d5b31737a38e10d47b6eb", - "https://deno.land/x/valibot@v0.13.1/src/schemas/any/any.ts": "948993ffeed4d5d25fd40bd625c314781ccb69c91aee1f9310d9487e4254afef", - "https://deno.land/x/valibot@v0.13.1/src/schemas/any/anyAsync.ts": "cfcc2b7dbe38cf25015a81a1172bfbd74a4ba16bebabac6ad0e5b779779ecd04", - "https://deno.land/x/valibot@v0.13.1/src/schemas/any/index.ts": "de190728871b0117983dae84695568b0914e3f1118e9491aeee9f2b443db84ad", - "https://deno.land/x/valibot@v0.13.1/src/schemas/array/array.ts": "da0384ad89c0912c76522a74494c0404a13b4bf7feb37fcf14ecb7154860d80d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/array/arrayAsync.ts": "5150e7fdd1867d1a3e2aa02a09211bca2739d622ebd4171373d7ddc010a8fbc9", - "https://deno.land/x/valibot@v0.13.1/src/schemas/array/index.ts": "deb0be133a6d9a4efdb6b2333ad9195a2de12f883abfb2c88643c74b816d52dc", - "https://deno.land/x/valibot@v0.13.1/src/schemas/array/types.ts": "b8d861ed1f3801266a245d6277342dd30e9c4b3e6f982fcad64c631e02b17d99", - "https://deno.land/x/valibot@v0.13.1/src/schemas/bigint/bigint.ts": "fd8632b83a6a790f7b0d0e0d55c7838ba0995fa2020c7389628fefe701cd60d1", - "https://deno.land/x/valibot@v0.13.1/src/schemas/bigint/bigintAsync.ts": "87a136c9ae4e5461ab8e73e6eb73e225fb9f473b54879bb1ab37c75a00f549c4", - "https://deno.land/x/valibot@v0.13.1/src/schemas/bigint/index.ts": "63947da2d953783500de43444755b403c54a9ab3419684d972f744090cb8d9a5", - "https://deno.land/x/valibot@v0.13.1/src/schemas/blob/blob.ts": "45d25875373fc72d93cdc5157fe7ce490e3fafac7edb698b04de03ff71b66d06", - "https://deno.land/x/valibot@v0.13.1/src/schemas/blob/blobAsync.ts": "64030cadf8d3e6cb7738cc0aab12410c7c77c8adc310a3fc9dbd3dbe54a7d18d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/blob/index.ts": "bbee52cbc45e9863d70701ee816a653e43bb252f38f0cd56390cb0f15e2d96ed", - "https://deno.land/x/valibot@v0.13.1/src/schemas/boolean/boolean.ts": "f9c4b4957875ee4e56da07446eca5ba44e240f4353fca59e07e0a9783b142ca1", - "https://deno.land/x/valibot@v0.13.1/src/schemas/boolean/booleanAsync.ts": "f09147eae0dbd124c5b1fb145db162f5e48ef4bf77cb5b7c1e84e8bfe4e6196c", - "https://deno.land/x/valibot@v0.13.1/src/schemas/boolean/index.ts": "55b310528887b6f55ad1dce9efb2825a23ccb7688cf73ffa16582924da6cdaa2", - "https://deno.land/x/valibot@v0.13.1/src/schemas/date/date.ts": "b7dc6c591a71569dc23ec788da11e2ac79f1229187d0cbdda5896fc843ccf8fa", - "https://deno.land/x/valibot@v0.13.1/src/schemas/date/dateAsync.ts": "afeb7320432a16f54a4e4d5383c25394ef82c845c9ef24d3b657745facd138e8", - "https://deno.land/x/valibot@v0.13.1/src/schemas/date/index.ts": "054c71ead21736a8806abaee377e190e9258db90c218b63f05e0619074456a57", - "https://deno.land/x/valibot@v0.13.1/src/schemas/enumType/enumType.ts": "3042b38a60bb0b7c075b7030d85c200ef1b43353da3384b06a3e8b232f38aa69", - "https://deno.land/x/valibot@v0.13.1/src/schemas/enumType/enumTypeAsync.ts": "06c6cfd267dc819022cd661f075a75ae1b53ddf913375dc73b58d5ccb3015abe", - "https://deno.land/x/valibot@v0.13.1/src/schemas/enumType/index.ts": "293af35dcd87cbcdfd1b36a4507b6afb2bb508aaca9432eb98fcf0cede0e1eac", - "https://deno.land/x/valibot@v0.13.1/src/schemas/enumType/types.ts": "8d1b0ef41a6ab9a05c569431e714bff660386f84c1f080c6aa503170566bcaf5", - "https://deno.land/x/valibot@v0.13.1/src/schemas/index.ts": "8e24d0f5502049906db3917a33791053f8671e4351d04b42d3b50940e7db7155", - "https://deno.land/x/valibot@v0.13.1/src/schemas/instance/index.ts": "527dde08b093322fc5a09488d3cb883b1d1bb25e01e2f8a7f3eabab8e2a4cc8e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/instance/instance.ts": "5ca12205fa2a2cc474e481a0a7bb810a2d02321058def1a829dabea95552e845", - "https://deno.land/x/valibot@v0.13.1/src/schemas/instance/instanceAsync.ts": "0f958263a273e50fc89bed1bbde86f64b9be849464d45794e10a243bcbe2c7a2", - "https://deno.land/x/valibot@v0.13.1/src/schemas/literal/index.ts": "aefd35b7f0a34f2108449fd19e5ac6439b88cd07de0367aff657606ee17d7c15", - "https://deno.land/x/valibot@v0.13.1/src/schemas/literal/literal.ts": "a184088c2be599f6d5e85e182ca677234332b5f84596183a73dcd515b6dde651", - "https://deno.land/x/valibot@v0.13.1/src/schemas/literal/literalAsync.ts": "6a12fea93febe7e905635ca0032b2a090fd458b37e0515b00fab4592fc1b6f7f", - "https://deno.land/x/valibot@v0.13.1/src/schemas/literal/types.ts": "89e8edc96dd049ec0d055ab23f7e5454fff6d5deb6514c69a5cb0c1ce44f66e9", - "https://deno.land/x/valibot@v0.13.1/src/schemas/map/index.ts": "39056f98686cc72b3de9a4c590bf690ec6282d781795ce72fd1cb4ab14bfee87", - "https://deno.land/x/valibot@v0.13.1/src/schemas/map/map.ts": "6aa323e8a7118ebea6b0736ef0285f2489807db37173b2b59c26e439226b9d8d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/map/mapAsync.ts": "7b7864a606b89de176df99253a4c41b4d49d5c6236f26b76f0f004cbe830bffc", - "https://deno.land/x/valibot@v0.13.1/src/schemas/map/types.ts": "c7437b7cc51e263d21d94de4e35f5c664706f38dfc087401711c6d564ea0e209", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nan/index.ts": "24dd3ab7f2cfbcafb941b5334e40f8a3bdc6f7ff6e426056af5d0dc32447da5b", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nan/nan.ts": "66cb171782a12038c78ef5f6a3f1a2989dd1c6a5367f841d2174f345c8f3a17f", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nan/nanAsync.ts": "829035367e00f8df7288516102f097ed969e7d01c293d9e3dc3fd0228b1fee45", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nativeEnum/index.ts": "3077b9605c597f138ee1f822b95b070ae2d02f0106e776da89d308766d0af56b", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nativeEnum/nativeEnum.ts": "802f3d0416f1eb3bb7a7217d636838822d0ae54f7814e75035d9255461215aac", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nativeEnum/nativeEnumAsync.ts": "4dbd4baeafea61b2de509bc705bafdb483716e07abf754b3a853d46036264325", - "https://deno.land/x/valibot@v0.13.1/src/schemas/never/index.ts": "15342661525254629f49bf24a5170373539604280d70fa678911f22803280bc2", - "https://deno.land/x/valibot@v0.13.1/src/schemas/never/never.ts": "c0569d1d685be152b101be8adcdd8b1442f4b339c2bd3a4cf66d58160c60b037", - "https://deno.land/x/valibot@v0.13.1/src/schemas/never/neverAsync.ts": "e033c8a2649647e280fbec25a43934941c9049283080351ce4c04dda1114dd50", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonNullable/index.ts": "a7325d23d2689a72dbbb2521fd012259ce23dfff4d09a1c4e616b4eda4f92d1b", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonNullable/nonNullable.ts": "0fe543ad817c0b0636e07a6a57cd773d00f4a9c203f5b20333779958898872c6", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonNullable/nonNullableAsync.ts": "7e2026ea30b0a663c20a55a8d26d23347c81d32093caf82f0137592433c220cb", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonNullish/index.ts": "74cb026803df4042c74913e2256c500f0ededf1c939654504b985799e5bea1c2", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonNullish/nonNullish.ts": "291458e425b479be8ee2b7ad61f5cf62672bf2b23a942116c0e52410448f1b72", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonNullish/nonNullishAsync.ts": "fc29d2d0e6d782bbb6d3927415337ce5f5a3d319564bff16ff69d6235cae9c4e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonOptional/index.ts": "537b4db27c7c6f64a8e1f83684eebec45d6a9acea98118dfa2c51eccd5ae3be2", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonOptional/nonOptional.ts": "926e5e59bdb6a559d05befe6b5bbe2c31d417c25ae44b2cb205b305be5e803e6", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nonOptional/nonOptionalAsync.ts": "fa024c026cc9a7a36e59123a4bbba9379d2219d729e80cdacaf651f9b5346264", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullType/index.ts": "da90e26dbe4c3b706166798d244ffc2bcfbbf3f944922108f481ed56412202a9", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullType/nullType.ts": "d6eb50724fd579753c33c756a6002bc2304ea604c01d8127eed8a8f327b3dd76", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullType/nullTypeAsync.ts": "b1b9304327c36eacff54400966f89887148b2449a895676f7bd7e085abb16876", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullable/index.ts": "aef898ad0cedabb408eb1476843548a4de42139c9704101fe11c0c3068271a4e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullable/nullable.ts": "f7a774df38812e29a6f03adc4727861816afc05b501a5bdf3e5c34b5e2d9b465", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullable/nullableAsync.ts": "97589a6d6c8ffde62fa7d0cda5b860434e1a1520652d4dcf18ec2df9479a8e97", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullish/index.ts": "98735c824ddfe5d96bd802db3937b5c5c47c87470a4766ce60cf4c381c3b0327", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullish/nullish.ts": "ceb622f8740f5719237e69f8ba18f5ed35af57c3ef8f29128e8ee143e4655ab3", - "https://deno.land/x/valibot@v0.13.1/src/schemas/nullish/nullishAsync.ts": "a374fca7d1bca71b1b3925222c2e5e3625c6143d707b4bd6f92f389244756fb7", - "https://deno.land/x/valibot@v0.13.1/src/schemas/number/index.ts": "21e61a3f12f35f4ad5b1c6691624502218a4df864dbebdcafbbd3d027fb4615d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/number/number.ts": "96cfaaec9f9eee9f8533171c265b4f38529448cbaac6b3ba82791b6f3faea15c", - "https://deno.land/x/valibot@v0.13.1/src/schemas/number/numberAsync.ts": "1c20601bf0168454a014a6352710ef62efa3cfb754621f2b560c2e6120706eab", - "https://deno.land/x/valibot@v0.13.1/src/schemas/object/index.ts": "6cd2f39fa479fe547d7bcaa5dadf876c9b2a383e7f7394c0e32e3ca085d3d27d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/object/object.ts": "d0bbd5bfd7fe417e803d598fe9a774b4f62a34b5591320c702cf2a0e44cdb40f", - "https://deno.land/x/valibot@v0.13.1/src/schemas/object/objectAsync.ts": "242d70483b066c92a34eb5feaf7626bdac8f39f0eb11e5a14a34f28f0c37c379", - "https://deno.land/x/valibot@v0.13.1/src/schemas/object/types.ts": "bb508e79fc2f9ed5f6c05099c2cfbb5ced5cdce513021341394bbfc17ab662cc", - "https://deno.land/x/valibot@v0.13.1/src/schemas/optional/index.ts": "d9783508e7c2937c07f7b18c48c9184f4ab92958f8145adb897cb5aef5235a4d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/optional/optional.ts": "ba276f1cda3fd0e92c0d6c7c66658b0dec2bd0400b204e3263378e761a363274", - "https://deno.land/x/valibot@v0.13.1/src/schemas/optional/optionalAsync.ts": "1ac126cd2f902ead31f0a552cca7163cdb38de2cea29e7951efbbc2cfb13536f", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/index.ts": "27ca5007ddfe12cf771c441692d0592ca9dcea0f99ba1b7da016b6fa24899a9c", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/record.ts": "3618271d8401b9a5f05df05c80ea50f7b81344fb3e932f60f0ac45ada99ada5e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/recordAsync.ts": "e6c5aa39952d6f5bc3da9c54c1d299ad8fb3742291bf4a44c80cc37c40c6eeb6", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/types.ts": "31ab6b3e1bd50bd5c5563d9a1ed8913dad9e64098d15c95589525847a657aa33", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/utils/getRecordArgs/getRecordArgs.ts": "e34d04816388a87a3f4a5b42b745b4d6c7e97813464d8c55bda9a78b0dd4a298", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/utils/getRecordArgs/index.ts": "c6984f5521bca4f657b8ba05efd3a928c91b145a7457af9882af94ba73193dff", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/utils/index.ts": "fe32df7fecc9f6ebf01f3b2a678658859e413f64e196a82814ccc89bff2790e5", - "https://deno.land/x/valibot@v0.13.1/src/schemas/record/values.ts": "85dcca30f64839cefd3af98781b62ee7f3b6e66a9ce2a4fdb7558fdab3f4a98a", - "https://deno.land/x/valibot@v0.13.1/src/schemas/recursive/index.ts": "0892fe69cb7bd02fcfd29711795c2aa569644e429d69bbef1bd8cfd8e4c1c9bc", - "https://deno.land/x/valibot@v0.13.1/src/schemas/recursive/recursive.ts": "d8a2ca27eb450054b560d65e91196f63fac7c0e61b7a321d171aa656a47cebf8", - "https://deno.land/x/valibot@v0.13.1/src/schemas/recursive/recursiveAsync.ts": "05989193c92e8538885d9c57a14400bfeeb2fec3c35ea3614810388070aa07ed", - "https://deno.land/x/valibot@v0.13.1/src/schemas/set/index.ts": "8545f57266673224be3d065ed39776cc66c2717f409c8bd982632c672e98a261", - "https://deno.land/x/valibot@v0.13.1/src/schemas/set/set.ts": "220011a4d7b432b54bbe6aa0bdbbf8fce73cc47b4abd0d36724b6d173bb15a94", - "https://deno.land/x/valibot@v0.13.1/src/schemas/set/setAsync.ts": "4102f7b406b748f886eb7a596b85728dd54a0b6724039ccba53c97b990b3587e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/set/types.ts": "4167bfaf1426c2d4bf0923fa71d4cdad051bde500935e1f7c27a0c8fdad3bfe8", - "https://deno.land/x/valibot@v0.13.1/src/schemas/special/index.ts": "e860bc91b74ca091d8ff7241b22fe63367a166fda8b4b9d16c1d9c762d0f093c", - "https://deno.land/x/valibot@v0.13.1/src/schemas/special/special.ts": "a5d013c1070b51ae36ea77a3975dc23b31b792e9b7b10b7322701848e2e8db73", - "https://deno.land/x/valibot@v0.13.1/src/schemas/special/specialAsync.ts": "3fa301b7c01fcfaae06e45b9b05cebfb11b91de91bb089c101c69d19bf030a0b", - "https://deno.land/x/valibot@v0.13.1/src/schemas/string/index.ts": "ab64782b4c251728ac5ee210edc4cc2f10c9bf4e83b4db93958148563ba37417", - "https://deno.land/x/valibot@v0.13.1/src/schemas/string/string.ts": "fdbd84f776a9c60de7816d8a09b168411f9481f90dccf2b8cc57b1b003ee1d60", - "https://deno.land/x/valibot@v0.13.1/src/schemas/string/stringAsync.ts": "deba22f87b54741ff82bfccf7a33f63497f451e7dabf4df3142f4ba6df5459fb", - "https://deno.land/x/valibot@v0.13.1/src/schemas/symbol/index.ts": "2af72055bc535190e3105623399ca989e38cebb3008b494014d38480b9da17ba", - "https://deno.land/x/valibot@v0.13.1/src/schemas/symbol/symbol.ts": "01736c8666649ce0295a20e5b60c99670def74f4156179eef85878aa86d16076", - "https://deno.land/x/valibot@v0.13.1/src/schemas/symbol/symbolAsync.ts": "a6ad089eb5773def87ebdc9283edb38a4dfaf7d62a3cb17c5c984dbe5bef9b8e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/index.ts": "99e8340659655b7c63192256a6dea75a72d2677c7be4d716a35ba43f1778b3ce", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/tuple.ts": "def79b5c1bdd216d39241f2034587d0e0a5b26260cf8785b5b668538f2287d4e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/tupleAsync.ts": "f0e1527de4aa0a2d778fe0c589cb71ec85f3a3096633a42d4711e3146af069e0", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/types.ts": "cf6013039d453b799fa7a88ee475a521df87aeb8abb8d806c108ce6af1dbaac5", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/utils/getTupleArgs/getTupleArgs.ts": "284780cfd4edd3740ebeb6d84ef798137fc031a2b6d17790c4ccc692a38ed3a7", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/utils/getTupleArgs/index.ts": "753a64c08f68dd04d9a5322fac47b7e96845779b53f5f8a66318c89599fab464", - "https://deno.land/x/valibot@v0.13.1/src/schemas/tuple/utils/index.ts": "c4bdec56077ab55b0dd4a54ead31ade3dfcd94761cc7cb69a0c8afe1157011a9", - "https://deno.land/x/valibot@v0.13.1/src/schemas/undefinedType/index.ts": "f7fbc79aaa225cdc670469c87de904db72a2b83167c7f4c6f25e5aa1e5f0afcd", - "https://deno.land/x/valibot@v0.13.1/src/schemas/undefinedType/undefinedType.ts": "da4b36ae4fbbd8b023febea91123913c1565ab8fce90066ab900bc3ce5b22ba1", - "https://deno.land/x/valibot@v0.13.1/src/schemas/undefinedType/undefinedTypeAsync.ts": "983f7eb0183aaa6499c94c24a26609a73e3eb0b226171c6cf5289f30242ace9d", - "https://deno.land/x/valibot@v0.13.1/src/schemas/union/index.ts": "cc4a28b5dcb866831bbcdb63fc16c179d6340f0d47856f38a3194e213754c230", - "https://deno.land/x/valibot@v0.13.1/src/schemas/union/union.ts": "f8c3d3eeee2c7025d80f0e2736181bf4c2e16603359d3aad63a50d949446c3ec", - "https://deno.land/x/valibot@v0.13.1/src/schemas/union/unionAsync.ts": "1948532e6057097d1c365372f6ff803bf31c1712f6a8e18367c8b398155132ee", - "https://deno.land/x/valibot@v0.13.1/src/schemas/unknown/index.ts": "10361f5acf37be09d4762a1050df606792e89bbecb7e5ad3897e1f44fecbb424", - "https://deno.land/x/valibot@v0.13.1/src/schemas/unknown/unknown.ts": "a90c99174c5a200b7fdac216db6a14ae52338e72c9289a17d71820b440a976c1", - "https://deno.land/x/valibot@v0.13.1/src/schemas/unknown/unknownAsync.ts": "bf5a7700c1c286eac2d7845fd4067a0bd800bf57a050e12aa440d9d2a95b378e", - "https://deno.land/x/valibot@v0.13.1/src/schemas/voidType/index.ts": "fcfabeb131eb3dd34f551177d250211ac246d002b1ed7fd69e9292bfd44a61e9", - "https://deno.land/x/valibot@v0.13.1/src/schemas/voidType/voidType.ts": "9e761723a52052f2a09b887cb94033cb573bacceee6be1cf3e505294ea762727", - "https://deno.land/x/valibot@v0.13.1/src/schemas/voidType/voidTypeAsync.ts": "94440f506bfb70bc06113d44ea7a516aa75d399d453d31e3521aac02fd7a2e0f", - "https://deno.land/x/valibot@v0.13.1/src/transformations/index.ts": "2556f72e5031ddb919e472fe591380349e515dc2bed32cf7234eb1e24de594c0", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toCustom/index.ts": "ced6ce683906043c915c47b9bc3c37760568e8731234ed52378cc0ed297dfc27", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toCustom/toCustom.ts": "cb184a05e835fa3950c86683ac1cade3134929032c2624667182706ae6520e85", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toCustom/toCustomAsync.ts": "6ce1b964ea7ee6d5993b970fe6a6b7ac842e41e1c75bd33009fe020887ce034f", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toLowerCase/index.ts": "240601776aafe99170f1d5f541156eb47ef6b1de18e4bc1fb0f3c9ccaf2a2ebe", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toLowerCase/toLowerCase.ts": "f0d24dd55c1fa0e9887dce1d81cf7c28fa5ec4246aab48c70686536f66192d2b", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toMaxValue/index.ts": "292a34e8f854111175c370760c63a0b3d4e64a0f52676f649efabc0eb65d992a", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toMaxValue/toMaxValue.ts": "a0f460d8162974af14c32dc94b555da626fba5d28d1c392677c307ac4e0baf03", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toMinValue/index.ts": "74532e7ca7389896c2b832852ad1730107d70c70ed06644184b5f5e02a06e9da", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toMinValue/toMinValue.ts": "20ed4e640ec9dec858486ce5ba1c0698a6b38229b3ec0e7b2097c9f94b41c155", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toTrimmed/index.ts": "63e67ebb0cb8e2840fcced3acf728c63cab84f60bb23dd4a407fcb3d6f28be06", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toTrimmed/toTrimmed.ts": "4ab818c733c3d85d78a0ba7d6d3062bc8d99d7c63327c7125dfd1d933088c147", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toTrimmedEnd/index.ts": "24893f44e8d38ab65d254c95c8497ca073f592d0ba364b7b10e5b2306d0a1add", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toTrimmedEnd/toTrimmedEnd.ts": "5d30869c9e0f2a477bafe32591edcd4c3123741daee8848901fcdba354eda224", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toTrimmedStart/index.ts": "4c392b44580651367853ff74eba47393b02e40f2241583e126fca8088cfc822b", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toTrimmedStart/toTrimmedStart.ts": "1cd732d245e8064b66c1765cde5d409d61c207a4bcf7cfcbf48646e1ba46a529", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toUpperCase/index.ts": "cb5035ed9e693199a85ddf969fa4d1b7d9325084bb584a2b531617e6da9a1617", - "https://deno.land/x/valibot@v0.13.1/src/transformations/toUpperCase/toUpperCase.ts": "180115f954deb07d49590566de98b9a0de4164c0ba2ee1ad7fd2ddf8dd6a6e74", - "https://deno.land/x/valibot@v0.13.1/src/types.ts": "10679c1bbdc8a6f4dea1be458a98236dea7f439dc7720ff7f6f58911f7f64c2e", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/executePipe.ts": "1fbc899756363d5d1780ac4ad1b9495f90c45af17cd8ab745696f68029592f9c", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/executePipeAsync.ts": "a33514b1dc720372b1dccee8e3db00deb95aec8d3407f5e791075ffa9fb77bcd", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/index.ts": "da7634526bff9387de2f5759c6eb3dbaef2e98070833f229676617b9e685899f", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/utils/getIssue/getIssue.ts": "3c7f4a771ce00457a34398f8645da78e36cd56425b212aef99a95dd11f84a11f", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/utils/getIssue/index.ts": "a660c06c3e0e878935391f55e3c47e701134d84757b07a8c7fb3796104898a80", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/utils/getPipeInfo/getPipeInfo.ts": "923cfb48beffbe9073163d6d43bb429fc5403d116b7cd737573112dcac182197", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/utils/getPipeInfo/index.ts": "1608abf48f272134e590ae9581523b6ad6d6620bd35cdd984d557c9b41c435e9", - "https://deno.land/x/valibot@v0.13.1/src/utils/executePipe/utils/index.ts": "49ce80c6cc37a004b7ff747ba1e2fd4bca640d815b30296b988d11bbced13955", - "https://deno.land/x/valibot@v0.13.1/src/utils/getDefaultArgs/getDefaultArgs.ts": "265a926f1cf8bca56b9fc2cf7ee4d03abc5c7009e9ec8939241102b88cffe86b", - "https://deno.land/x/valibot@v0.13.1/src/utils/getDefaultArgs/index.ts": "37bf8cd3db794d1926b21b3ad9b1696fe13dcb47e8e66d1f2e75fd38bb73a3ee", - "https://deno.land/x/valibot@v0.13.1/src/utils/getIssues/getIssues.ts": "8ae3b98a77f43cc8cf91746dad62a950293ddad2ab3a9e2c467db9df0b0db0f5", - "https://deno.land/x/valibot@v0.13.1/src/utils/getIssues/index.ts": "d5f500081372ba51076b7bc2a647e779d9e56d1d95bc86123b0e54826046a519", - "https://deno.land/x/valibot@v0.13.1/src/utils/index.ts": "5744fbb76b3cfdbfb9a54610d2a630d94a27cb12cecac5aaf22b4c6887260262", - "https://deno.land/x/valibot@v0.13.1/src/utils/isLuhnAlgo/index.ts": "826829a7d1784681a261796c13b71148184536a4c1c1ddf62f5a861e1b9fa190", - "https://deno.land/x/valibot@v0.13.1/src/utils/isLuhnAlgo/isLuhnAlgo.ts": "f313c5c9891a8450dc22777ecf2605084bb2c035dfee81cd130721b10dead6bf", - "https://deno.land/x/valibot@v0.13.1/src/validations/bytes/bytes.ts": "d0bccb5573c6c4d4daa13060f424c41244a8b887cebb7b4fb8a29605563646da", - "https://deno.land/x/valibot@v0.13.1/src/validations/bytes/index.ts": "d42afa8054800f1eea871aef06f957c757aa40af6b7409f41aa10e925f23ff35", - "https://deno.land/x/valibot@v0.13.1/src/validations/custom/custom.ts": "b10d14497265c777a17484120d70752a97bf347a801ad066084c95182cf1fbd1", - "https://deno.land/x/valibot@v0.13.1/src/validations/custom/customAsync.ts": "9c14b7daf381cd07ac10c16fc0d2a72e78c3cb8ac20bc7f6ca864c6002bae06f", - "https://deno.land/x/valibot@v0.13.1/src/validations/custom/index.ts": "b2e137dfd7af4258fd635173bea90539ddaba81a925bfbb806d4189043aae2fc", - "https://deno.land/x/valibot@v0.13.1/src/validations/email/email.ts": "099b612bb250af100763b21130fa25c76a4ef2a5835990d5f89cc74fae5108ff", - "https://deno.land/x/valibot@v0.13.1/src/validations/email/index.ts": "77f6fcd59128ddf81f33c662b5fa687d95652f6791d12e6f419474bc15a5dbc5", - "https://deno.land/x/valibot@v0.13.1/src/validations/emoji/emoji.ts": "a6106b6d856d75558db8926e30c8cc910ea613f9898589bffc17e3601210db8e", - "https://deno.land/x/valibot@v0.13.1/src/validations/emoji/index.ts": "81eefc5fb8a6306aea94c0a4d6b7fcf70982c435366464768276b6af24b59c51", - "https://deno.land/x/valibot@v0.13.1/src/validations/endsWith/endsWith.ts": "024aac8fe91f775791824c1afe9103baa3bc1d7cec5c38dd96cd1fe9b1396248", - "https://deno.land/x/valibot@v0.13.1/src/validations/endsWith/index.ts": "896851359dd0c23387c5c1c3fc5048528ef57ed9881028f4c89c58162aa6e604", - "https://deno.land/x/valibot@v0.13.1/src/validations/equal/equal.ts": "b4b765d42da50193604c7194c478d8dc61c757a8976eb05b4bfdaa8d166051b4", - "https://deno.land/x/valibot@v0.13.1/src/validations/equal/index.ts": "23b41ec45acd21ff1c549688ba0d3849498b8810bcf6f224813b1236b4ea5a66", - "https://deno.land/x/valibot@v0.13.1/src/validations/excludes/excludes.ts": "f41a752571f36721f1df643d36e086ff562d050031db26e5aec6b91277b27a09", - "https://deno.land/x/valibot@v0.13.1/src/validations/excludes/index.ts": "5ad9e320e89c9d012ff5be9b3760b33f6c3e261a5f24f979d2da3f4cd23fbeb8", - "https://deno.land/x/valibot@v0.13.1/src/validations/finite/finite.ts": "708f7b5eefe8bad1361c7ca2ada54dc446a89bb3d2975ce7203aadbd8b22b5d9", - "https://deno.land/x/valibot@v0.13.1/src/validations/finite/index.ts": "e705573032e827d2c70544ff01ee970001dce16d4afcac91f4aa0fb985ba06ed", - "https://deno.land/x/valibot@v0.13.1/src/validations/imei/imei.ts": "51a2c9ea0814a10efb0acaee181d995e785366e34f6c75c65dabcfba892b4c32", - "https://deno.land/x/valibot@v0.13.1/src/validations/imei/index.ts": "4a5d4bcf8a9a18e10e32c4fc6de3690f33a3b1c231a90ab6ff4ad8c1c589596f", - "https://deno.land/x/valibot@v0.13.1/src/validations/includes/includes.ts": "caa7b6a88089688d5c4f3ccca974321c4d43872e84417fca4a483202120182c2", - "https://deno.land/x/valibot@v0.13.1/src/validations/includes/index.ts": "0b0cdd38157c84347260020127a6d1f461d823b374f69e050e27eb675e28ee35", - "https://deno.land/x/valibot@v0.13.1/src/validations/index.ts": "eb93fdd3000f34a9ff865adcce53de75d465592aa379372cc41e91b4c2563115", - "https://deno.land/x/valibot@v0.13.1/src/validations/integer/integer.ts": "f7a572dc110b024e0345a8e9d504fddcafd1e0835d157d309a2f88f8d3f1c5bf", - "https://deno.land/x/valibot@v0.13.1/src/validations/ip/index.ts": "8facfbc3cc183194dcc000b0dc030bd917ce292d7f2a2a71c801ce77ff8e6cc2", - "https://deno.land/x/valibot@v0.13.1/src/validations/ip/ip.ts": "7f63a25036e476acb5ac4f8bd341f6735d2af260fe6dbce36dbb0b4c8cbed091", - "https://deno.land/x/valibot@v0.13.1/src/validations/ipv4/index.ts": "48105c37b9ec100d49ca0f5abaaa708d8c029d7df50cd28c518a015284fd8b1d", - "https://deno.land/x/valibot@v0.13.1/src/validations/ipv4/ipv4.ts": "5a4a3db072ad629caa7ce9364cd62c09948b22395ece8df38f4a9492bbb48eaf", - "https://deno.land/x/valibot@v0.13.1/src/validations/ipv6/index.ts": "2ab7903d078c35e0d15f78404e26b99252a5fa3448422ed971b8ef12a2911bc4", - "https://deno.land/x/valibot@v0.13.1/src/validations/ipv6/ipv6.ts": "fcbcdf15462fcbd132353a3e276dda85c0ef755c26932c03e4294824e0828e7b", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoDate/index.ts": "1dca1733a472c3a21244ed4a395382a7836d5d5d1e5ab7a8d8d85b47053db07d", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoDate/isoDate.ts": "773c10d4095e3e216551fcf6841808a72638315a887b15f298649afe9599d25e", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoDateTime/index.ts": "7e55bf21ff01fd4178d38ec00d9e213f4ddf66444e9a1273f8b9e11c3c546919", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoDateTime/isoDateTime.ts": "23eb783e9b1dfbb963e63c43b25d7419bd221237d92f41272f8404188c482b5b", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoTime/index.ts": "7d61413b21228bb4ad645af32fae401a7a32e93613b7d8b0fcc266d37ef1a96b", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoTime/isoTime.ts": "e95a0145e566958f2d7271aa2c438f8736f7d936f54f2ccf67198d54cff1ab6b", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoTimeSecond/index.ts": "b3a2ce5ca284f099773cef0c417bb196403c573e3f14c5fe6facf02b84f3f8a9", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoTimeSecond/isoTimeSecond.ts": "e1e4c1f36af5f6f008c1c15bc2d2c25dad0e7a7291ac6aeb3b1b10df64a8fd83", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoTimestamp/index.ts": "d71da9e8fd34761ba29b56a14c1bb1745aee1b2629ba2b7e8a39386ea14793b3", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoTimestamp/isoTimestamp.ts": "931aca717678ab03e7860f44866cbb6ab003c652b3374fde86900555202fcbd8", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoWeek/index.ts": "0ab75dc237decd1e17aef15a0df6a758ee78b87e6a66119be6ea53292e157ce4", - "https://deno.land/x/valibot@v0.13.1/src/validations/isoWeek/isoWeek.ts": "31eb9db3a62c542c91518fcd1d69c15ca2238265f47bb6950cfa11c45ce2ea15", - "https://deno.land/x/valibot@v0.13.1/src/validations/length/index.ts": "807ae680bfa79db291e59b52daf8bc7cf5a86a73dc79800f57868258188b5868", - "https://deno.land/x/valibot@v0.13.1/src/validations/length/length.ts": "2465ece3d437ab741500fafb319af3825f101b57b51d74d3f0f4d9cfbda01fd1", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxBytes/index.ts": "820623df62598cc942c363a297a51e211dcd24dffe1ac9a6674a5e92cc367bab", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxBytes/maxBytes.ts": "be5d0d1a0c5bfb740c1f6980df643acce9136536969a2abfb9f7c3e5ea2bba2c", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxLength/index.ts": "7a37fbd0adf3004b728eac5b034a3a750ed1d3297be653ae3da17b71abf2227b", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxLength/maxLength.ts": "fed98325cc962047842a7f18757f9e3439c2f06ab26d1bd4a516c743f0412b55", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxSize/index.ts": "c90d5fea12ad302bd837d8c9dad6e0d0100551097f4c69cddbd5f81af84b46cc", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxSize/maxSize.ts": "6978fa850ef9fcdb6f96490439191adde6e012ae09a8d70ce56f8e28698cb282", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxValue/index.ts": "5fb5c3f5086a43bb479dd6a3ce20ed58d9bc9c4f0afc8b2c40e572ef3023d0fb", - "https://deno.land/x/valibot@v0.13.1/src/validations/maxValue/maxValue.ts": "36e67d0a0ae8f73e7cc76660a7c3b97ed038bd5eee3c87dc7b88c5dd426ef66e", - "https://deno.land/x/valibot@v0.13.1/src/validations/mimeType/index.ts": "50600be4af750f5fbbd2c5fbba95e3228507404fac09c334355126bdb2fc8c35", - "https://deno.land/x/valibot@v0.13.1/src/validations/mimeType/mimeType.ts": "6d8dc0b59c09991192d260c939d9a1097c6cc0e4310f53cfc55bbab61942b274", - "https://deno.land/x/valibot@v0.13.1/src/validations/minBytes/index.ts": "b32473a1b4c849fb3b7ab44c5081c63791209b51a8cea3a10c05b84362e7f74c", - "https://deno.land/x/valibot@v0.13.1/src/validations/minBytes/minBytes.ts": "a10224b7ac2dc3f1d26841adb28cb6714ccc81a93baae1b408c7bc8c4a992e53", - "https://deno.land/x/valibot@v0.13.1/src/validations/minLength/index.ts": "0520d71de0e292600977a600ef4c72ed2655f798de6d99b9ae32ab011c8bf659", - "https://deno.land/x/valibot@v0.13.1/src/validations/minLength/minLength.ts": "239bc44e1ddb5104afb263fff8565e4c020e959e365940f40e613371c7eb0fe0", - "https://deno.land/x/valibot@v0.13.1/src/validations/minSize/index.ts": "aef9028cee8baf9f7a3d4adcedc9273fc515bdfd39ce242df0b95bfe0bd51428", - "https://deno.land/x/valibot@v0.13.1/src/validations/minSize/minSize.ts": "a9ed449c1e92218b6cbca7e764f22fc9140a83f6058b212580c8243af9070c56", - "https://deno.land/x/valibot@v0.13.1/src/validations/minValue/index.ts": "1a598ee4ec9cafbef8e029b5d47344d56b1789cdb5ce6006a72314483dd23a3e", - "https://deno.land/x/valibot@v0.13.1/src/validations/minValue/minValue.ts": "061e2b50501f174eb286e627c4d61c546705b1aca51fc8efd67b54d67dc34ab6", - "https://deno.land/x/valibot@v0.13.1/src/validations/multipleOf/index.ts": "a95bda01f2f16d03ecbeec1cbddc831c303ff30871a69ca8107b84bfa4ca462f", - "https://deno.land/x/valibot@v0.13.1/src/validations/multipleOf/multipleOf.ts": "4ae39c331a8078b5a6da81a40f5396742893ff4116662e7f88d068cd79bd1380", - "https://deno.land/x/valibot@v0.13.1/src/validations/regex/index.ts": "f99f0575476f13fc93ea05b50783763f1f659f049146b41623778a9f6aab0d75", - "https://deno.land/x/valibot@v0.13.1/src/validations/regex/regex.ts": "ef14e80ebd7ffe7873917bf998348bdbbe85d75a939eff2a21caf9a51dcde9a6", - "https://deno.land/x/valibot@v0.13.1/src/validations/safeInteger/index.ts": "227db55d6d1a89f7296cd32a6764c51366eb39ae6d8985b591e9b48b0d6de58e", - "https://deno.land/x/valibot@v0.13.1/src/validations/safeInteger/safeInteger.ts": "9b8565b5db54f258d8e47abe95cacbae825cf015877a36fc056a59587d0f932d", - "https://deno.land/x/valibot@v0.13.1/src/validations/size/index.ts": "2799b930f333714abe3fe60ec486d585b93254a4b9934bee16adde312d84abba", - "https://deno.land/x/valibot@v0.13.1/src/validations/size/size.ts": "498e297639c14db6a65ce723f4ff128bd93481e67123e55a86743d3c758a91d2", - "https://deno.land/x/valibot@v0.13.1/src/validations/startsWith/index.ts": "4c87f2127d975bb46fdb1a5fb440b719d6e6221564bb05ef0c69ce068fbcda03", - "https://deno.land/x/valibot@v0.13.1/src/validations/startsWith/startsWith.ts": "e4c473e5133137e95a7d0a59c03c6bbda8842a0dcc86565530a740b425b32048", - "https://deno.land/x/valibot@v0.13.1/src/validations/url/index.ts": "ba4c867ff9030409269cb6902d652e42cb5494b9eec9eaf74f826491cf4ba4cc", - "https://deno.land/x/valibot@v0.13.1/src/validations/url/url.ts": "ddea91d74300cf80fce8f59776b0bfe34a83f576aeffa263fc2c115f4f81f63e", - "https://deno.land/x/valibot@v0.13.1/src/validations/uuid/index.ts": "9be5093a4927ec982d32c7806a8ebb4d9080ea5023140cae851969eec4339bb5", - "https://deno.land/x/valibot@v0.13.1/src/validations/uuid/uuid.ts": "0ffc734fc9e1ffdb727943f549c9d71f960a6e42cee7e5e7b5bffb4daa4a6d71", - "https://deno.land/x/valibot@v0.13.1/src/validations/value/index.ts": "5d0815e3877c5e4548b222597d37fd277f46044193039c7a42539af34e655914", - "https://deno.land/x/valibot@v0.13.1/src/validations/value/value.ts": "51f68bf723e277d1bf484372be4379801d6659713b371cabf70457608a86061d", "https://deno.land/x/wasmbuild@0.14.1/cache.ts": "89eea5f3ce6035a1164b3e655c95f21300498920575ade23161421f5b01967f4", "https://deno.land/x/wasmbuild@0.14.1/loader.ts": "d98d195a715f823151cbc8baa3f32127337628379a02d9eb2a3c5902dbccfc02", "https://deno.land/x/zod@v3.21.4/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", @@ -501,616 +131,5 @@ "https://deno.land/x/zod@v3.21.4/locales/en.ts": "a7a25cd23563ccb5e0eed214d9b31846305ddbcdb9c5c8f508b108943366ab4c", "https://deno.land/x/zod@v3.21.4/mod.ts": "64e55237cb4410e17d968cd08975566059f27638ebb0b86048031b987ba251c4", "https://deno.land/x/zod@v3.21.4/types.ts": "b5d061babea250de14fc63764df5b3afa24f2b088a1d797fc060ba49a0ddff28" - }, - "npm": { - "specifiers": { - "@deepkit/type@1.0.1-alpha.97": "@deepkit/type@1.0.1-alpha.97_@deepkit+core@1.0.1-alpha.97", - "@effect/schema": "@effect/schema@0.34.0_@effect+data@0.18.3_@effect+io@0.39.1__@effect+data@0.18.3", - "@sinclair/typebox": "@sinclair/typebox@0.31.0", - "@sinclair/typebox@0.31.0": "@sinclair/typebox@0.31.0", - "ajv": "ajv@8.12.0", - "ajv@8.12.0": "ajv@8.12.0", - "arktype": "arktype@0.6.0", - "arktype@1.0.19-alpha": "arktype@1.0.19-alpha", - "io-ts": "io-ts@2.2.20_fp-ts@2.16.1", - "io-ts@2.2.20": "io-ts@2.2.20_fp-ts@2.16.1", - "joi": "joi@17.9.2", - "joi@17.9.2": "joi@17.9.2", - "ow@0.28.2": "ow@0.28.2", - "runtypes": "runtypes@6.7.0", - "runtypes@6.7.0": "runtypes@6.7.0", - "superstruct": "superstruct@1.0.3", - "superstruct@1.0.3": "superstruct@1.0.3", - "typia": "typia@5.0.1_typescript@5.2.2", - "valibot": "valibot@0.13.1", - "yup": "yup@1.2.0", - "yup@1.2.0": "yup@1.2.0" - }, - "packages": { - "@deepkit/core@1.0.1-alpha.97": { - "integrity": "sha512-SrG9m43w+fJhiFH4wxyc6QNruFxJaqiGpT+QAncqR0dDvd+5QUCLwD2mGiKkNJoFh2lo+p3rtYhnZ0exny8emw==", - "dependencies": { - "dot-prop": "dot-prop@5.3.0", - "to-fast-properties": "to-fast-properties@3.0.1" - } - }, - "@deepkit/type-spec@1.0.1-alpha.93": { - "integrity": "sha512-ZJHq0tOCYW0pDZ4Ab3RLQiFvDCTD2Dur+af4I0kmtT23slz+WWMNehJF08lO4DUDyOO0f0DlLLCqO39GhY3J4Q==", - "dependencies": {} - }, - "@deepkit/type@1.0.1-alpha.97_@deepkit+core@1.0.1-alpha.97": { - "integrity": "sha512-fnMrhMVYANyZ8zrKEj7KnJMTl2WhXKza9dh9s0Mtgcowd73YSJyEdvFkBKcabmHbvlbHFkAHv8KAvYifvWbGvw==", - "dependencies": { - "@deepkit/core": "@deepkit/core@1.0.1-alpha.97", - "@deepkit/type-spec": "@deepkit/type-spec@1.0.1-alpha.93", - "@types/uuid": "@types/uuid@8.3.4", - "buffer": "buffer@5.7.1", - "uuid": "uuid@8.3.2" - } - }, - "@effect/data@0.18.3": { - "integrity": "sha512-xNG4CwxE758EK0v81EIPnKv9QeU/x9st1Doab/Fjf7sb9V3n55C85aBiKChpKgGD8pKCPHcjGydLsRHVUvzpwg==", - "dependencies": {} - }, - "@effect/io@0.39.1_@effect+data@0.18.3": { - "integrity": "sha512-ISBX1EYsWdVBMOV3ZmEVtbMW8FyVwmK6K47rx8ztOjMBKS5tfhB4W8iRjyycObvvlolfpIcZuAAPrCW5Tty+4Q==", - "dependencies": { - "@effect/data": "@effect/data@0.18.3" - } - }, - "@effect/schema@0.34.0_@effect+data@0.18.3_@effect+io@0.39.1__@effect+data@0.18.3": { - "integrity": "sha512-7BdriGSWYj+f9jVqIq6PyfLoPztV05RW1Sj+mdKX3gAwqqIM7MBwkM0kTaLYKAFbGXTE9AK83uG2SSfzMigqTA==", - "dependencies": { - "@effect/data": "@effect/data@0.18.3", - "@effect/io": "@effect/io@0.39.1_@effect+data@0.18.3", - "fast-check": "fast-check@3.12.1" - } - }, - "@hapi/hoek@9.3.0": { - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dependencies": {} - }, - "@hapi/topo@5.1.0": { - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "@hapi/hoek@9.3.0" - } - }, - "@sideway/address@4.1.4": { - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dependencies": { - "@hapi/hoek": "@hapi/hoek@9.3.0" - } - }, - "@sideway/formula@3.0.1": { - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dependencies": {} - }, - "@sideway/pinpoint@2.0.0": { - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dependencies": {} - }, - "@sinclair/typebox@0.31.0": { - "integrity": "sha512-bL3KIy1cqi4wyKwJZ3szckq0k/IuLluwQ9IB8QMNS2ogHGiqkempV7uO52Tjr79oBgOnlRaOhIf5qkc8HH9KhA==", - "dependencies": {} - }, - "@sindresorhus/is@4.6.0": { - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dependencies": {} - }, - "@types/uuid@8.3.4": { - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dependencies": {} - }, - "ajv@8.12.0": { - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "fast-deep-equal@3.1.3", - "json-schema-traverse": "json-schema-traverse@1.0.0", - "require-from-string": "require-from-string@2.0.2", - "uri-js": "uri-js@4.4.1" - } - }, - "ansi-escapes@4.3.2": { - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "type-fest@0.21.3" - } - }, - "ansi-regex@5.0.1": { - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dependencies": {} - }, - "ansi-styles@4.3.0": { - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "color-convert@2.0.1" - } - }, - "arktype@0.6.0": { - "integrity": "sha512-SBxj1wD3GIG9zzjaseksVs2zwKXb/fjyCHr9grpC0oaror1NQWylkzr6HtMkYIusxGuwB33OfhYZ78kCFDCZbw==", - "dependencies": {} - }, - "arktype@1.0.19-alpha": { - "integrity": "sha512-tcmWSZupIjjG/hBYAlL9JzheY3WP3upCPlD7UCbY65AbzZegLZXrbCM4+TI03t2rKRwT2TuSioH27Bdqst757Q==", - "dependencies": {} - }, - "array-timsort@1.0.3": { - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dependencies": {} - }, - "base64-js@1.5.1": { - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dependencies": {} - }, - "bl@4.1.0": { - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "buffer@5.7.1", - "inherits": "inherits@2.0.4", - "readable-stream": "readable-stream@3.6.2" - } - }, - "buffer@5.7.1": { - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dependencies": { - "base64-js": "base64-js@1.5.1", - "ieee754": "ieee754@1.2.1" - } - }, - "callsites@3.1.0": { - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dependencies": {} - }, - "chalk@4.1.2": { - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "ansi-styles@4.3.0", - "supports-color": "supports-color@7.2.0" - } - }, - "chardet@0.7.0": { - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dependencies": {} - }, - "cli-cursor@3.1.0": { - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "restore-cursor@3.1.0" - } - }, - "cli-spinners@2.9.0": { - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", - "dependencies": {} - }, - "cli-width@3.0.0": { - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dependencies": {} - }, - "clone@1.0.4": { - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dependencies": {} - }, - "color-convert@2.0.1": { - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "color-name@1.1.4" - } - }, - "color-name@1.1.4": { - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dependencies": {} - }, - "commander@10.0.1": { - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dependencies": {} - }, - "comment-json@4.2.3": { - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", - "dependencies": { - "array-timsort": "array-timsort@1.0.3", - "core-util-is": "core-util-is@1.0.3", - "esprima": "esprima@4.0.1", - "has-own-prop": "has-own-prop@2.0.0", - "repeat-string": "repeat-string@1.6.1" - } - }, - "core-util-is@1.0.3": { - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dependencies": {} - }, - "defaults@1.0.4": { - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dependencies": { - "clone": "clone@1.0.4" - } - }, - "dot-prop@5.3.0": { - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "is-obj@2.0.0" - } - }, - "dot-prop@6.0.1": { - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dependencies": { - "is-obj": "is-obj@2.0.0" - } - }, - "drange@1.1.1": { - "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", - "dependencies": {} - }, - "emoji-regex@8.0.0": { - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dependencies": {} - }, - "escape-string-regexp@1.0.5": { - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dependencies": {} - }, - "esprima@4.0.1": { - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dependencies": {} - }, - "external-editor@3.1.0": { - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "chardet@0.7.0", - "iconv-lite": "iconv-lite@0.4.24", - "tmp": "tmp@0.0.33" - } - }, - "fast-check@3.12.1": { - "integrity": "sha512-aRN6WrO+q3TZV8CjXnpebx9bTHrpYIOVi6v3ttxciZiWqS739yy8b1oVx+qNEyV1b8RdVjlp/+miTY6yAp90HA==", - "dependencies": { - "pure-rand": "pure-rand@6.0.2" - } - }, - "fast-deep-equal@3.1.3": { - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dependencies": {} - }, - "figures@3.2.0": { - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "escape-string-regexp@1.0.5" - } - }, - "fp-ts@2.16.1": { - "integrity": "sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==", - "dependencies": {} - }, - "has-flag@4.0.0": { - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dependencies": {} - }, - "has-own-prop@2.0.0": { - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dependencies": {} - }, - "iconv-lite@0.4.24": { - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": "safer-buffer@2.1.2" - } - }, - "ieee754@1.2.1": { - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dependencies": {} - }, - "inherits@2.0.4": { - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dependencies": {} - }, - "inquirer@8.2.6": { - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dependencies": { - "ansi-escapes": "ansi-escapes@4.3.2", - "chalk": "chalk@4.1.2", - "cli-cursor": "cli-cursor@3.1.0", - "cli-width": "cli-width@3.0.0", - "external-editor": "external-editor@3.1.0", - "figures": "figures@3.2.0", - "lodash": "lodash@4.17.21", - "mute-stream": "mute-stream@0.0.8", - "ora": "ora@5.4.1", - "run-async": "run-async@2.4.1", - "rxjs": "rxjs@7.8.1", - "string-width": "string-width@4.2.3", - "strip-ansi": "strip-ansi@6.0.1", - "through": "through@2.3.8", - "wrap-ansi": "wrap-ansi@6.2.0" - } - }, - "io-ts@2.2.20_fp-ts@2.16.1": { - "integrity": "sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA==", - "dependencies": { - "fp-ts": "fp-ts@2.16.1" - } - }, - "is-fullwidth-code-point@3.0.0": { - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dependencies": {} - }, - "is-interactive@1.0.0": { - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dependencies": {} - }, - "is-obj@2.0.0": { - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dependencies": {} - }, - "is-unicode-supported@0.1.0": { - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dependencies": {} - }, - "joi@17.9.2": { - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", - "dependencies": { - "@hapi/hoek": "@hapi/hoek@9.3.0", - "@hapi/topo": "@hapi/topo@5.1.0", - "@sideway/address": "@sideway/address@4.1.4", - "@sideway/formula": "@sideway/formula@3.0.1", - "@sideway/pinpoint": "@sideway/pinpoint@2.0.0" - } - }, - "json-schema-traverse@1.0.0": { - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dependencies": {} - }, - "lodash.isequal@4.5.0": { - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dependencies": {} - }, - "lodash@4.17.21": { - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dependencies": {} - }, - "log-symbols@4.1.0": { - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "chalk@4.1.2", - "is-unicode-supported": "is-unicode-supported@0.1.0" - } - }, - "mimic-fn@2.1.0": { - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dependencies": {} - }, - "mute-stream@0.0.8": { - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dependencies": {} - }, - "onetime@5.1.2": { - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "mimic-fn@2.1.0" - } - }, - "ora@5.4.1": { - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "bl@4.1.0", - "chalk": "chalk@4.1.2", - "cli-cursor": "cli-cursor@3.1.0", - "cli-spinners": "cli-spinners@2.9.0", - "is-interactive": "is-interactive@1.0.0", - "is-unicode-supported": "is-unicode-supported@0.1.0", - "log-symbols": "log-symbols@4.1.0", - "strip-ansi": "strip-ansi@6.0.1", - "wcwidth": "wcwidth@1.0.1" - } - }, - "os-tmpdir@1.0.2": { - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dependencies": {} - }, - "ow@0.28.2": { - "integrity": "sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==", - "dependencies": { - "@sindresorhus/is": "@sindresorhus/is@4.6.0", - "callsites": "callsites@3.1.0", - "dot-prop": "dot-prop@6.0.1", - "lodash.isequal": "lodash.isequal@4.5.0", - "vali-date": "vali-date@1.0.0" - } - }, - "property-expr@2.0.5": { - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", - "dependencies": {} - }, - "punycode@2.3.0": { - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dependencies": {} - }, - "pure-rand@6.0.2": { - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", - "dependencies": {} - }, - "randexp@0.5.3": { - "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", - "dependencies": { - "drange": "drange@1.1.1", - "ret": "ret@0.2.2" - } - }, - "readable-stream@3.6.2": { - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "inherits@2.0.4", - "string_decoder": "string_decoder@1.3.0", - "util-deprecate": "util-deprecate@1.0.2" - } - }, - "repeat-string@1.6.1": { - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dependencies": {} - }, - "require-from-string@2.0.2": { - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dependencies": {} - }, - "restore-cursor@3.1.0": { - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "onetime@5.1.2", - "signal-exit": "signal-exit@3.0.7" - } - }, - "ret@0.2.2": { - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", - "dependencies": {} - }, - "run-async@2.4.1": { - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dependencies": {} - }, - "runtypes@6.7.0": { - "integrity": "sha512-3TLdfFX8YHNFOhwHrSJza6uxVBmBrEjnNQlNXvXCdItS0Pdskfg5vVXUTWIN+Y23QR09jWpSl99UHkA83m4uWA==", - "dependencies": {} - }, - "rxjs@7.8.1": { - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "tslib@2.6.2" - } - }, - "safe-buffer@5.2.1": { - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dependencies": {} - }, - "safer-buffer@2.1.2": { - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dependencies": {} - }, - "signal-exit@3.0.7": { - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dependencies": {} - }, - "string-width@4.2.3": { - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "emoji-regex@8.0.0", - "is-fullwidth-code-point": "is-fullwidth-code-point@3.0.0", - "strip-ansi": "strip-ansi@6.0.1" - } - }, - "string_decoder@1.3.0": { - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "safe-buffer@5.2.1" - } - }, - "strip-ansi@6.0.1": { - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "ansi-regex@5.0.1" - } - }, - "superstruct@1.0.3": { - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", - "dependencies": {} - }, - "supports-color@7.2.0": { - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "has-flag@4.0.0" - } - }, - "through@2.3.8": { - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dependencies": {} - }, - "tiny-case@1.0.3": { - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", - "dependencies": {} - }, - "tmp@0.0.33": { - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "os-tmpdir@1.0.2" - } - }, - "to-fast-properties@3.0.1": { - "integrity": "sha512-/wtNi1tW1F3nf0OL6AqVxGw9Tr1ET70InMhJuVxPwFdGqparF0nQ4UWGLf2DsoI2bFDtthlBnALncZpUzOnsUw==", - "dependencies": {} - }, - "toposort@2.0.2": { - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "dependencies": {} - }, - "tslib@2.6.2": { - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dependencies": {} - }, - "type-fest@0.21.3": { - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dependencies": {} - }, - "type-fest@2.19.0": { - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dependencies": {} - }, - "typescript@5.2.2": { - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dependencies": {} - }, - "typia@5.0.1_typescript@5.2.2": { - "integrity": "sha512-Rh98i9HW5rtXu8s6xo0RHq2TvXj6Hj8R3Dpght5QIFTbqbF+d4PUU4O8ZqbMBJ2i7nZd1XDsMh/h1swvjQndZw==", - "dependencies": { - "commander": "commander@10.0.1", - "comment-json": "comment-json@4.2.3", - "inquirer": "inquirer@8.2.6", - "randexp": "randexp@0.5.3", - "typescript": "typescript@5.2.2" - } - }, - "uri-js@4.4.1": { - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "punycode@2.3.0" - } - }, - "util-deprecate@1.0.2": { - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dependencies": {} - }, - "uuid@8.3.2": { - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dependencies": {} - }, - "vali-date@1.0.0": { - "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", - "dependencies": {} - }, - "valibot@0.13.1": { - "integrity": "sha512-SG2W1RHqE2LShl3p6tyERt6I+G6PQa9ZFVfkyNKXz01HBzL+tBeH5kXw/5AQeAzPJSjI3djVGBl1CyozA1kyBQ==", - "dependencies": {} - }, - "wcwidth@1.0.1": { - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dependencies": { - "defaults": "defaults@1.0.4" - } - }, - "wrap-ansi@6.2.0": { - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "ansi-styles@4.3.0", - "string-width": "string-width@4.2.3", - "strip-ansi": "strip-ansi@6.0.1" - } - }, - "yup@1.2.0": { - "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", - "dependencies": { - "property-expr": "property-expr@2.0.5", - "tiny-case": "tiny-case@1.0.3", - "toposort": "toposort@2.0.2", - "type-fest": "type-fest@2.19.0" - } - } - } } } diff --git a/scripts/build-npm.ts b/scripts/build-npm.ts index c590e2ef..ef1e7e11 100644 --- a/scripts/build-npm.ts +++ b/scripts/build-npm.ts @@ -15,13 +15,10 @@ await build({ undici: true, }, mappings: { - 'https://deno.land/x/typeschema@v0.10.0/mod.ts': { - name: '@decs/typeschema', - version: '^0.10.0', - }, 'https://deno.land/x/zod@v3.21.4/mod.ts': { name: 'zod', version: '^3.21.4', + peerDependency: true, }, }, package: { diff --git a/src/constructor.test.ts b/src/constructor.test.ts index fd421e28..4b597bcc 100644 --- a/src/constructor.test.ts +++ b/src/constructor.test.ts @@ -1,17 +1,12 @@ -import { - assertEquals, - assertObjectMatch, - describe, - it, -} from './test-prelude.ts' +import { describe, it, assertEquals, assertObjectMatch } from './test-prelude.ts' import { z } from 'https://deno.land/x/zod@v3.21.4/mod.ts' import { makeDomainFunction } from './constructor.ts' import { EnvironmentError, + ResultError, InputError, InputErrors, - ResultError, } from './errors.ts' import type { DomainFunction, SuccessResult } from './types.ts' import type { Equal, Expect } from './types.test.ts' @@ -31,10 +26,10 @@ describe('makeDomainFunction', () => { }) describe('when it has no environment', () => { - it('uses zod schema to create parse the input and call the domain function', async () => { - const schema = z.object({ id: z.preprocess(Number, z.number()) }) + it('uses zod parser to create parse the input and call the domain function', async () => { + const parser = z.object({ id: z.preprocess(Number, z.number()) }) - const handler = makeDomainFunction(schema)(({ id }) => id) + const handler = makeDomainFunction(parser)(({ id }) => id) type _R = Expect>> assertEquals(await handler({ id: '1' }), { @@ -47,8 +42,8 @@ describe('makeDomainFunction', () => { }) it('returns error when parsing fails', async () => { - const schema = z.object({ id: z.preprocess(Number, z.number()) }) - const handler = makeDomainFunction(schema)(({ id }) => id) + const parser = z.object({ id: z.preprocess(Number, z.number()) }) + const handler = makeDomainFunction(parser)(({ id }) => id) type _R = Expect>> assertEquals(await handler({ missingId: '1' }), { @@ -62,12 +57,12 @@ describe('makeDomainFunction', () => { }) }) - it('uses zod schemas to parse the input and environment and call the domain function', async () => { - const schema = z.object({ id: z.preprocess(Number, z.number()) }) + it('uses zod parsers to parse the input and environment and call the domain function', async () => { + const parser = z.object({ id: z.preprocess(Number, z.number()) }) const envParser = z.object({ uid: z.preprocess(Number, z.number()) }) const handler = makeDomainFunction( - schema, + parser, envParser, )(({ id }, { uid }) => [id, uid] as const) type _R = Expect< @@ -84,7 +79,7 @@ describe('makeDomainFunction', () => { }) it('applies async validations', async () => { - const schema = z.object({ + const parser = z.object({ id: z .preprocess(Number, z.number()) .refine((value) => value !== 1, { message: 'ID already taken' }), @@ -97,7 +92,7 @@ describe('makeDomainFunction', () => { }) const handler = makeDomainFunction( - schema, + parser, envParser, )(({ id }, { uid }) => [id, uid]) type _R = Expect>> @@ -127,11 +122,11 @@ describe('makeDomainFunction', () => { }) it('returns error when environment parsing fails', async () => { - const schema = z.object({ id: z.preprocess(Number, z.number()) }) + const parser = z.object({ id: z.preprocess(Number, z.number()) }) const envParser = z.object({ uid: z.preprocess(Number, z.number()) }) const handler = makeDomainFunction( - schema, + parser, envParser, )(({ id }, { uid }) => [id, uid]) type _R = Expect>> diff --git a/src/constructor.ts b/src/constructor.ts index 5b06377e..414c18ff 100644 --- a/src/constructor.ts +++ b/src/constructor.ts @@ -1,5 +1,4 @@ -import type { Schema as AnySchema, Infer } from 'https://deno.land/x/typeschema@v0.10.0/mod.ts' -import { validate } from 'https://deno.land/x/typeschema@v0.10.0/mod.ts' +import { z } from 'https://deno.land/x/zod@v3.21.4/mod.ts' import { EnvironmentError, @@ -8,7 +7,7 @@ import { ResultError, } from './errors.ts' import { schemaError, toErrorWithMessage } from './errors.ts' -import { assertObject, assertUndefined, formatSchemaErrors } from './utils.ts' +import { formatSchemaErrors } from './utils.ts' import type { DomainFunction, Result } from './types.ts' async function safeResult(fn: () => T): Promise> { @@ -72,32 +71,35 @@ async function safeResult(fn: () => T): Promise> { * }) */ function makeDomainFunction< - Schema extends AnySchema, - EnvSchema extends AnySchema, + Schema extends z.ZodTypeAny, + EnvSchema extends z.ZodTypeAny, >(inputSchema?: Schema, environmentSchema?: EnvSchema) { return function ( - handler: (input: Infer, environment: Infer) => Output, + handler: ( + input: z.infer, + environment: z.infer, + ) => Output, ) { return function (input, environment = {}) { return safeResult(async () => { - const envResult = await validate( - environmentSchema ?? assertObject, - environment, + const envResult = await ( + environmentSchema ?? z.object({}) + ).safeParseAsync(environment) + const result = await (inputSchema ?? z.undefined()).safeParseAsync( + input, ) - const result = await validate(inputSchema ?? assertUndefined, input) - if ('issues' in result || 'issues' in envResult) { + if (!result.success || !envResult.success) { throw new ResultError({ - inputErrors: - 'issues' in result ? formatSchemaErrors(result.issues) : [], - environmentErrors: - 'issues' in envResult ? formatSchemaErrors(envResult.issues) : [], + inputErrors: result.success + ? [] + : formatSchemaErrors(result.error.issues), + environmentErrors: envResult.success + ? [] + : formatSchemaErrors(envResult.error.issues), }) } - return handler( - result.data as Infer, - envResult.data as Infer, - ) + return handler(result.data, envResult.data) }) } as DomainFunction> } diff --git a/src/parsers.test.ts b/src/parsers.test.ts deleted file mode 100644 index 43066721..00000000 --- a/src/parsers.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { assertEquals, describe, it } from './test-prelude.ts' -import * as v from 'npm:valibot' -import * as y from 'npm:yup' -import { Type as TypeBox } from 'npm:@sinclair/typebox' -import * as s from 'npm:superstruct' -import * as r from 'npm:runtypes' - -import { makeDomainFunction } from './constructor.ts' -import type { DomainFunction } from './types.ts' -import type { Equal, Expect } from './types.test.ts' - -describe('makeDomainFunction', () => { - describe('when using different libraries to create schemas', () => { - it('can use a superstruct schema', async () => { - const schema = s.object({ id: s.number() }) - - const handler = makeDomainFunction(schema)(({ id }) => id) - type _R = Expect>> - - assertEquals(await handler({ id: 1 }), { - success: true, - data: 1, - errors: [], - inputErrors: [], - environmentErrors: [], - }) - }) - - it('can use a runtypes schema', async () => { - const schema = r.Record({ id: r.Number }) - - const handler = makeDomainFunction(schema)(({ id }) => id) - type _R = Expect>> - - assertEquals(await handler({ id: 1 }), { - success: true, - data: 1, - errors: [], - inputErrors: [], - environmentErrors: [], - }) - }) - - it('can use a typebox schema', async () => { - const schema = TypeBox.Object({ id: TypeBox.Integer() }) - - const handler = makeDomainFunction(schema)(({ id }) => id) - type _R = Expect>> - - assertEquals(await handler({ id: 1 }), { - success: true, - data: 1, - errors: [], - inputErrors: [], - environmentErrors: [], - }) - }) - - it('can use a valibot schema', async () => { - const schema = v.object({ id: v.number() }) - - const handler = makeDomainFunction(schema)(({ id }) => id) - type _R = Expect>> - - assertEquals(await handler({ id: 1 }), { - success: true, - data: 1, - errors: [], - inputErrors: [], - environmentErrors: [], - }) - }) - - it('can use a yup schema', async () => { - const schema = y.object({ id: y.number() }) - - const handler = makeDomainFunction(schema)(({ id }) => id) - type _R = Expect< - Equal> - > - - assertEquals(await handler({ id: 1 }), { - success: true, - data: 1, - errors: [], - inputErrors: [], - environmentErrors: [], - }) - }) - }) -}) diff --git a/src/utils.ts b/src/utils.ts index 248b528b..3eec716d 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,11 +1,11 @@ -import type { ValidationIssue } from 'https://deno.land/x/typeschema@v0.10.0/mod.ts' +import { z } from 'https://deno.land/x/zod@v3.21.4/mod.ts' import type { MergeObjs, Result, SchemaError, SuccessResult } from './types.ts' -function formatSchemaErrors(errors: ValidationIssue[]): SchemaError[] { +function formatSchemaErrors(errors: z.ZodIssue[]): SchemaError[] { return errors.map((error) => { const { path, message } = error - return { path: (path ?? []).map(String), message } + return { path: path.map(String), message } }) } @@ -29,24 +29,4 @@ function mergeObjects(objs: T) { return Object.assign({}, ...objs) as MergeObjs } -function assertObject(data: unknown): object { - if (data == null || typeof data !== 'object') { - throw new Error('Expected an object') - } - return data -} - -function assertUndefined(data: unknown): undefined { - if (data !== undefined) { - throw new Error('Expected undefined') - } - return data -} - -export { - formatSchemaErrors, - mergeObjects, - isListOfSuccess, - assertObject, - assertUndefined, -} +export { formatSchemaErrors, mergeObjects, isListOfSuccess }