Repository: RobinTail/express-zod-api (ts)

Issue:
Issue: Generating documentation gives error:  "Zod type ZodDate is unsupported"
Whenever I try to generate OpenAPI spec using:

```
const yamlString = new OpenAPI({
  routing: routes, // the same routing and config that you use to start the server
  config,
  version: '1',
  title: 'Posterr API',
  serverUrl: 'https://localhost:8080'
}).getSpecAsYaml();
```

I get the following error:
```
Error: Zod type ZodDate is unsupported
    at depictSchema (/Users/gmcouto/code/strider-backend/node_modules/express-zod-api/src/open-api-helpers.ts:652:11)
    at /Users/gmcouto/code/strider-backend/node_modules/express-zod-api/src/open-api-helpers.ts:124:46
    at Array.map (<anonymous>)
    at depictUnion (/Users/gmcouto/code/strider-backend/node_modules/express-zod-api/src/open-api-helpers.ts:124:18)
```

Pull request:
More clear error on usage of `z.date()` in IO.
Closes #663 

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4855888e..5d50e7ce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 
 ## Version 8
 
+### v8.3.1
+
+- Clearer error message when using `z.date()` within I/O schema thrown by OpenAPI generator.
+
 ### v8.3.0
 
 - Feature #600: Top level refinements.
diff --git a/src/open-api-helpers.ts b/src/open-api-helpers.ts
index 51605ef4..e5c8b9b8 100644
--- a/src/open-api-helpers.ts
+++ b/src/open-api-helpers.ts
@@ -243,6 +243,17 @@ export const depictDateOut: DepictHelper<ZodDateOut> = ({
   };
 };
 
+/** @throws OpenAPIError */
+export const depictZodDate: DepictHelper<z.ZodDate> = ({ isResponse }) => {
+  throw new OpenAPIError(
+    `Using z.date() within ${
+      isResponse ? "output" : "input"
+    } schema is forbidden. Please use z.date${
+      isResponse ? "Out" : "In"
+    }() instead. Check out the documentation for details.`
+  );
+};
+
 export const depictBoolean: DepictHelper<z.ZodBoolean> = ({ initial }) => ({
   ...initial,
   type: "boolean",
@@ -627,6 +638,7 @@ const depictHelpers: DepictingRules = {
   ZodNullable: depictOptionalOrNullable,
   ZodDiscriminatedUnion: depictDiscriminatedUnion,
   ZodBranded: depictZodBranded,
+  ZodDate: depictZodDate,
 };
 
 export const depictSchema: DepictHelper<z.ZodTypeAny> = ({


Test patch:
diff --git a/tests/unit/__snapshots__/open-api-helpers.spec.ts.snap b/tests/unit/__snapshots__/open-api-helpers.spec.ts.snap
index bdd09a04..2a267098 100644
--- a/tests/unit/__snapshots__/open-api-helpers.spec.ts.snap
+++ b/tests/unit/__snapshots__/open-api-helpers.spec.ts.snap
@@ -798,6 +798,10 @@ exports[`Open API helpers depictZodBranded should depict the actual schema 1`] =
 }
 `;
 
+exports[`Open API helpers depictZodDate should throw clear error 1`] = `[Error: Using z.date() within output schema is forbidden. Please use z.dateOut() instead. Check out the documentation for details.]`;
+
+exports[`Open API helpers depictZodDate should throw clear error 2`] = `[Error: Using z.date() within input schema is forbidden. Please use z.dateIn() instead. Check out the documentation for details.]`;
+
 exports[`Open API helpers excludeExampleFromDepiction() should remove example property of supplied object 1`] = `
 {
   "description": "test",
diff --git a/tests/unit/open-api-helpers.spec.ts b/tests/unit/open-api-helpers.spec.ts
index 23ebe3d0..2849ee12 100644
--- a/tests/unit/open-api-helpers.spec.ts
+++ b/tests/unit/open-api-helpers.spec.ts
@@ -42,6 +42,7 @@ import {
   depictZodBranded,
   depictTags,
   ensureShortDescription,
+  depictZodDate,
 } from "../../src/open-api-helpers";
 import { serializeSchemaForTest } from "../helpers";
 
@@ -881,6 +882,25 @@ describe("Open API helpers", () => {
     });
   });
 
+  describe("depictZodDate", () => {
+    test("should throw clear error", () => {
+      try {
+        depictZodDate({ isResponse: true, schema: z.date() });
+        fail("should not be here");
+      } catch (e) {
+        expect(e).toBeInstanceOf(OpenAPIError);
+        expect(e).toMatchSnapshot();
+      }
+      try {
+        depictZodDate({ isResponse: false, schema: z.date() });
+        fail("should not be here");
+      } catch (e) {
+        expect(e).toBeInstanceOf(OpenAPIError);
+        expect(e).toMatchSnapshot();
+      }
+    });
+  });
+
   describe("depictZodBranded", () => {
     test("should depict the actual schema", () => {
       expect(