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