@middlewr/contracts 0.0.13 → 0.0.15
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/analytics.schema.d.ts +54 -0
- package/dist/cjs/analytics.schema.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +164 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +293 -250
- package/dist/cjs/workspaces.schema.d.ts +1 -0
- package/dist/cjs/workspaces.schema.d.ts.map +1 -1
- package/dist/esm/analytics.schema.d.ts +54 -0
- package/dist/esm/analytics.schema.d.ts.map +1 -1
- package/dist/esm/index.d.ts +164 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +287 -250
- package/dist/esm/workspaces.schema.d.ts +1 -0
- package/dist/esm/workspaces.schema.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/analytics.schema.ts +30 -0
- package/src/index.ts +15 -0
- package/src/workspaces.schema.ts +1 -0
package/dist/esm/index.js
CHANGED
|
@@ -2,313 +2,343 @@
|
|
|
2
2
|
import { oc } from "@orpc/contract";
|
|
3
3
|
import { z as z10 } from "zod";
|
|
4
4
|
|
|
5
|
-
// src/
|
|
5
|
+
// src/analytics.schema.ts
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
var AnalyticsIntervalSchema = z.enum(["hour", "day", "week", "month"]);
|
|
8
|
+
var AnalyticsQuerySchema = z.object({
|
|
9
|
+
start_at: z.coerce.date(),
|
|
10
|
+
end_at: z.coerce.date(),
|
|
11
|
+
interval: AnalyticsIntervalSchema
|
|
12
|
+
});
|
|
13
|
+
var TimeSeriesPointSchema = z.object({
|
|
14
|
+
date: z.string(),
|
|
15
|
+
clicks: z.number().int(),
|
|
16
|
+
unique_visitors: z.number().int()
|
|
17
|
+
});
|
|
18
|
+
var CountByFieldSchema = z.object({
|
|
10
19
|
name: z.string(),
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
count: z.number().int()
|
|
21
|
+
});
|
|
22
|
+
var AnalyticsOutputSchema = z.object({
|
|
23
|
+
total_clicks: z.number().int(),
|
|
24
|
+
total_unique_visitors: z.number().int(),
|
|
25
|
+
timeseries: z.array(TimeSeriesPointSchema),
|
|
26
|
+
referrers: z.array(CountByFieldSchema),
|
|
27
|
+
devices: z.array(CountByFieldSchema),
|
|
28
|
+
countries: z.array(CountByFieldSchema),
|
|
29
|
+
browsers: z.array(CountByFieldSchema),
|
|
30
|
+
os: z.array(CountByFieldSchema)
|
|
31
|
+
});
|
|
32
|
+
var LinkAnalyticsQuerySchema = z.object({
|
|
33
|
+
link_id: z.string().uuid(),
|
|
34
|
+
from: z.coerce.date(),
|
|
35
|
+
to: z.coerce.date()
|
|
15
36
|
});
|
|
16
|
-
|
|
17
|
-
|
|
37
|
+
|
|
38
|
+
// src/api-keys.schema.ts
|
|
39
|
+
import { z as z2 } from "zod";
|
|
40
|
+
var ApiKeySchema = z2.object({
|
|
41
|
+
id: z2.string().uuid(),
|
|
42
|
+
user_id: z2.string().uuid(),
|
|
43
|
+
name: z2.string(),
|
|
44
|
+
key_prefix: z2.string(),
|
|
45
|
+
last_used_at: z2.coerce.date().nullable(),
|
|
46
|
+
created_at: z2.coerce.date(),
|
|
47
|
+
updated_at: z2.coerce.date().nullable()
|
|
48
|
+
});
|
|
49
|
+
var CreateApiKeyInputSchema = z2.object({
|
|
50
|
+
name: z2.string().min(1).max(255)
|
|
18
51
|
});
|
|
19
52
|
var CreateApiKeyResponseSchema = ApiKeySchema.extend({
|
|
20
|
-
key:
|
|
53
|
+
key: z2.string()
|
|
21
54
|
});
|
|
22
55
|
|
|
23
56
|
// src/billing.schema.ts
|
|
24
|
-
import { z as
|
|
25
|
-
var BillingStatusSchema =
|
|
26
|
-
billing_plan:
|
|
27
|
-
billing_status:
|
|
28
|
-
billing_email:
|
|
29
|
-
billing_current_period_end:
|
|
30
|
-
billing_cancel_at_period_end:
|
|
31
|
-
billing_customer_id:
|
|
32
|
-
billing_subscription_id:
|
|
33
|
-
});
|
|
34
|
-
var CreateCheckoutInputSchema =
|
|
35
|
-
plan:
|
|
36
|
-
success_url:
|
|
37
|
-
billing_email:
|
|
38
|
-
});
|
|
39
|
-
var CheckoutSessionSchema =
|
|
40
|
-
url:
|
|
41
|
-
});
|
|
42
|
-
var CustomerPortalSchema =
|
|
43
|
-
url:
|
|
57
|
+
import { z as z3 } from "zod";
|
|
58
|
+
var BillingStatusSchema = z3.object({
|
|
59
|
+
billing_plan: z3.string(),
|
|
60
|
+
billing_status: z3.string(),
|
|
61
|
+
billing_email: z3.string().nullable(),
|
|
62
|
+
billing_current_period_end: z3.coerce.date().nullable(),
|
|
63
|
+
billing_cancel_at_period_end: z3.boolean(),
|
|
64
|
+
billing_customer_id: z3.string().nullable(),
|
|
65
|
+
billing_subscription_id: z3.string().nullable()
|
|
66
|
+
});
|
|
67
|
+
var CreateCheckoutInputSchema = z3.object({
|
|
68
|
+
plan: z3.enum(["pro", "business"]),
|
|
69
|
+
success_url: z3.string().url().optional(),
|
|
70
|
+
billing_email: z3.string().email().optional()
|
|
71
|
+
});
|
|
72
|
+
var CheckoutSessionSchema = z3.object({
|
|
73
|
+
url: z3.string().url()
|
|
74
|
+
});
|
|
75
|
+
var CustomerPortalSchema = z3.object({
|
|
76
|
+
url: z3.string().url()
|
|
44
77
|
});
|
|
45
78
|
|
|
46
79
|
// src/common.schema.ts
|
|
47
|
-
import { z as
|
|
48
|
-
var WorkspaceIdParamSchema =
|
|
49
|
-
workspace_id:
|
|
80
|
+
import { z as z4 } from "zod";
|
|
81
|
+
var WorkspaceIdParamSchema = z4.object({
|
|
82
|
+
workspace_id: z4.string().uuid()
|
|
50
83
|
});
|
|
51
|
-
var LinkIdParamSchema =
|
|
52
|
-
workspace_id:
|
|
53
|
-
link_id:
|
|
84
|
+
var LinkIdParamSchema = z4.object({
|
|
85
|
+
workspace_id: z4.string().uuid(),
|
|
86
|
+
link_id: z4.string().uuid()
|
|
54
87
|
});
|
|
55
|
-
var TagIdParamSchema =
|
|
56
|
-
workspace_id:
|
|
57
|
-
tag_id:
|
|
88
|
+
var TagIdParamSchema = z4.object({
|
|
89
|
+
workspace_id: z4.string().uuid(),
|
|
90
|
+
tag_id: z4.string().uuid()
|
|
58
91
|
});
|
|
59
|
-
var MemberIdParamSchema =
|
|
60
|
-
workspace_id:
|
|
61
|
-
user_id:
|
|
92
|
+
var MemberIdParamSchema = z4.object({
|
|
93
|
+
workspace_id: z4.string().uuid(),
|
|
94
|
+
user_id: z4.string().uuid()
|
|
62
95
|
});
|
|
63
|
-
var InvitationIdParamSchema =
|
|
64
|
-
workspace_id:
|
|
65
|
-
invitation_id:
|
|
96
|
+
var InvitationIdParamSchema = z4.object({
|
|
97
|
+
workspace_id: z4.string().uuid(),
|
|
98
|
+
invitation_id: z4.string().uuid()
|
|
66
99
|
});
|
|
67
|
-
var DomainIdParamSchema =
|
|
68
|
-
workspace_id:
|
|
69
|
-
domain_id:
|
|
100
|
+
var DomainIdParamSchema = z4.object({
|
|
101
|
+
workspace_id: z4.string().uuid(),
|
|
102
|
+
domain_id: z4.string().uuid()
|
|
70
103
|
});
|
|
71
|
-
var UserIdParamSchema =
|
|
72
|
-
user_id:
|
|
104
|
+
var UserIdParamSchema = z4.object({
|
|
105
|
+
user_id: z4.string().uuid()
|
|
73
106
|
});
|
|
74
|
-
var ApiKeyIdParamSchema =
|
|
75
|
-
api_key_id:
|
|
107
|
+
var ApiKeyIdParamSchema = z4.object({
|
|
108
|
+
api_key_id: z4.string().uuid()
|
|
76
109
|
});
|
|
77
|
-
var TokenParamSchema =
|
|
78
|
-
token:
|
|
110
|
+
var TokenParamSchema = z4.object({
|
|
111
|
+
token: z4.string()
|
|
79
112
|
});
|
|
80
113
|
|
|
81
114
|
// src/domains.schema.ts
|
|
82
|
-
import { z as
|
|
83
|
-
var DomainSchema =
|
|
84
|
-
id:
|
|
85
|
-
workspace_id:
|
|
86
|
-
created_by_id:
|
|
87
|
-
domain:
|
|
88
|
-
is_verified:
|
|
89
|
-
cf_hostname_id:
|
|
90
|
-
cf_ssl_status:
|
|
91
|
-
cf_ownership_status:
|
|
92
|
-
cf_txt_name:
|
|
93
|
-
cf_txt_value:
|
|
94
|
-
cf_ssl_txt_name:
|
|
95
|
-
cf_ssl_txt_value:
|
|
96
|
-
cf_last_checked_at:
|
|
97
|
-
created_at:
|
|
98
|
-
updated_at:
|
|
99
|
-
});
|
|
100
|
-
var CreateDomainInputSchema =
|
|
101
|
-
domain:
|
|
115
|
+
import { z as z5 } from "zod";
|
|
116
|
+
var DomainSchema = z5.object({
|
|
117
|
+
id: z5.string().uuid(),
|
|
118
|
+
workspace_id: z5.string().uuid().nullable(),
|
|
119
|
+
created_by_id: z5.string().uuid().nullable(),
|
|
120
|
+
domain: z5.string(),
|
|
121
|
+
is_verified: z5.boolean(),
|
|
122
|
+
cf_hostname_id: z5.string().nullable(),
|
|
123
|
+
cf_ssl_status: z5.string().nullable(),
|
|
124
|
+
cf_ownership_status: z5.string().nullable(),
|
|
125
|
+
cf_txt_name: z5.string().nullable(),
|
|
126
|
+
cf_txt_value: z5.string().nullable(),
|
|
127
|
+
cf_ssl_txt_name: z5.string().nullable(),
|
|
128
|
+
cf_ssl_txt_value: z5.string().nullable(),
|
|
129
|
+
cf_last_checked_at: z5.coerce.date().nullable(),
|
|
130
|
+
created_at: z5.coerce.date(),
|
|
131
|
+
updated_at: z5.coerce.date().nullable()
|
|
132
|
+
});
|
|
133
|
+
var CreateDomainInputSchema = z5.object({
|
|
134
|
+
domain: z5.string().min(1).max(253).regex(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/, {
|
|
102
135
|
message: "Invalid domain format"
|
|
103
136
|
})
|
|
104
137
|
});
|
|
105
|
-
var UpdateDomainInputSchema =
|
|
106
|
-
domain:
|
|
138
|
+
var UpdateDomainInputSchema = z5.object({
|
|
139
|
+
domain: z5.string().min(1).max(253).regex(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/, {
|
|
107
140
|
message: "Invalid domain format"
|
|
108
141
|
}).optional()
|
|
109
142
|
});
|
|
110
143
|
|
|
111
144
|
// src/links.schema.ts
|
|
112
|
-
import { z as
|
|
145
|
+
import { z as z7 } from "zod";
|
|
113
146
|
|
|
114
147
|
// src/tags.schema.ts
|
|
115
|
-
import { z as
|
|
116
|
-
var TagSchema =
|
|
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()
|
|
123
|
-
});
|
|
124
|
-
var CreateTagInputSchema = z5.object({
|
|
125
|
-
name: z5.string().min(1).max(50),
|
|
126
|
-
color: z5.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
|
|
127
|
-
});
|
|
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()
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
// src/links.schema.ts
|
|
134
|
-
var LinkSchema = z6.object({
|
|
148
|
+
import { z as z6 } from "zod";
|
|
149
|
+
var TagSchema = z6.object({
|
|
135
150
|
id: z6.string().uuid(),
|
|
136
151
|
workspace_id: z6.string().uuid(),
|
|
137
|
-
|
|
138
|
-
|
|
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(),
|
|
152
|
+
name: z6.string(),
|
|
153
|
+
color: z6.string().nullable(),
|
|
155
154
|
created_at: z6.coerce.date(),
|
|
156
|
-
updated_at: z6.coerce.date().nullable()
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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()
|
|
155
|
+
updated_at: z6.coerce.date().nullable()
|
|
156
|
+
});
|
|
157
|
+
var CreateTagInputSchema = z6.object({
|
|
158
|
+
name: z6.string().min(1).max(50),
|
|
159
|
+
color: z6.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
|
|
160
|
+
});
|
|
161
|
+
var UpdateTagInputSchema = z6.object({
|
|
162
|
+
name: z6.string().min(1).max(50).optional(),
|
|
163
|
+
color: z6.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
|
|
216
164
|
});
|
|
217
165
|
|
|
218
|
-
// src/
|
|
219
|
-
|
|
220
|
-
var UserSchema = z7.object({
|
|
166
|
+
// src/links.schema.ts
|
|
167
|
+
var LinkSchema = z7.object({
|
|
221
168
|
id: z7.string().uuid(),
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
169
|
+
workspace_id: z7.string().uuid(),
|
|
170
|
+
domain_id: z7.string().uuid(),
|
|
171
|
+
created_by_id: z7.string().uuid(),
|
|
172
|
+
original_url: z7.string().url(),
|
|
173
|
+
short_code: z7.string(),
|
|
174
|
+
title: z7.string().nullable(),
|
|
175
|
+
description: z7.string().nullable(),
|
|
176
|
+
utm_source: z7.string().nullable(),
|
|
177
|
+
utm_medium: z7.string().nullable(),
|
|
178
|
+
utm_campaign: z7.string().nullable(),
|
|
179
|
+
utm_term: z7.string().nullable(),
|
|
180
|
+
utm_content: z7.string().nullable(),
|
|
181
|
+
password: z7.string().nullable(),
|
|
182
|
+
starts_at: z7.coerce.date().nullable(),
|
|
183
|
+
expires_at: z7.coerce.date().nullable(),
|
|
184
|
+
is_active: z7.boolean(),
|
|
185
|
+
redirect_type: z7.number().int(),
|
|
186
|
+
click_count: z7.coerce.number().int(),
|
|
187
|
+
click_count_updated_at: z7.coerce.date().nullable(),
|
|
227
188
|
created_at: z7.coerce.date(),
|
|
228
|
-
updated_at: z7.coerce.date().nullable()
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
189
|
+
updated_at: z7.coerce.date().nullable(),
|
|
190
|
+
tags: z7.array(TagSchema)
|
|
191
|
+
});
|
|
192
|
+
var CreateLinkInputSchema = z7.object({
|
|
193
|
+
original_url: z7.string().url().max(2048),
|
|
194
|
+
domain_id: z7.string().uuid().optional(),
|
|
195
|
+
short_code: z7.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
|
|
196
|
+
title: z7.string().max(255).optional(),
|
|
197
|
+
description: z7.string().max(2e3).optional(),
|
|
198
|
+
utm_source: z7.string().max(255).optional(),
|
|
199
|
+
utm_medium: z7.string().max(255).optional(),
|
|
200
|
+
utm_campaign: z7.string().max(255).optional(),
|
|
201
|
+
utm_term: z7.string().max(255).optional(),
|
|
202
|
+
utm_content: z7.string().max(255).optional(),
|
|
203
|
+
password: z7.string().min(4).max(100).optional(),
|
|
204
|
+
starts_at: z7.coerce.date().optional(),
|
|
205
|
+
expires_at: z7.coerce.date().optional(),
|
|
206
|
+
redirect_type: z7.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
|
|
207
|
+
tag_ids: z7.array(z7.string().uuid()).optional()
|
|
208
|
+
});
|
|
209
|
+
var UpdateLinkInputSchema = z7.object({
|
|
210
|
+
original_url: z7.string().url().max(2048).optional(),
|
|
211
|
+
domain_id: z7.string().uuid().optional(),
|
|
212
|
+
short_code: z7.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
|
|
213
|
+
title: z7.string().max(255).nullable().optional(),
|
|
214
|
+
description: z7.string().max(2e3).nullable().optional(),
|
|
215
|
+
utm_source: z7.string().max(255).nullable().optional(),
|
|
216
|
+
utm_medium: z7.string().max(255).nullable().optional(),
|
|
217
|
+
utm_campaign: z7.string().max(255).nullable().optional(),
|
|
218
|
+
utm_term: z7.string().max(255).nullable().optional(),
|
|
219
|
+
utm_content: z7.string().max(255).nullable().optional(),
|
|
220
|
+
password: z7.string().min(4).max(100).nullable().optional(),
|
|
221
|
+
starts_at: z7.coerce.date().nullable().optional(),
|
|
222
|
+
expires_at: z7.coerce.date().nullable().optional(),
|
|
223
|
+
is_active: z7.boolean().optional(),
|
|
224
|
+
redirect_type: z7.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
|
|
225
|
+
tag_ids: z7.array(z7.string().uuid()).optional()
|
|
226
|
+
});
|
|
227
|
+
var LinkFiltersSchema = z7.object({
|
|
228
|
+
search: z7.string().optional(),
|
|
229
|
+
domain_id: z7.string().uuid().optional(),
|
|
230
|
+
is_active: z7.coerce.boolean().optional(),
|
|
231
|
+
has_expiration: z7.coerce.boolean().optional(),
|
|
232
|
+
expired: z7.coerce.boolean().optional(),
|
|
233
|
+
created_from: z7.coerce.date().optional(),
|
|
234
|
+
created_to: z7.coerce.date().optional(),
|
|
235
|
+
expires_from: z7.coerce.date().optional(),
|
|
236
|
+
expires_to: z7.coerce.date().optional(),
|
|
237
|
+
tag_ids: z7.array(z7.string().uuid()).optional(),
|
|
238
|
+
sort_by: z7.enum(["created_at", "title", "click_count"]).default("created_at"),
|
|
239
|
+
sort_order: z7.enum(["asc", "desc"]).default("desc"),
|
|
240
|
+
page: z7.coerce.number().int().min(1).default(1),
|
|
241
|
+
per_page: z7.coerce.number().int().min(1).max(100).default(20)
|
|
242
|
+
});
|
|
243
|
+
var PaginatedLinksSchema = z7.object({
|
|
244
|
+
links: z7.array(LinkSchema),
|
|
245
|
+
total: z7.number().int(),
|
|
246
|
+
page: z7.number().int(),
|
|
247
|
+
per_page: z7.number().int(),
|
|
248
|
+
total_pages: z7.number().int()
|
|
237
249
|
});
|
|
238
250
|
|
|
239
|
-
// src/
|
|
251
|
+
// src/users.schema.ts
|
|
240
252
|
import { z as z8 } from "zod";
|
|
241
|
-
var
|
|
253
|
+
var UserSchema = z8.object({
|
|
242
254
|
id: z8.string().uuid(),
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
billing_cancel_at_period_end: z8.boolean(),
|
|
255
|
+
external_id: z8.string(),
|
|
256
|
+
email: z8.string().email(),
|
|
257
|
+
email_verified_at: z8.coerce.date().nullable(),
|
|
258
|
+
first_name: z8.string().nullable(),
|
|
259
|
+
last_name: z8.string().nullable(),
|
|
249
260
|
created_at: z8.coerce.date(),
|
|
250
261
|
updated_at: z8.coerce.date().nullable()
|
|
251
262
|
});
|
|
252
|
-
var
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
var CreateWorkspaceInputSchema = z8.object({
|
|
256
|
-
name: z8.string().min(1).max(100)
|
|
263
|
+
var SignInInputSchema = z8.object({
|
|
264
|
+
first_name: z8.string().min(1).max(100).optional(),
|
|
265
|
+
last_name: z8.string().min(1).max(100).optional()
|
|
257
266
|
});
|
|
258
|
-
var
|
|
259
|
-
|
|
267
|
+
var UpdateUserInputSchema = z8.object({
|
|
268
|
+
first_name: z8.string().min(1).max(100).optional(),
|
|
269
|
+
last_name: z8.string().min(1).max(100).optional()
|
|
260
270
|
});
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
}
|
|
264
|
-
var
|
|
265
|
-
id:
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
271
|
+
|
|
272
|
+
// src/workspaces.schema.ts
|
|
273
|
+
import { z as z9 } from "zod";
|
|
274
|
+
var WorkspaceSchema = z9.object({
|
|
275
|
+
id: z9.string().uuid(),
|
|
276
|
+
name: z9.string(),
|
|
277
|
+
billing_plan: z9.string(),
|
|
278
|
+
billing_status: z9.string(),
|
|
279
|
+
billing_email: z9.string().nullable(),
|
|
280
|
+
billing_current_period_end: z9.coerce.date().nullable(),
|
|
281
|
+
billing_cancel_at_period_end: z9.boolean(),
|
|
282
|
+
created_at: z9.coerce.date(),
|
|
283
|
+
updated_at: z9.coerce.date().nullable()
|
|
269
284
|
});
|
|
270
|
-
var
|
|
271
|
-
|
|
272
|
-
workspace_id: z8.string().uuid(),
|
|
273
|
-
user_id: z8.string().uuid(),
|
|
274
|
-
user: WorkspaceMemberUserSchema,
|
|
275
|
-
permissions: z8.number().int(),
|
|
276
|
-
joined_at: z8.coerce.date(),
|
|
277
|
-
created_at: z8.coerce.date(),
|
|
278
|
-
updated_at: z8.coerce.date().nullable()
|
|
285
|
+
var WorkspaceWithCountSchema = WorkspaceSchema.extend({
|
|
286
|
+
member_count: z9.number().int()
|
|
279
287
|
});
|
|
280
|
-
var
|
|
281
|
-
|
|
288
|
+
var CreateWorkspaceInputSchema = z9.object({
|
|
289
|
+
name: z9.string().min(1).max(100)
|
|
282
290
|
});
|
|
283
|
-
var
|
|
284
|
-
|
|
285
|
-
|
|
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()
|
|
291
|
+
var UpdateWorkspaceInputSchema = z9.object({
|
|
292
|
+
name: z9.string().min(1).max(100).optional(),
|
|
293
|
+
billing_email: z9.string().email().nullish()
|
|
292
294
|
});
|
|
293
|
-
var
|
|
294
|
-
|
|
295
|
-
permissions: z8.number().int().min(1)
|
|
295
|
+
var TransferOwnershipInputSchema = z9.object({
|
|
296
|
+
to_user_id: z9.string().uuid()
|
|
296
297
|
});
|
|
297
|
-
var
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
298
|
+
var WorkspaceMemberUserSchema = z9.object({
|
|
299
|
+
id: z9.string().uuid(),
|
|
300
|
+
email: z9.string().email(),
|
|
301
|
+
first_name: z9.string().nullable(),
|
|
302
|
+
last_name: z9.string().nullable()
|
|
301
303
|
});
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
304
|
+
var WorkspaceMemberSchema = z9.object({
|
|
305
|
+
id: z9.string().uuid(),
|
|
306
|
+
workspace_id: z9.string().uuid(),
|
|
307
|
+
user_id: z9.string().uuid(),
|
|
308
|
+
user: WorkspaceMemberUserSchema,
|
|
309
|
+
permissions: z9.number().int(),
|
|
310
|
+
joined_at: z9.coerce.date(),
|
|
311
|
+
created_at: z9.coerce.date(),
|
|
312
|
+
updated_at: z9.coerce.date().nullable()
|
|
313
|
+
});
|
|
314
|
+
var UpdateMemberInputSchema = z9.object({
|
|
315
|
+
permissions: z9.number().int().min(1)
|
|
316
|
+
});
|
|
317
|
+
var WorkspaceInvitationSchema = z9.object({
|
|
318
|
+
id: z9.string().uuid(),
|
|
319
|
+
workspace_id: z9.string().uuid(),
|
|
320
|
+
email: z9.string().email(),
|
|
321
|
+
token: z9.string(),
|
|
322
|
+
permissions: z9.number().int(),
|
|
323
|
+
invited_by_id: z9.string().uuid(),
|
|
324
|
+
expires_at: z9.coerce.date(),
|
|
325
|
+
created_at: z9.coerce.date()
|
|
326
|
+
});
|
|
327
|
+
var CreateInvitationInputSchema = z9.object({
|
|
328
|
+
email: z9.string().email(),
|
|
329
|
+
permissions: z9.number().int().min(1)
|
|
330
|
+
});
|
|
331
|
+
var WorkspaceRoleSchema = z9.object({
|
|
332
|
+
name: z9.string(),
|
|
333
|
+
description: z9.string(),
|
|
334
|
+
permissions: z9.number().int()
|
|
309
335
|
});
|
|
310
336
|
|
|
311
337
|
// src/index.ts
|
|
338
|
+
var analyticsContract = {
|
|
339
|
+
workspace: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/analytics" }).input(WorkspaceIdParamSchema.merge(AnalyticsQuerySchema)).output(AnalyticsOutputSchema),
|
|
340
|
+
link: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/analytics" }).input(LinkIdParamSchema.merge(AnalyticsQuerySchema)).output(AnalyticsOutputSchema)
|
|
341
|
+
};
|
|
312
342
|
var usersContract = {
|
|
313
343
|
me: oc.route({ method: "GET", path: "/api/users/me" }).output(z10.object({ user: UserSchema })),
|
|
314
344
|
signIn: oc.route({ method: "POST", path: "/api/users" }).input(SignInInputSchema).output(z10.object({ user: UserSchema, status: z10.enum(["created", "existing"]) })),
|
|
@@ -369,6 +399,7 @@ var billingContract = {
|
|
|
369
399
|
portal: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/billing/portal" }).input(WorkspaceIdParamSchema).output(CustomerPortalSchema)
|
|
370
400
|
};
|
|
371
401
|
var contract = {
|
|
402
|
+
analytics: analyticsContract,
|
|
372
403
|
users: usersContract,
|
|
373
404
|
apiKeys: apiKeysContract,
|
|
374
405
|
workspaces: workspacesContract,
|
|
@@ -379,10 +410,14 @@ var contract = {
|
|
|
379
410
|
billing: billingContract
|
|
380
411
|
};
|
|
381
412
|
export {
|
|
413
|
+
AnalyticsIntervalSchema,
|
|
414
|
+
AnalyticsOutputSchema,
|
|
415
|
+
AnalyticsQuerySchema,
|
|
382
416
|
ApiKeyIdParamSchema,
|
|
383
417
|
ApiKeySchema,
|
|
384
418
|
BillingStatusSchema,
|
|
385
419
|
CheckoutSessionSchema,
|
|
420
|
+
CountByFieldSchema,
|
|
386
421
|
CreateApiKeyInputSchema,
|
|
387
422
|
CreateApiKeyResponseSchema,
|
|
388
423
|
CreateCheckoutInputSchema,
|
|
@@ -404,6 +439,7 @@ export {
|
|
|
404
439
|
SignInInputSchema,
|
|
405
440
|
TagIdParamSchema,
|
|
406
441
|
TagSchema,
|
|
442
|
+
TimeSeriesPointSchema,
|
|
407
443
|
TokenParamSchema,
|
|
408
444
|
TransferOwnershipInputSchema,
|
|
409
445
|
UpdateDomainInputSchema,
|
|
@@ -421,6 +457,7 @@ export {
|
|
|
421
457
|
WorkspaceRoleSchema,
|
|
422
458
|
WorkspaceSchema,
|
|
423
459
|
WorkspaceWithCountSchema,
|
|
460
|
+
analyticsContract,
|
|
424
461
|
apiKeysContract,
|
|
425
462
|
billingContract,
|
|
426
463
|
contract,
|
|
@@ -27,6 +27,7 @@ export declare const CreateWorkspaceInputSchema: z.ZodObject<{
|
|
|
27
27
|
}, z.core.$strip>;
|
|
28
28
|
export declare const UpdateWorkspaceInputSchema: z.ZodObject<{
|
|
29
29
|
name: z.ZodOptional<z.ZodString>;
|
|
30
|
+
billing_email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
31
|
}, z.core.$strip>;
|
|
31
32
|
export declare const TransferOwnershipInputSchema: z.ZodObject<{
|
|
32
33
|
to_user_id: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.schema.d.ts","sourceRoot":"","sources":["../../src/workspaces.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;iBAU1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAEnC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"workspaces.schema.d.ts","sourceRoot":"","sources":["../../src/workspaces.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;iBAU1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAEnC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAShC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;iBAElC,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;;;;;iBASpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC"}
|