@middlewr/contracts 0.0.11 → 0.0.13

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.
package/dist/esm/index.js CHANGED
@@ -1,276 +1,341 @@
1
1
  // src/index.ts
2
2
  import { oc } from "@orpc/contract";
3
- import { z as z7 } from "zod";
3
+ import { z as z10 } from "zod";
4
4
 
5
- // src/common.schema.ts
5
+ // src/api-keys.schema.ts
6
6
  import { z } from "zod";
7
- var WorkspaceIdParamSchema = z.object({
8
- workspace_id: z.string().uuid()
7
+ var ApiKeySchema = z.object({
8
+ id: z.string().uuid(),
9
+ user_id: z.string().uuid(),
10
+ name: z.string(),
11
+ key_prefix: z.string(),
12
+ last_used_at: z.coerce.date().nullable(),
13
+ created_at: z.coerce.date(),
14
+ updated_at: z.coerce.date().nullable()
15
+ });
16
+ var CreateApiKeyInputSchema = z.object({
17
+ name: z.string().min(1).max(255)
18
+ });
19
+ var CreateApiKeyResponseSchema = ApiKeySchema.extend({
20
+ key: z.string()
21
+ });
22
+
23
+ // src/billing.schema.ts
24
+ import { z as z2 } from "zod";
25
+ var BillingStatusSchema = z2.object({
26
+ billing_plan: z2.string(),
27
+ billing_status: z2.string(),
28
+ billing_email: z2.string().nullable(),
29
+ billing_current_period_end: z2.coerce.date().nullable(),
30
+ billing_cancel_at_period_end: z2.boolean(),
31
+ billing_customer_id: z2.string().nullable(),
32
+ billing_subscription_id: z2.string().nullable()
33
+ });
34
+ var CreateCheckoutInputSchema = z2.object({
35
+ plan: z2.enum(["pro", "business"]),
36
+ success_url: z2.string().url().optional(),
37
+ billing_email: z2.string().email().optional()
38
+ });
39
+ var CheckoutSessionSchema = z2.object({
40
+ url: z2.string().url()
41
+ });
42
+ var CustomerPortalSchema = z2.object({
43
+ url: z2.string().url()
44
+ });
45
+
46
+ // src/common.schema.ts
47
+ import { z as z3 } from "zod";
48
+ var WorkspaceIdParamSchema = z3.object({
49
+ workspace_id: z3.string().uuid()
50
+ });
51
+ var LinkIdParamSchema = z3.object({
52
+ workspace_id: z3.string().uuid(),
53
+ link_id: z3.string().uuid()
54
+ });
55
+ var TagIdParamSchema = z3.object({
56
+ workspace_id: z3.string().uuid(),
57
+ tag_id: z3.string().uuid()
9
58
  });
10
- var LinkIdParamSchema = z.object({
11
- workspace_id: z.string().uuid(),
12
- link_id: z.string().uuid()
59
+ var MemberIdParamSchema = z3.object({
60
+ workspace_id: z3.string().uuid(),
61
+ user_id: z3.string().uuid()
13
62
  });
14
- var TagIdParamSchema = z.object({
15
- workspace_id: z.string().uuid(),
16
- tag_id: z.string().uuid()
63
+ var InvitationIdParamSchema = z3.object({
64
+ workspace_id: z3.string().uuid(),
65
+ invitation_id: z3.string().uuid()
17
66
  });
18
- var MemberIdParamSchema = z.object({
19
- workspace_id: z.string().uuid(),
20
- user_id: z.string().uuid()
67
+ var DomainIdParamSchema = z3.object({
68
+ workspace_id: z3.string().uuid(),
69
+ domain_id: z3.string().uuid()
21
70
  });
22
- var InvitationIdParamSchema = z.object({
23
- workspace_id: z.string().uuid(),
24
- invitation_id: z.string().uuid()
71
+ var UserIdParamSchema = z3.object({
72
+ user_id: z3.string().uuid()
25
73
  });
26
- var DomainIdParamSchema = z.object({
27
- workspace_id: z.string().uuid(),
28
- domain_id: z.string().uuid()
74
+ var ApiKeyIdParamSchema = z3.object({
75
+ api_key_id: z3.string().uuid()
29
76
  });
30
- var TokenParamSchema = z.object({
31
- token: z.string()
77
+ var TokenParamSchema = z3.object({
78
+ token: z3.string()
32
79
  });
33
80
 
34
81
  // src/domains.schema.ts
35
- import { z as z2 } from "zod";
36
- var DomainSchema = z2.object({
37
- id: z2.string().uuid(),
38
- workspace_id: z2.string().uuid().nullable(),
39
- created_by_id: z2.string().uuid().nullable(),
40
- domain: z2.string(),
41
- is_verified: z2.boolean(),
42
- cf_hostname_id: z2.string().nullable(),
43
- cf_ssl_status: z2.string().nullable(),
44
- cf_ownership_status: z2.string().nullable(),
45
- cf_txt_name: z2.string().nullable(),
46
- cf_txt_value: z2.string().nullable(),
47
- cf_ssl_txt_name: z2.string().nullable(),
48
- cf_ssl_txt_value: z2.string().nullable(),
49
- cf_last_checked_at: z2.coerce.date().nullable(),
50
- created_at: z2.coerce.date(),
51
- updated_at: z2.coerce.date().nullable()
52
- });
53
- var CreateDomainInputSchema = z2.object({
54
- domain: z2.string().min(1).max(253).regex(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/, {
82
+ import { z as z4 } from "zod";
83
+ var DomainSchema = z4.object({
84
+ id: z4.string().uuid(),
85
+ workspace_id: z4.string().uuid().nullable(),
86
+ created_by_id: z4.string().uuid().nullable(),
87
+ domain: z4.string(),
88
+ is_verified: z4.boolean(),
89
+ cf_hostname_id: z4.string().nullable(),
90
+ cf_ssl_status: z4.string().nullable(),
91
+ cf_ownership_status: z4.string().nullable(),
92
+ cf_txt_name: z4.string().nullable(),
93
+ cf_txt_value: z4.string().nullable(),
94
+ cf_ssl_txt_name: z4.string().nullable(),
95
+ cf_ssl_txt_value: z4.string().nullable(),
96
+ cf_last_checked_at: z4.coerce.date().nullable(),
97
+ created_at: z4.coerce.date(),
98
+ updated_at: z4.coerce.date().nullable()
99
+ });
100
+ var CreateDomainInputSchema = z4.object({
101
+ domain: z4.string().min(1).max(253).regex(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/, {
55
102
  message: "Invalid domain format"
56
103
  })
57
104
  });
58
- var UpdateDomainInputSchema = z2.object({
59
- domain: z2.string().min(1).max(253).regex(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/, {
105
+ var UpdateDomainInputSchema = z4.object({
106
+ domain: z4.string().min(1).max(253).regex(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/, {
60
107
  message: "Invalid domain format"
61
108
  }).optional()
62
109
  });
63
110
 
64
111
  // src/links.schema.ts
65
- import { z as z4 } from "zod";
112
+ import { z as z6 } from "zod";
66
113
 
67
114
  // src/tags.schema.ts
68
- import { z as z3 } from "zod";
69
- var TagSchema = z3.object({
70
- id: z3.string().uuid(),
71
- workspace_id: z3.string().uuid(),
72
- name: z3.string(),
73
- color: z3.string().nullable(),
74
- created_at: z3.coerce.date(),
75
- updated_at: z3.coerce.date().nullable()
115
+ import { z as z5 } from "zod";
116
+ var TagSchema = z5.object({
117
+ id: z5.string().uuid(),
118
+ workspace_id: z5.string().uuid(),
119
+ name: z5.string(),
120
+ color: z5.string().nullable(),
121
+ created_at: z5.coerce.date(),
122
+ updated_at: z5.coerce.date().nullable()
76
123
  });
77
- var CreateTagInputSchema = z3.object({
78
- name: z3.string().min(1).max(50),
79
- color: z3.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
124
+ var CreateTagInputSchema = z5.object({
125
+ name: z5.string().min(1).max(50),
126
+ color: z5.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
80
127
  });
81
- var UpdateTagInputSchema = z3.object({
82
- name: z3.string().min(1).max(50).optional(),
83
- color: z3.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
128
+ var UpdateTagInputSchema = z5.object({
129
+ name: z5.string().min(1).max(50).optional(),
130
+ color: z5.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
84
131
  });
85
132
 
86
133
  // src/links.schema.ts
87
- var LinkSchema = z4.object({
88
- id: z4.string().uuid(),
89
- workspace_id: z4.string().uuid(),
90
- domain_id: z4.string().uuid(),
91
- created_by_id: z4.string().uuid(),
92
- original_url: z4.string().url(),
93
- short_code: z4.string(),
94
- title: z4.string().nullable(),
95
- description: z4.string().nullable(),
96
- utm_source: z4.string().nullable(),
97
- utm_medium: z4.string().nullable(),
98
- utm_campaign: z4.string().nullable(),
99
- utm_term: z4.string().nullable(),
100
- utm_content: z4.string().nullable(),
101
- password: z4.string().nullable(),
102
- starts_at: z4.coerce.date().nullable(),
103
- expires_at: z4.coerce.date().nullable(),
104
- is_active: z4.boolean(),
105
- redirect_type: z4.number().int(),
106
- click_count: z4.coerce.number().int(),
107
- click_count_updated_at: z4.coerce.date().nullable(),
108
- created_at: z4.coerce.date(),
109
- updated_at: z4.coerce.date().nullable(),
110
- tags: z4.array(TagSchema)
111
- });
112
- var CreateLinkInputSchema = z4.object({
113
- original_url: z4.string().url().max(2048),
114
- domain_id: z4.string().uuid().optional(),
115
- short_code: z4.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
116
- title: z4.string().max(255).optional(),
117
- description: z4.string().max(2e3).optional(),
118
- utm_source: z4.string().max(255).optional(),
119
- utm_medium: z4.string().max(255).optional(),
120
- utm_campaign: z4.string().max(255).optional(),
121
- utm_term: z4.string().max(255).optional(),
122
- utm_content: z4.string().max(255).optional(),
123
- password: z4.string().min(4).max(100).optional(),
124
- starts_at: z4.coerce.date().optional(),
125
- expires_at: z4.coerce.date().optional(),
126
- redirect_type: z4.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
127
- tag_ids: z4.array(z4.string().uuid()).optional()
128
- });
129
- var UpdateLinkInputSchema = z4.object({
130
- original_url: z4.string().url().max(2048).optional(),
131
- domain_id: z4.string().uuid().optional(),
132
- short_code: z4.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
133
- title: z4.string().max(255).nullable().optional(),
134
- description: z4.string().max(2e3).nullable().optional(),
135
- utm_source: z4.string().max(255).nullable().optional(),
136
- utm_medium: z4.string().max(255).nullable().optional(),
137
- utm_campaign: z4.string().max(255).nullable().optional(),
138
- utm_term: z4.string().max(255).nullable().optional(),
139
- utm_content: z4.string().max(255).nullable().optional(),
140
- password: z4.string().min(4).max(100).nullable().optional(),
141
- starts_at: z4.coerce.date().nullable().optional(),
142
- expires_at: z4.coerce.date().nullable().optional(),
143
- is_active: z4.boolean().optional(),
144
- redirect_type: z4.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
145
- tag_ids: z4.array(z4.string().uuid()).optional()
146
- });
147
- var LinkFiltersSchema = z4.object({
148
- search: z4.string().optional(),
149
- domain_id: z4.string().uuid().optional(),
150
- is_active: z4.coerce.boolean().optional(),
151
- has_expiration: z4.coerce.boolean().optional(),
152
- expired: z4.coerce.boolean().optional(),
153
- created_from: z4.coerce.date().optional(),
154
- created_to: z4.coerce.date().optional(),
155
- expires_from: z4.coerce.date().optional(),
156
- expires_to: z4.coerce.date().optional(),
157
- tag_ids: z4.array(z4.string().uuid()).optional(),
158
- sort_by: z4.enum(["created_at", "title", "click_count"]).default("created_at"),
159
- sort_order: z4.enum(["asc", "desc"]).default("desc"),
160
- page: z4.coerce.number().int().min(1).default(1),
161
- per_page: z4.coerce.number().int().min(1).max(100).default(20)
162
- });
163
- var PaginatedLinksSchema = z4.object({
164
- links: z4.array(LinkSchema),
165
- total: z4.number().int(),
166
- page: z4.number().int(),
167
- per_page: z4.number().int(),
168
- total_pages: z4.number().int()
134
+ var LinkSchema = z6.object({
135
+ id: z6.string().uuid(),
136
+ workspace_id: z6.string().uuid(),
137
+ domain_id: z6.string().uuid(),
138
+ created_by_id: z6.string().uuid(),
139
+ original_url: z6.string().url(),
140
+ short_code: z6.string(),
141
+ title: z6.string().nullable(),
142
+ description: z6.string().nullable(),
143
+ utm_source: z6.string().nullable(),
144
+ utm_medium: z6.string().nullable(),
145
+ utm_campaign: z6.string().nullable(),
146
+ utm_term: z6.string().nullable(),
147
+ utm_content: z6.string().nullable(),
148
+ password: z6.string().nullable(),
149
+ starts_at: z6.coerce.date().nullable(),
150
+ expires_at: z6.coerce.date().nullable(),
151
+ is_active: z6.boolean(),
152
+ redirect_type: z6.number().int(),
153
+ click_count: z6.coerce.number().int(),
154
+ click_count_updated_at: z6.coerce.date().nullable(),
155
+ created_at: z6.coerce.date(),
156
+ updated_at: z6.coerce.date().nullable(),
157
+ tags: z6.array(TagSchema)
158
+ });
159
+ var CreateLinkInputSchema = z6.object({
160
+ original_url: z6.string().url().max(2048),
161
+ domain_id: z6.string().uuid().optional(),
162
+ short_code: z6.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
163
+ title: z6.string().max(255).optional(),
164
+ description: z6.string().max(2e3).optional(),
165
+ utm_source: z6.string().max(255).optional(),
166
+ utm_medium: z6.string().max(255).optional(),
167
+ utm_campaign: z6.string().max(255).optional(),
168
+ utm_term: z6.string().max(255).optional(),
169
+ utm_content: z6.string().max(255).optional(),
170
+ password: z6.string().min(4).max(100).optional(),
171
+ starts_at: z6.coerce.date().optional(),
172
+ expires_at: z6.coerce.date().optional(),
173
+ redirect_type: z6.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
174
+ tag_ids: z6.array(z6.string().uuid()).optional()
175
+ });
176
+ var UpdateLinkInputSchema = z6.object({
177
+ original_url: z6.string().url().max(2048).optional(),
178
+ domain_id: z6.string().uuid().optional(),
179
+ short_code: z6.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
180
+ title: z6.string().max(255).nullable().optional(),
181
+ description: z6.string().max(2e3).nullable().optional(),
182
+ utm_source: z6.string().max(255).nullable().optional(),
183
+ utm_medium: z6.string().max(255).nullable().optional(),
184
+ utm_campaign: z6.string().max(255).nullable().optional(),
185
+ utm_term: z6.string().max(255).nullable().optional(),
186
+ utm_content: z6.string().max(255).nullable().optional(),
187
+ password: z6.string().min(4).max(100).nullable().optional(),
188
+ starts_at: z6.coerce.date().nullable().optional(),
189
+ expires_at: z6.coerce.date().nullable().optional(),
190
+ is_active: z6.boolean().optional(),
191
+ redirect_type: z6.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
192
+ tag_ids: z6.array(z6.string().uuid()).optional()
193
+ });
194
+ var LinkFiltersSchema = z6.object({
195
+ search: z6.string().optional(),
196
+ domain_id: z6.string().uuid().optional(),
197
+ is_active: z6.coerce.boolean().optional(),
198
+ has_expiration: z6.coerce.boolean().optional(),
199
+ expired: z6.coerce.boolean().optional(),
200
+ created_from: z6.coerce.date().optional(),
201
+ created_to: z6.coerce.date().optional(),
202
+ expires_from: z6.coerce.date().optional(),
203
+ expires_to: z6.coerce.date().optional(),
204
+ tag_ids: z6.array(z6.string().uuid()).optional(),
205
+ sort_by: z6.enum(["created_at", "title", "click_count"]).default("created_at"),
206
+ sort_order: z6.enum(["asc", "desc"]).default("desc"),
207
+ page: z6.coerce.number().int().min(1).default(1),
208
+ per_page: z6.coerce.number().int().min(1).max(100).default(20)
209
+ });
210
+ var PaginatedLinksSchema = z6.object({
211
+ links: z6.array(LinkSchema),
212
+ total: z6.number().int(),
213
+ page: z6.number().int(),
214
+ per_page: z6.number().int(),
215
+ total_pages: z6.number().int()
169
216
  });
170
217
 
171
218
  // src/users.schema.ts
172
- import { z as z5 } from "zod";
173
- var UserSchema = z5.object({
174
- id: z5.string().uuid(),
175
- external_id: z5.string(),
176
- email: z5.string().email(),
177
- email_verified_at: z5.coerce.date().nullable(),
178
- first_name: z5.string().nullable(),
179
- last_name: z5.string().nullable(),
180
- created_at: z5.coerce.date(),
181
- updated_at: z5.coerce.date().nullable()
182
- });
183
- var SignInInputSchema = z5.object({
184
- first_name: z5.string().min(1).max(100).optional(),
185
- last_name: z5.string().min(1).max(100).optional()
186
- });
187
- var UpdateUserInputSchema = z5.object({
188
- first_name: z5.string().min(1).max(100).optional(),
189
- last_name: z5.string().min(1).max(100).optional()
219
+ import { z as z7 } from "zod";
220
+ var UserSchema = z7.object({
221
+ id: z7.string().uuid(),
222
+ external_id: z7.string(),
223
+ email: z7.string().email(),
224
+ email_verified_at: z7.coerce.date().nullable(),
225
+ first_name: z7.string().nullable(),
226
+ last_name: z7.string().nullable(),
227
+ created_at: z7.coerce.date(),
228
+ updated_at: z7.coerce.date().nullable()
229
+ });
230
+ var SignInInputSchema = z7.object({
231
+ first_name: z7.string().min(1).max(100).optional(),
232
+ last_name: z7.string().min(1).max(100).optional()
233
+ });
234
+ var UpdateUserInputSchema = z7.object({
235
+ first_name: z7.string().min(1).max(100).optional(),
236
+ last_name: z7.string().min(1).max(100).optional()
190
237
  });
191
238
 
192
239
  // src/workspaces.schema.ts
193
- import { z as z6 } from "zod";
194
- var WorkspaceSchema = z6.object({
195
- id: z6.string().uuid(),
196
- name: z6.string(),
197
- created_at: z6.coerce.date(),
198
- updated_at: z6.coerce.date().nullable()
240
+ import { z as z8 } from "zod";
241
+ var WorkspaceSchema = z8.object({
242
+ id: z8.string().uuid(),
243
+ name: z8.string(),
244
+ billing_plan: z8.string(),
245
+ billing_status: z8.string(),
246
+ billing_email: z8.string().nullable(),
247
+ billing_current_period_end: z8.coerce.date().nullable(),
248
+ billing_cancel_at_period_end: z8.boolean(),
249
+ created_at: z8.coerce.date(),
250
+ updated_at: z8.coerce.date().nullable()
199
251
  });
200
252
  var WorkspaceWithCountSchema = WorkspaceSchema.extend({
201
- member_count: z6.number().int()
253
+ member_count: z8.number().int()
202
254
  });
203
- var CreateWorkspaceInputSchema = z6.object({
204
- name: z6.string().min(1).max(100)
255
+ var CreateWorkspaceInputSchema = z8.object({
256
+ name: z8.string().min(1).max(100)
205
257
  });
206
- var UpdateWorkspaceInputSchema = z6.object({
207
- name: z6.string().min(1).max(100).optional()
258
+ var UpdateWorkspaceInputSchema = z8.object({
259
+ name: z8.string().min(1).max(100).optional()
208
260
  });
209
- var TransferOwnershipInputSchema = z6.object({
210
- to_user_id: z6.string().uuid()
261
+ var TransferOwnershipInputSchema = z8.object({
262
+ to_user_id: z8.string().uuid()
211
263
  });
212
- var WorkspaceMemberUserSchema = z6.object({
213
- id: z6.string().uuid(),
214
- email: z6.string().email(),
215
- first_name: z6.string().nullable(),
216
- last_name: z6.string().nullable()
264
+ var WorkspaceMemberUserSchema = z8.object({
265
+ id: z8.string().uuid(),
266
+ email: z8.string().email(),
267
+ first_name: z8.string().nullable(),
268
+ last_name: z8.string().nullable()
217
269
  });
218
- var WorkspaceMemberSchema = z6.object({
219
- id: z6.string().uuid(),
220
- workspace_id: z6.string().uuid(),
221
- user_id: z6.string().uuid(),
270
+ var WorkspaceMemberSchema = z8.object({
271
+ id: z8.string().uuid(),
272
+ workspace_id: z8.string().uuid(),
273
+ user_id: z8.string().uuid(),
222
274
  user: WorkspaceMemberUserSchema,
223
- permissions: z6.number().int(),
224
- joined_at: z6.coerce.date(),
225
- created_at: z6.coerce.date(),
226
- updated_at: z6.coerce.date().nullable()
227
- });
228
- var UpdateMemberInputSchema = z6.object({
229
- permissions: z6.number().int().min(1)
275
+ permissions: z8.number().int(),
276
+ joined_at: z8.coerce.date(),
277
+ created_at: z8.coerce.date(),
278
+ updated_at: z8.coerce.date().nullable()
279
+ });
280
+ var UpdateMemberInputSchema = z8.object({
281
+ permissions: z8.number().int().min(1)
282
+ });
283
+ var WorkspaceInvitationSchema = z8.object({
284
+ id: z8.string().uuid(),
285
+ workspace_id: z8.string().uuid(),
286
+ email: z8.string().email(),
287
+ token: z8.string(),
288
+ permissions: z8.number().int(),
289
+ invited_by_id: z8.string().uuid(),
290
+ expires_at: z8.coerce.date(),
291
+ created_at: z8.coerce.date()
292
+ });
293
+ var CreateInvitationInputSchema = z8.object({
294
+ email: z8.string().email(),
295
+ permissions: z8.number().int().min(1)
296
+ });
297
+ var WorkspaceRoleSchema = z8.object({
298
+ name: z8.string(),
299
+ description: z8.string(),
300
+ permissions: z8.number().int()
230
301
  });
231
- var WorkspaceInvitationSchema = z6.object({
232
- id: z6.string().uuid(),
233
- workspace_id: z6.string().uuid(),
234
- email: z6.string().email(),
235
- token: z6.string(),
236
- permissions: z6.number().int(),
237
- invited_by_id: z6.string().uuid(),
238
- expires_at: z6.coerce.date(),
239
- created_at: z6.coerce.date()
240
- });
241
- var CreateInvitationInputSchema = z6.object({
242
- email: z6.string().email(),
243
- permissions: z6.number().int().min(1)
244
- });
245
- var WorkspaceRoleSchema = z6.object({
246
- name: z6.string(),
247
- description: z6.string(),
248
- permissions: z6.number().int()
302
+
303
+ // src/analytics.schema.ts
304
+ import { z as z9 } from "zod";
305
+ var LinkAnalyticsQuerySchema = z9.object({
306
+ link_id: z9.string().uuid(),
307
+ from: z9.coerce.date(),
308
+ to: z9.coerce.date()
249
309
  });
250
310
 
251
311
  // src/index.ts
252
312
  var usersContract = {
253
- me: oc.route({ method: "GET", path: "/api/users/me" }).output(z7.object({ user: UserSchema })),
254
- signIn: oc.route({ method: "POST", path: "/api/users" }).input(SignInInputSchema).output(z7.object({ user: UserSchema, status: z7.enum(["created", "existing"]) })),
255
- update: oc.route({ method: "PATCH", path: "/api/users/me" }).input(UpdateUserInputSchema).output(z7.object({ user: UserSchema }))
313
+ me: oc.route({ method: "GET", path: "/api/users/me" }).output(z10.object({ user: UserSchema })),
314
+ signIn: oc.route({ method: "POST", path: "/api/users" }).input(SignInInputSchema).output(z10.object({ user: UserSchema, status: z10.enum(["created", "existing"]) })),
315
+ update: oc.route({ method: "PATCH", path: "/api/users/me" }).input(UpdateUserInputSchema).output(z10.object({ user: UserSchema }))
316
+ };
317
+ var apiKeysContract = {
318
+ create: oc.route({ method: "POST", path: "/api/api-keys" }).input(CreateApiKeyInputSchema).output(CreateApiKeyResponseSchema),
319
+ list: oc.route({ method: "GET", path: "/api/api-keys" }).output(z10.array(ApiKeySchema)),
320
+ delete: oc.route({ method: "DELETE", path: "/api/api-keys/{api_key_id}" }).input(ApiKeyIdParamSchema).output(z10.void())
256
321
  };
257
322
  var workspacesContract = {
258
323
  create: oc.route({ method: "POST", path: "/api/workspaces" }).input(CreateWorkspaceInputSchema).output(WorkspaceSchema),
259
- list: oc.route({ method: "GET", path: "/api/workspaces" }).output(z7.array(WorkspaceWithCountSchema)),
324
+ list: oc.route({ method: "GET", path: "/api/workspaces" }).output(z10.array(WorkspaceWithCountSchema)),
260
325
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(WorkspaceWithCountSchema),
261
326
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema.merge(UpdateWorkspaceInputSchema)).output(WorkspaceSchema),
262
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(z7.void()),
263
- transfer: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/transfer" }).input(WorkspaceIdParamSchema.merge(TransferOwnershipInputSchema)).output(z7.void()),
327
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(z10.void()),
328
+ transfer: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/transfer" }).input(WorkspaceIdParamSchema.merge(TransferOwnershipInputSchema)).output(z10.void()),
264
329
  // Roles
265
- listRoles: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/roles" }).input(WorkspaceIdParamSchema).output(z7.array(WorkspaceRoleSchema)),
330
+ listRoles: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/roles" }).input(WorkspaceIdParamSchema).output(z10.array(WorkspaceRoleSchema)),
266
331
  // Members
267
- listMembers: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/members" }).input(WorkspaceIdParamSchema).output(z7.array(WorkspaceMemberSchema)),
332
+ listMembers: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/members" }).input(WorkspaceIdParamSchema).output(z10.array(WorkspaceMemberSchema)),
268
333
  updateMember: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema.merge(UpdateMemberInputSchema)).output(WorkspaceMemberSchema),
269
- removeMember: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema).output(z7.void()),
334
+ removeMember: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema).output(z10.void()),
270
335
  // Invitations
271
- listInvitations: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema).output(z7.array(WorkspaceInvitationSchema)),
336
+ listInvitations: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema).output(z10.array(WorkspaceInvitationSchema)),
272
337
  createInvitation: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema.merge(CreateInvitationInputSchema)).output(WorkspaceInvitationSchema),
273
- revokeInvitation: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/invitations/{invitation_id}" }).input(InvitationIdParamSchema).output(z7.void())
338
+ revokeInvitation: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/invitations/{invitation_id}" }).input(InvitationIdParamSchema).output(z10.void())
274
339
  };
275
340
  var invitationsContract = {
276
341
  get: oc.route({ method: "GET", path: "/api/invitations/{token}" }).input(TokenParamSchema).output(WorkspaceInvitationSchema),
@@ -281,40 +346,56 @@ var linksContract = {
281
346
  list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links" }).input(WorkspaceIdParamSchema.merge(LinkFiltersSchema)).output(PaginatedLinksSchema),
282
347
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(LinkSchema),
283
348
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema.merge(UpdateLinkInputSchema)).output(LinkSchema),
284
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(z7.void())
349
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(z10.void())
285
350
  };
286
351
  var tagsContract = {
287
352
  create: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema.merge(CreateTagInputSchema)).output(TagSchema),
288
- list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema).output(z7.array(TagSchema)),
353
+ list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema).output(z10.array(TagSchema)),
289
354
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(TagSchema),
290
355
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema.merge(UpdateTagInputSchema)).output(TagSchema),
291
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(z7.void())
356
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(z10.void())
292
357
  };
293
358
  var domainsContract = {
294
359
  create: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema.merge(CreateDomainInputSchema)).output(DomainSchema),
295
- list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema).output(z7.array(DomainSchema)),
360
+ list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema).output(z10.array(DomainSchema)),
296
361
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(DomainSchema),
297
362
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema.merge(UpdateDomainInputSchema)).output(DomainSchema),
298
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(z7.void()),
363
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(z10.void()),
299
364
  verify: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/domains/{domain_id}/verify" }).input(DomainIdParamSchema).output(DomainSchema)
300
365
  };
366
+ var billingContract = {
367
+ status: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/billing" }).input(WorkspaceIdParamSchema).output(BillingStatusSchema),
368
+ checkout: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/billing/checkout" }).input(WorkspaceIdParamSchema.merge(CreateCheckoutInputSchema)).output(CheckoutSessionSchema),
369
+ portal: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/billing/portal" }).input(WorkspaceIdParamSchema).output(CustomerPortalSchema)
370
+ };
301
371
  var contract = {
302
372
  users: usersContract,
373
+ apiKeys: apiKeysContract,
303
374
  workspaces: workspacesContract,
304
375
  invitations: invitationsContract,
305
376
  links: linksContract,
306
377
  tags: tagsContract,
307
- domains: domainsContract
378
+ domains: domainsContract,
379
+ billing: billingContract
308
380
  };
309
381
  export {
382
+ ApiKeyIdParamSchema,
383
+ ApiKeySchema,
384
+ BillingStatusSchema,
385
+ CheckoutSessionSchema,
386
+ CreateApiKeyInputSchema,
387
+ CreateApiKeyResponseSchema,
388
+ CreateCheckoutInputSchema,
310
389
  CreateDomainInputSchema,
311
390
  CreateInvitationInputSchema,
312
391
  CreateLinkInputSchema,
313
392
  CreateTagInputSchema,
314
393
  CreateWorkspaceInputSchema,
394
+ CustomerPortalSchema,
315
395
  DomainIdParamSchema,
316
396
  DomainSchema,
317
397
  InvitationIdParamSchema,
398
+ LinkAnalyticsQuerySchema,
318
399
  LinkFiltersSchema,
319
400
  LinkIdParamSchema,
320
401
  LinkSchema,
@@ -331,6 +412,7 @@ export {
331
412
  UpdateTagInputSchema,
332
413
  UpdateUserInputSchema,
333
414
  UpdateWorkspaceInputSchema,
415
+ UserIdParamSchema,
334
416
  UserSchema,
335
417
  WorkspaceIdParamSchema,
336
418
  WorkspaceInvitationSchema,
@@ -339,6 +421,8 @@ export {
339
421
  WorkspaceRoleSchema,
340
422
  WorkspaceSchema,
341
423
  WorkspaceWithCountSchema,
424
+ apiKeysContract,
425
+ billingContract,
342
426
  contract,
343
427
  domainsContract,
344
428
  invitationsContract,