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