@lcas58/esmi-api-types 1.0.16 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import type { AppRouteHandler } from "../../lib/types.js";
2
+ import type { DiscoverRoute } from "./discover.routes.js";
3
+ export declare const discover: AppRouteHandler<DiscoverRoute>;
@@ -0,0 +1,15 @@
1
+ import * as HttpStatusCodes from "stoker/http-status-codes";
2
+ import { runDiscoveryAgent } from "../../agent/runner.js";
3
+ import { createDb } from "../../db/index.js";
4
+ export const discover = async (c) => {
5
+ const body = c.req.valid("json");
6
+ const { db } = createDb(c.env);
7
+ const events = await runDiscoveryAgent(c.env, db, {
8
+ sportId: body.sportId,
9
+ city: body.city,
10
+ state: body.state,
11
+ from: body.from,
12
+ to: body.to,
13
+ });
14
+ return c.json(events, HttpStatusCodes.OK);
15
+ };
@@ -0,0 +1,72 @@
1
+ declare const router: import("@hono/zod-openapi").OpenAPIHono<import("../../shared/index.js").AppBindings, {
2
+ "/events/discover": {
3
+ $post: {
4
+ input: {
5
+ json: {
6
+ sportId: string;
7
+ city: string;
8
+ state: string;
9
+ from?: string | undefined;
10
+ to?: string | undefined;
11
+ };
12
+ };
13
+ output: {
14
+ metadata: any;
15
+ id: string;
16
+ title: string;
17
+ createdAt: string;
18
+ sport: {
19
+ id: string;
20
+ name: string;
21
+ icon: string | null;
22
+ } | null;
23
+ sportId: string;
24
+ startsAt: string;
25
+ endsAt: string | null;
26
+ timezone: string;
27
+ location: {
28
+ id: string;
29
+ name: string;
30
+ formattedAddress: string;
31
+ city: string | null;
32
+ state: string | null;
33
+ latitude: number | null;
34
+ longitude: number | null;
35
+ } | null;
36
+ locationId: string | null;
37
+ externalLinkId: string | null;
38
+ source: "external" | "community";
39
+ thumbnailUrl: string | null;
40
+ createdByUserId: string | null;
41
+ creator: {
42
+ image: string | null;
43
+ id: string;
44
+ name: string;
45
+ } | null;
46
+ externalLink: {
47
+ url: string;
48
+ id: string;
49
+ domain: string;
50
+ } | null;
51
+ }[];
52
+ outputFormat: "text" | "json";
53
+ status: 200;
54
+ } | {
55
+ input: {
56
+ json: {
57
+ sportId: string;
58
+ city: string;
59
+ state: string;
60
+ from?: string | undefined;
61
+ to?: string | undefined;
62
+ };
63
+ };
64
+ output: {
65
+ message: string;
66
+ };
67
+ outputFormat: "text" | "json";
68
+ status: 401;
69
+ };
70
+ };
71
+ }, "/">;
72
+ export default router;
@@ -0,0 +1,6 @@
1
+ import { createRouter } from "../../lib/create-app.js";
2
+ import * as handlers from "./discover.handlers.js";
3
+ import * as routes from "./discover.routes.js";
4
+ const router = createRouter()
5
+ .openapi(routes.discover, handlers.discover);
6
+ export default router;
@@ -0,0 +1,333 @@
1
+ import { z } from "@hono/zod-openapi";
2
+ export declare const discoverRequestSchema: z.ZodObject<{
3
+ sportId: z.ZodString;
4
+ city: z.ZodString;
5
+ state: z.ZodString;
6
+ from: z.ZodOptional<z.ZodString>;
7
+ to: z.ZodOptional<z.ZodString>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ sportId: string;
10
+ city: string;
11
+ state: string;
12
+ from?: string | undefined;
13
+ to?: string | undefined;
14
+ }, {
15
+ sportId: string;
16
+ city: string;
17
+ state: string;
18
+ from?: string | undefined;
19
+ to?: string | undefined;
20
+ }>;
21
+ export declare const discover: {
22
+ path: "/events/discover";
23
+ method: "post";
24
+ tags: string[];
25
+ middleware: [import("hono").MiddlewareHandler];
26
+ request: {
27
+ body: {
28
+ required: boolean;
29
+ content: {
30
+ "application/json": {
31
+ schema: z.ZodObject<{
32
+ sportId: z.ZodString;
33
+ city: z.ZodString;
34
+ state: z.ZodString;
35
+ from: z.ZodOptional<z.ZodString>;
36
+ to: z.ZodOptional<z.ZodString>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ sportId: string;
39
+ city: string;
40
+ state: string;
41
+ from?: string | undefined;
42
+ to?: string | undefined;
43
+ }, {
44
+ sportId: string;
45
+ city: string;
46
+ state: string;
47
+ from?: string | undefined;
48
+ to?: string | undefined;
49
+ }>;
50
+ };
51
+ };
52
+ description: string;
53
+ };
54
+ };
55
+ responses: {
56
+ 200: {
57
+ content: {
58
+ "application/json": {
59
+ schema: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
60
+ id: z.ZodString;
61
+ sportId: z.ZodString;
62
+ title: z.ZodString;
63
+ startsAt: z.ZodDate;
64
+ endsAt: z.ZodNullable<z.ZodDate>;
65
+ timezone: z.ZodString;
66
+ locationId: z.ZodNullable<z.ZodString>;
67
+ externalLinkId: z.ZodNullable<z.ZodString>;
68
+ source: z.ZodEnum<["external", "community"]>;
69
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
70
+ metadata: z.ZodNullable<z.ZodType<string | number | boolean | {
71
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
72
+ } | (string | number | boolean | {
73
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
74
+ } | (string | number | boolean | {
75
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
76
+ } | (string | number | boolean | {
77
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
78
+ } | (string | number | boolean | {
79
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
80
+ } | (string | number | boolean | {
81
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
82
+ } | (string | number | boolean | {
83
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
84
+ } | (string | number | boolean | {
85
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
86
+ } | (string | number | boolean | {
87
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
88
+ } | (string | number | boolean | {
89
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
90
+ } | (string | number | boolean | {
91
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
92
+ } | (string | number | boolean | {
93
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
94
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null, z.ZodTypeDef, string | number | boolean | {
95
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
96
+ } | (string | number | boolean | {
97
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
98
+ } | (string | number | boolean | {
99
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
100
+ } | (string | number | boolean | {
101
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
102
+ } | (string | number | boolean | {
103
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
104
+ } | (string | number | boolean | {
105
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
106
+ } | (string | number | boolean | {
107
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
108
+ } | (string | number | boolean | {
109
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
110
+ } | (string | number | boolean | {
111
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
112
+ } | (string | number | boolean | {
113
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
114
+ } | (string | number | boolean | {
115
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
116
+ } | (string | number | boolean | {
117
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
118
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null>>;
119
+ createdByUserId: z.ZodNullable<z.ZodString>;
120
+ createdAt: z.ZodDate;
121
+ }, {
122
+ sport: z.ZodNullable<z.ZodObject<{
123
+ id: z.ZodString;
124
+ name: z.ZodString;
125
+ icon: z.ZodNullable<z.ZodString>;
126
+ }, "strip", z.ZodTypeAny, {
127
+ id: string;
128
+ name: string;
129
+ icon: string | null;
130
+ }, {
131
+ id: string;
132
+ name: string;
133
+ icon: string | null;
134
+ }>>;
135
+ location: z.ZodNullable<z.ZodObject<{
136
+ id: z.ZodString;
137
+ name: z.ZodString;
138
+ formattedAddress: z.ZodString;
139
+ city: z.ZodNullable<z.ZodString>;
140
+ state: z.ZodNullable<z.ZodString>;
141
+ latitude: z.ZodNullable<z.ZodNumber>;
142
+ longitude: z.ZodNullable<z.ZodNumber>;
143
+ }, "strip", z.ZodTypeAny, {
144
+ id: string;
145
+ name: string;
146
+ formattedAddress: string;
147
+ city: string | null;
148
+ state: string | null;
149
+ latitude: number | null;
150
+ longitude: number | null;
151
+ }, {
152
+ id: string;
153
+ name: string;
154
+ formattedAddress: string;
155
+ city: string | null;
156
+ state: string | null;
157
+ latitude: number | null;
158
+ longitude: number | null;
159
+ }>>;
160
+ externalLink: z.ZodNullable<z.ZodObject<{
161
+ id: z.ZodString;
162
+ url: z.ZodString;
163
+ domain: z.ZodString;
164
+ }, "strip", z.ZodTypeAny, {
165
+ url: string;
166
+ id: string;
167
+ domain: string;
168
+ }, {
169
+ url: string;
170
+ id: string;
171
+ domain: string;
172
+ }>>;
173
+ creator: z.ZodNullable<z.ZodObject<{
174
+ id: z.ZodString;
175
+ name: z.ZodString;
176
+ image: z.ZodNullable<z.ZodString>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ image: string | null;
179
+ id: string;
180
+ name: string;
181
+ }, {
182
+ image: string | null;
183
+ id: string;
184
+ name: string;
185
+ }>>;
186
+ }>, z.UnknownKeysParam, z.ZodTypeAny, {
187
+ metadata: string | number | boolean | {
188
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
189
+ } | (string | number | boolean | {
190
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
191
+ } | (string | number | boolean | {
192
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
193
+ } | (string | number | boolean | {
194
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
195
+ } | (string | number | boolean | {
196
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
197
+ } | (string | number | boolean | {
198
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
199
+ } | (string | number | boolean | {
200
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
201
+ } | (string | number | boolean | {
202
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
203
+ } | (string | number | boolean | {
204
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
205
+ } | (string | number | boolean | {
206
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
207
+ } | (string | number | boolean | {
208
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
209
+ } | (string | number | boolean | {
210
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
211
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
212
+ id: string;
213
+ title: string;
214
+ createdAt: Date;
215
+ sport: {
216
+ id: string;
217
+ name: string;
218
+ icon: string | null;
219
+ } | null;
220
+ sportId: string;
221
+ startsAt: Date;
222
+ endsAt: Date | null;
223
+ timezone: string;
224
+ location: {
225
+ id: string;
226
+ name: string;
227
+ formattedAddress: string;
228
+ city: string | null;
229
+ state: string | null;
230
+ latitude: number | null;
231
+ longitude: number | null;
232
+ } | null;
233
+ locationId: string | null;
234
+ externalLinkId: string | null;
235
+ source: "external" | "community";
236
+ thumbnailUrl: string | null;
237
+ createdByUserId: string | null;
238
+ creator: {
239
+ image: string | null;
240
+ id: string;
241
+ name: string;
242
+ } | null;
243
+ externalLink: {
244
+ url: string;
245
+ id: string;
246
+ domain: string;
247
+ } | null;
248
+ }, {
249
+ metadata: string | number | boolean | {
250
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
251
+ } | (string | number | boolean | {
252
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
253
+ } | (string | number | boolean | {
254
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
255
+ } | (string | number | boolean | {
256
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
257
+ } | (string | number | boolean | {
258
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
259
+ } | (string | number | boolean | {
260
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
261
+ } | (string | number | boolean | {
262
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
263
+ } | (string | number | boolean | {
264
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
265
+ } | (string | number | boolean | {
266
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
267
+ } | (string | number | boolean | {
268
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
269
+ } | (string | number | boolean | {
270
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
271
+ } | (string | number | boolean | {
272
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
273
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
274
+ id: string;
275
+ title: string;
276
+ createdAt: Date;
277
+ sport: {
278
+ id: string;
279
+ name: string;
280
+ icon: string | null;
281
+ } | null;
282
+ sportId: string;
283
+ startsAt: Date;
284
+ endsAt: Date | null;
285
+ timezone: string;
286
+ location: {
287
+ id: string;
288
+ name: string;
289
+ formattedAddress: string;
290
+ city: string | null;
291
+ state: string | null;
292
+ latitude: number | null;
293
+ longitude: number | null;
294
+ } | null;
295
+ locationId: string | null;
296
+ externalLinkId: string | null;
297
+ source: "external" | "community";
298
+ thumbnailUrl: string | null;
299
+ createdByUserId: string | null;
300
+ creator: {
301
+ image: string | null;
302
+ id: string;
303
+ name: string;
304
+ } | null;
305
+ externalLink: {
306
+ url: string;
307
+ id: string;
308
+ domain: string;
309
+ } | null;
310
+ }>, "many">;
311
+ };
312
+ };
313
+ description: string;
314
+ };
315
+ 401: {
316
+ content: {
317
+ "application/json": {
318
+ schema: z.ZodObject<{
319
+ message: z.ZodString;
320
+ }, "strip", z.ZodTypeAny, {
321
+ message: string;
322
+ }, {
323
+ message: string;
324
+ }>;
325
+ };
326
+ };
327
+ description: string;
328
+ };
329
+ };
330
+ } & {
331
+ getRoutingPath(): "/events/discover";
332
+ };
333
+ export type DiscoverRoute = typeof discover;
@@ -0,0 +1,26 @@
1
+ import { createRoute, z } from "@hono/zod-openapi";
2
+ import * as HttpStatusCodes from "stoker/http-status-codes";
3
+ import { jsonContent, jsonContentRequired } from "stoker/openapi/helpers";
4
+ import { unauthorizedSchema } from "../../lib/constants.js";
5
+ import { isAuth } from "../../middlewares/is-auth.js";
6
+ import { eventWithRelationsSchema } from "./schemas/index.js";
7
+ export const discoverRequestSchema = z.object({
8
+ sportId: z.string().min(1),
9
+ city: z.string().min(1),
10
+ state: z.string().min(1),
11
+ from: z.string().optional(),
12
+ to: z.string().optional(),
13
+ });
14
+ export const discover = createRoute({
15
+ path: "/events/discover",
16
+ method: "post",
17
+ tags: ["Events"],
18
+ middleware: [isAuth()],
19
+ request: {
20
+ body: jsonContentRequired(discoverRequestSchema, "Event discovery criteria"),
21
+ },
22
+ responses: {
23
+ [HttpStatusCodes.OK]: jsonContent(z.array(eventWithRelationsSchema), "Discovered events"),
24
+ [HttpStatusCodes.UNAUTHORIZED]: jsonContent(unauthorizedSchema, "Unauthorized"),
25
+ },
26
+ });
@@ -1,4 +1,5 @@
1
1
  import type { AppRouteHandler } from "../../lib/types.js";
2
- import type { GetOneRoute, ListRoute } from "./events.routes.js";
2
+ import type { DiscoverRoute, GetOneRoute, ListRoute } from "./events.routes.js";
3
3
  export declare const list: AppRouteHandler<ListRoute>;
4
4
  export declare const getOne: AppRouteHandler<GetOneRoute>;
5
+ export declare const discover: AppRouteHandler<DiscoverRoute>;
@@ -1,6 +1,7 @@
1
- import { and, eq, gte, inArray, lte } from "drizzle-orm";
1
+ import { and, eq, gte, ilike, inArray, isNotNull, lte } from "drizzle-orm";
2
2
  import * as HttpStatusCodes from "stoker/http-status-codes";
3
3
  import * as HttpStatusPhrases from "stoker/http-status-phrases";
4
+ import { runDiscoveryAgent } from "../../agent/runner.js";
4
5
  import { createDb } from "../../db/index.js";
5
6
  import { event, location } from "../../db/schema/index.js";
6
7
  export const list = async (c) => {
@@ -27,14 +28,14 @@ export const list = async (c) => {
27
28
  // Time filtering (recommended for feed relevance)
28
29
  whereConditions.push(gte(event.startsAt, from));
29
30
  whereConditions.push(lte(event.startsAt, to));
30
- // City/state → locationIds → events
31
+ // City/state → locationIds → events (case-insensitive)
31
32
  if (city || state) {
32
33
  const locationConditions = [];
33
34
  if (city) {
34
- locationConditions.push(eq(location.city, city));
35
+ locationConditions.push(ilike(location.city, city));
35
36
  }
36
37
  if (state) {
37
- locationConditions.push(eq(location.state, state));
38
+ locationConditions.push(ilike(location.state, state));
38
39
  }
39
40
  const locations = await db.query.location.findMany({
40
41
  where: and(...locationConditions),
@@ -45,6 +46,7 @@ export const list = async (c) => {
45
46
  return c.json([], HttpStatusCodes.OK);
46
47
  }
47
48
  const locationIds = locations.map((l) => l.id);
49
+ whereConditions.push(isNotNull(event.locationId));
48
50
  whereConditions.push(inArray(event.locationId, locationIds));
49
51
  }
50
52
  const events = await db.query.event.findMany({
@@ -92,3 +94,15 @@ export const getOne = async (c) => {
92
94
  }
93
95
  return c.json(foundEvent, HttpStatusCodes.OK);
94
96
  };
97
+ export const discover = async (c) => {
98
+ const body = c.req.valid("json");
99
+ const { db } = createDb(c.env);
100
+ const events = await runDiscoveryAgent(c.env, db, {
101
+ sportId: body.sportId,
102
+ city: body.city,
103
+ state: body.state,
104
+ from: body.from,
105
+ to: body.to,
106
+ });
107
+ return c.json(events, HttpStatusCodes.OK);
108
+ };
@@ -118,5 +118,75 @@ declare const router: import("@hono/zod-openapi").OpenAPIHono<import("../../shar
118
118
  status: 404;
119
119
  };
120
120
  };
121
+ } & {
122
+ "/events/discover": {
123
+ $post: {
124
+ input: {
125
+ json: {
126
+ sportId: string;
127
+ city: string;
128
+ state: string;
129
+ from?: string | undefined;
130
+ to?: string | undefined;
131
+ };
132
+ };
133
+ output: {
134
+ metadata: any;
135
+ id: string;
136
+ title: string;
137
+ createdAt: string;
138
+ sport: {
139
+ id: string;
140
+ name: string;
141
+ icon: string | null;
142
+ } | null;
143
+ sportId: string;
144
+ startsAt: string;
145
+ endsAt: string | null;
146
+ timezone: string;
147
+ location: {
148
+ id: string;
149
+ name: string;
150
+ formattedAddress: string;
151
+ city: string | null;
152
+ state: string | null;
153
+ latitude: number | null;
154
+ longitude: number | null;
155
+ } | null;
156
+ locationId: string | null;
157
+ externalLinkId: string | null;
158
+ source: "external" | "community";
159
+ thumbnailUrl: string | null;
160
+ createdByUserId: string | null;
161
+ creator: {
162
+ image: string | null;
163
+ id: string;
164
+ name: string;
165
+ } | null;
166
+ externalLink: {
167
+ url: string;
168
+ id: string;
169
+ domain: string;
170
+ } | null;
171
+ }[];
172
+ outputFormat: "text" | "json";
173
+ status: 200;
174
+ } | {
175
+ input: {
176
+ json: {
177
+ sportId: string;
178
+ city: string;
179
+ state: string;
180
+ from?: string | undefined;
181
+ to?: string | undefined;
182
+ };
183
+ };
184
+ output: {
185
+ message: string;
186
+ };
187
+ outputFormat: "text" | "json";
188
+ status: 401;
189
+ };
190
+ };
121
191
  }, "/">;
122
192
  export default router;
@@ -3,5 +3,6 @@ import * as handlers from "./events.handlers.js";
3
3
  import * as routes from "./events.routes.js";
4
4
  const router = createRouter()
5
5
  .openapi(routes.list, handlers.list)
6
- .openapi(routes.getOne, handlers.getOne);
6
+ .openapi(routes.getOne, handlers.getOne)
7
+ .openapi(routes.discover, handlers.discover);
7
8
  export default router;
@@ -11,17 +11,17 @@ export declare const list: {
11
11
  state: z.ZodOptional<z.ZodString>;
12
12
  from: z.ZodOptional<z.ZodDate>;
13
13
  to: z.ZodOptional<z.ZodDate>;
14
- limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
15
- offset: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
14
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
15
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
16
16
  }, "strip", z.ZodTypeAny, {
17
+ limit: number;
18
+ offset: number;
17
19
  sportId?: string | undefined;
18
20
  city?: string | undefined;
19
21
  state?: string | undefined;
20
22
  source?: "external" | "community" | undefined;
21
23
  from?: Date | undefined;
22
24
  to?: Date | undefined;
23
- limit?: number | undefined;
24
- offset?: number | undefined;
25
25
  }, {
26
26
  sportId?: string | undefined;
27
27
  city?: string | undefined;
@@ -588,5 +588,337 @@ export declare const getOne: {
588
588
  } & {
589
589
  getRoutingPath(): "/events/:id";
590
590
  };
591
+ export declare const discoverRequestSchema: z.ZodObject<{
592
+ sportId: z.ZodString;
593
+ city: z.ZodString;
594
+ state: z.ZodString;
595
+ from: z.ZodOptional<z.ZodString>;
596
+ to: z.ZodOptional<z.ZodString>;
597
+ }, "strip", z.ZodTypeAny, {
598
+ sportId: string;
599
+ city: string;
600
+ state: string;
601
+ from?: string | undefined;
602
+ to?: string | undefined;
603
+ }, {
604
+ sportId: string;
605
+ city: string;
606
+ state: string;
607
+ from?: string | undefined;
608
+ to?: string | undefined;
609
+ }>;
610
+ export declare const discover: {
611
+ path: "/events/discover";
612
+ method: "post";
613
+ tags: string[];
614
+ middleware: [import("hono").MiddlewareHandler];
615
+ request: {
616
+ body: {
617
+ required: boolean;
618
+ content: {
619
+ "application/json": {
620
+ schema: z.ZodObject<{
621
+ sportId: z.ZodString;
622
+ city: z.ZodString;
623
+ state: z.ZodString;
624
+ from: z.ZodOptional<z.ZodString>;
625
+ to: z.ZodOptional<z.ZodString>;
626
+ }, "strip", z.ZodTypeAny, {
627
+ sportId: string;
628
+ city: string;
629
+ state: string;
630
+ from?: string | undefined;
631
+ to?: string | undefined;
632
+ }, {
633
+ sportId: string;
634
+ city: string;
635
+ state: string;
636
+ from?: string | undefined;
637
+ to?: string | undefined;
638
+ }>;
639
+ };
640
+ };
641
+ description: string;
642
+ };
643
+ };
644
+ responses: {
645
+ 200: {
646
+ content: {
647
+ "application/json": {
648
+ schema: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
649
+ id: z.ZodString;
650
+ sportId: z.ZodString;
651
+ title: z.ZodString;
652
+ startsAt: z.ZodDate;
653
+ endsAt: z.ZodNullable<z.ZodDate>;
654
+ timezone: z.ZodString;
655
+ locationId: z.ZodNullable<z.ZodString>;
656
+ externalLinkId: z.ZodNullable<z.ZodString>;
657
+ source: z.ZodEnum<["external", "community"]>;
658
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
659
+ metadata: z.ZodNullable<z.ZodType<string | number | boolean | {
660
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
661
+ } | (string | number | boolean | {
662
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
663
+ } | (string | number | boolean | {
664
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
665
+ } | (string | number | boolean | {
666
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
667
+ } | (string | number | boolean | {
668
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
669
+ } | (string | number | boolean | {
670
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
671
+ } | (string | number | boolean | {
672
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
673
+ } | (string | number | boolean | {
674
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
675
+ } | (string | number | boolean | {
676
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
677
+ } | (string | number | boolean | {
678
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
679
+ } | (string | number | boolean | {
680
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
681
+ } | (string | number | boolean | {
682
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
683
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null, z.ZodTypeDef, string | number | boolean | {
684
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
685
+ } | (string | number | boolean | {
686
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
687
+ } | (string | number | boolean | {
688
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
689
+ } | (string | number | boolean | {
690
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
691
+ } | (string | number | boolean | {
692
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
693
+ } | (string | number | boolean | {
694
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
695
+ } | (string | number | boolean | {
696
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
697
+ } | (string | number | boolean | {
698
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
699
+ } | (string | number | boolean | {
700
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
701
+ } | (string | number | boolean | {
702
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
703
+ } | (string | number | boolean | {
704
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
705
+ } | (string | number | boolean | {
706
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
707
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null>>;
708
+ createdByUserId: z.ZodNullable<z.ZodString>;
709
+ createdAt: z.ZodDate;
710
+ }, {
711
+ sport: z.ZodNullable<z.ZodObject<{
712
+ id: z.ZodString;
713
+ name: z.ZodString;
714
+ icon: z.ZodNullable<z.ZodString>;
715
+ }, "strip", z.ZodTypeAny, {
716
+ id: string;
717
+ name: string;
718
+ icon: string | null;
719
+ }, {
720
+ id: string;
721
+ name: string;
722
+ icon: string | null;
723
+ }>>;
724
+ location: z.ZodNullable<z.ZodObject<{
725
+ id: z.ZodString;
726
+ name: z.ZodString;
727
+ formattedAddress: z.ZodString;
728
+ city: z.ZodNullable<z.ZodString>;
729
+ state: z.ZodNullable<z.ZodString>;
730
+ latitude: z.ZodNullable<z.ZodNumber>;
731
+ longitude: z.ZodNullable<z.ZodNumber>;
732
+ }, "strip", z.ZodTypeAny, {
733
+ id: string;
734
+ name: string;
735
+ formattedAddress: string;
736
+ city: string | null;
737
+ state: string | null;
738
+ latitude: number | null;
739
+ longitude: number | null;
740
+ }, {
741
+ id: string;
742
+ name: string;
743
+ formattedAddress: string;
744
+ city: string | null;
745
+ state: string | null;
746
+ latitude: number | null;
747
+ longitude: number | null;
748
+ }>>;
749
+ externalLink: z.ZodNullable<z.ZodObject<{
750
+ id: z.ZodString;
751
+ url: z.ZodString;
752
+ domain: z.ZodString;
753
+ }, "strip", z.ZodTypeAny, {
754
+ url: string;
755
+ id: string;
756
+ domain: string;
757
+ }, {
758
+ url: string;
759
+ id: string;
760
+ domain: string;
761
+ }>>;
762
+ creator: z.ZodNullable<z.ZodObject<{
763
+ id: z.ZodString;
764
+ name: z.ZodString;
765
+ image: z.ZodNullable<z.ZodString>;
766
+ }, "strip", z.ZodTypeAny, {
767
+ image: string | null;
768
+ id: string;
769
+ name: string;
770
+ }, {
771
+ image: string | null;
772
+ id: string;
773
+ name: string;
774
+ }>>;
775
+ }>, z.UnknownKeysParam, z.ZodTypeAny, {
776
+ metadata: string | number | boolean | {
777
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
778
+ } | (string | number | boolean | {
779
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
780
+ } | (string | number | boolean | {
781
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
782
+ } | (string | number | boolean | {
783
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
784
+ } | (string | number | boolean | {
785
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
786
+ } | (string | number | boolean | {
787
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
788
+ } | (string | number | boolean | {
789
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
790
+ } | (string | number | boolean | {
791
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
792
+ } | (string | number | boolean | {
793
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
794
+ } | (string | number | boolean | {
795
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
796
+ } | (string | number | boolean | {
797
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
798
+ } | (string | number | boolean | {
799
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
800
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
801
+ id: string;
802
+ title: string;
803
+ createdAt: Date;
804
+ sport: {
805
+ id: string;
806
+ name: string;
807
+ icon: string | null;
808
+ } | null;
809
+ sportId: string;
810
+ startsAt: Date;
811
+ endsAt: Date | null;
812
+ timezone: string;
813
+ location: {
814
+ id: string;
815
+ name: string;
816
+ formattedAddress: string;
817
+ city: string | null;
818
+ state: string | null;
819
+ latitude: number | null;
820
+ longitude: number | null;
821
+ } | null;
822
+ locationId: string | null;
823
+ externalLinkId: string | null;
824
+ source: "external" | "community";
825
+ thumbnailUrl: string | null;
826
+ createdByUserId: string | null;
827
+ creator: {
828
+ image: string | null;
829
+ id: string;
830
+ name: string;
831
+ } | null;
832
+ externalLink: {
833
+ url: string;
834
+ id: string;
835
+ domain: string;
836
+ } | null;
837
+ }, {
838
+ metadata: string | number | boolean | {
839
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
840
+ } | (string | number | boolean | {
841
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
842
+ } | (string | number | boolean | {
843
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
844
+ } | (string | number | boolean | {
845
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
846
+ } | (string | number | boolean | {
847
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
848
+ } | (string | number | boolean | {
849
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
850
+ } | (string | number | boolean | {
851
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null;
852
+ } | (string | number | boolean | {
853
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null;
854
+ } | (string | number | boolean | {
855
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null)[] | null;
856
+ } | (string | number | boolean | {
857
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null)[] | null;
858
+ } | (string | number | boolean | {
859
+ [key: string]: string | number | boolean | /*elided*/ any | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | null;
860
+ } | (string | number | boolean | {
861
+ [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
862
+ } | /*elided*/ any | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null)[] | null;
863
+ id: string;
864
+ title: string;
865
+ createdAt: Date;
866
+ sport: {
867
+ id: string;
868
+ name: string;
869
+ icon: string | null;
870
+ } | null;
871
+ sportId: string;
872
+ startsAt: Date;
873
+ endsAt: Date | null;
874
+ timezone: string;
875
+ location: {
876
+ id: string;
877
+ name: string;
878
+ formattedAddress: string;
879
+ city: string | null;
880
+ state: string | null;
881
+ latitude: number | null;
882
+ longitude: number | null;
883
+ } | null;
884
+ locationId: string | null;
885
+ externalLinkId: string | null;
886
+ source: "external" | "community";
887
+ thumbnailUrl: string | null;
888
+ createdByUserId: string | null;
889
+ creator: {
890
+ image: string | null;
891
+ id: string;
892
+ name: string;
893
+ } | null;
894
+ externalLink: {
895
+ url: string;
896
+ id: string;
897
+ domain: string;
898
+ } | null;
899
+ }>, "many">;
900
+ };
901
+ };
902
+ description: string;
903
+ };
904
+ 401: {
905
+ content: {
906
+ "application/json": {
907
+ schema: z.ZodObject<{
908
+ message: z.ZodString;
909
+ }, "strip", z.ZodTypeAny, {
910
+ message: string;
911
+ }, {
912
+ message: string;
913
+ }>;
914
+ };
915
+ };
916
+ description: string;
917
+ };
918
+ };
919
+ } & {
920
+ getRoutingPath(): "/events/discover";
921
+ };
591
922
  export type ListRoute = typeof list;
592
923
  export type GetOneRoute = typeof getOne;
924
+ export type DiscoverRoute = typeof discover;
@@ -1,7 +1,8 @@
1
1
  import { createRoute, z } from "@hono/zod-openapi";
2
2
  import * as HttpStatusCodes from "stoker/http-status-codes";
3
- import { jsonContent } from "stoker/openapi/helpers";
4
- import { notFoundSchema } from "../../lib/constants.js";
3
+ import { jsonContent, jsonContentRequired } from "stoker/openapi/helpers";
4
+ import { notFoundSchema, unauthorizedSchema } from "../../lib/constants.js";
5
+ import { isAuth } from "../../middlewares/is-auth.js";
5
6
  import { eventWithRelationsSchema, listEventsQuerySchema } from "./schemas/index.js";
6
7
  export const list = createRoute({
7
8
  path: "/events",
@@ -28,3 +29,23 @@ export const getOne = createRoute({
28
29
  [HttpStatusCodes.NOT_FOUND]: jsonContent(notFoundSchema, "Event not found"),
29
30
  },
30
31
  });
32
+ export const discoverRequestSchema = z.object({
33
+ sportId: z.string().min(1),
34
+ city: z.string().min(1),
35
+ state: z.string().min(1),
36
+ from: z.string().optional(),
37
+ to: z.string().optional(),
38
+ });
39
+ export const discover = createRoute({
40
+ path: "/events/discover",
41
+ method: "post",
42
+ tags: ["Events"],
43
+ middleware: [isAuth()],
44
+ request: {
45
+ body: jsonContentRequired(discoverRequestSchema, "Event discovery criteria"),
46
+ },
47
+ responses: {
48
+ [HttpStatusCodes.OK]: jsonContent(z.array(eventWithRelationsSchema), "Discovered events"),
49
+ [HttpStatusCodes.UNAUTHORIZED]: jsonContent(unauthorizedSchema, "Unauthorized"),
50
+ },
51
+ });
@@ -258,17 +258,17 @@ export declare const listEventsQuerySchema: z.ZodObject<{
258
258
  state: z.ZodOptional<z.ZodString>;
259
259
  from: z.ZodOptional<z.ZodDate>;
260
260
  to: z.ZodOptional<z.ZodDate>;
261
- limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
262
- offset: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
261
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
262
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
263
263
  }, "strip", z.ZodTypeAny, {
264
+ limit: number;
265
+ offset: number;
264
266
  sportId?: string | undefined;
265
267
  city?: string | undefined;
266
268
  state?: string | undefined;
267
269
  source?: "external" | "community" | undefined;
268
270
  from?: Date | undefined;
269
271
  to?: Date | undefined;
270
- limit?: number | undefined;
271
- offset?: number | undefined;
272
272
  }, {
273
273
  sportId?: string | undefined;
274
274
  city?: string | undefined;
@@ -33,6 +33,6 @@ export const listEventsQuerySchema = z.object({
33
33
  state: z.string().optional(),
34
34
  from: z.coerce.date().optional(),
35
35
  to: z.coerce.date().optional(),
36
- limit: z.coerce.number().min(1).max(100).default(20).optional(),
37
- offset: z.coerce.number().min(0).default(0).optional(),
36
+ limit: z.coerce.number().min(1).max(100).optional().default(20),
37
+ offset: z.coerce.number().min(0).optional().default(0),
38
38
  });
@@ -1,6 +1,13 @@
1
1
  declare const router: import("@hono/zod-openapi").OpenAPIHono<import("../../shared/index.js").AppBindings, {
2
2
  "/me": {
3
3
  $get: {
4
+ input: {};
5
+ output: {
6
+ message: string;
7
+ };
8
+ outputFormat: "text" | "json";
9
+ status: 401;
10
+ } | {
4
11
  input: {};
5
12
  output: {
6
13
  image: string | null;
@@ -18,13 +25,6 @@ declare const router: import("@hono/zod-openapi").OpenAPIHono<import("../../shar
18
25
  };
19
26
  outputFormat: "text" | "json";
20
27
  status: 200;
21
- } | {
22
- input: {};
23
- output: {
24
- message: string;
25
- };
26
- outputFormat: "text" | "json";
27
- status: 401;
28
28
  };
29
29
  };
30
30
  }, "/">;
@@ -3,6 +3,7 @@ export declare const me: {
3
3
  path: "/me";
4
4
  method: "get";
5
5
  tags: string[];
6
+ middleware: import("hono").MiddlewareHandler[];
6
7
  responses: {
7
8
  200: {
8
9
  content: {
@@ -2,6 +2,7 @@ import { createRoute, z } from "@hono/zod-openapi";
2
2
  import * as HttpStatusCodes from "stoker/http-status-codes";
3
3
  import { jsonContent } from "stoker/openapi/helpers";
4
4
  import { unauthorizedSchema } from "../../lib/constants.js";
5
+ import { isAuth } from "../../middlewares/is-auth.js";
5
6
  const userProfileSchema = z.object({
6
7
  id: z.string(),
7
8
  name: z.string(),
@@ -20,6 +21,7 @@ export const me = createRoute({
20
21
  path: "/me",
21
22
  method: "get",
22
23
  tags: ["Users"],
24
+ middleware: [isAuth()],
23
25
  responses: {
24
26
  [HttpStatusCodes.OK]: jsonContent(userProfileSchema, "Current user profile"),
25
27
  [HttpStatusCodes.UNAUTHORIZED]: jsonContent(unauthorizedSchema, "Not authenticated"),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lcas58/esmi-api-types",
3
3
  "type": "module",
4
- "version": "1.0.16",
4
+ "version": "1.0.18",
5
5
  "license": "MIT",
6
6
  "exports": {
7
7
  ".": {
@@ -65,7 +65,7 @@
65
65
  "tsx": "^4.19.1",
66
66
  "typescript": "^5.9.3",
67
67
  "vitest": "^2.1.2",
68
- "wrangler": "^4.34.0",
68
+ "wrangler": "^4.68.0",
69
69
  "zod": "^3.25.76"
70
70
  }
71
71
  }