@middlewr/contracts 0.0.27 → 0.0.29

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUpB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC;AACvC,MAAM,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/index.ts
2
2
  import { oc } from "@orpc/contract";
3
- import { z as z10 } from "zod";
3
+ import { z as z11 } from "zod";
4
4
 
5
5
  // src/analytics.schema.ts
6
6
  import { z } from "zod";
@@ -144,234 +144,325 @@ var UpdateDomainInputSchema = z5.object({
144
144
  });
145
145
 
146
146
  // src/links.schema.ts
147
- import { z as z7 } from "zod";
147
+ import { z as z8 } from "zod";
148
148
 
149
- // src/tags.schema.ts
149
+ // src/rules.schema.ts
150
150
  import { z as z6 } from "zod";
151
- var TagSchema = z6.object({
152
- id: z6.string().uuid(),
153
- workspace_id: z6.string().uuid(),
154
- name: z6.string(),
155
- color: z6.string().nullable(),
156
- created_at: z6.coerce.date(),
157
- updated_at: z6.coerce.date().nullable()
158
- });
159
- var CreateTagInputSchema = z6.object({
160
- name: z6.string().min(1).max(50),
161
- color: z6.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
162
- });
163
- var UpdateTagInputSchema = z6.object({
164
- name: z6.string().min(1).max(50).optional(),
165
- color: z6.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
151
+ var RULE_OPERATORS = ["eq", "neq", "in", "not_in", "contains", "not_contains", "gt", "lt", "gte", "lte", "regex"];
152
+ var VALID_FIELD_PREFIXES = ["cf.", "request.", "edge.", "time."];
153
+ var PositionSchema = z6.object({
154
+ x: z6.number(),
155
+ y: z6.number()
156
+ });
157
+ var ConditionNodeSchema = z6.object({
158
+ id: z6.string(),
159
+ type: z6.literal("condition"),
160
+ position: PositionSchema,
161
+ field: z6.string().refine((f) => VALID_FIELD_PREFIXES.some((p) => f.startsWith(p)), {
162
+ message: "Field must start with cf., request., edge., or time."
163
+ }),
164
+ operator: z6.enum(RULE_OPERATORS),
165
+ value: z6.union([z6.string(), z6.array(z6.string()), z6.number()]),
166
+ outputs: z6.object({
167
+ true: z6.string().nullable(),
168
+ false: z6.string().nullable()
169
+ })
170
+ });
171
+ var SplitNodeSchema = z6.object({
172
+ id: z6.string(),
173
+ type: z6.literal("split"),
174
+ position: PositionSchema,
175
+ variants: z6.array(
176
+ z6.object({
177
+ weight: z6.number().min(1).max(100),
178
+ target: z6.string().nullable()
179
+ })
180
+ ).min(2)
181
+ });
182
+ var DestinationNodeSchema = z6.object({
183
+ id: z6.string(),
184
+ type: z6.literal("destination"),
185
+ position: PositionSchema,
186
+ url: z6.string().url()
187
+ });
188
+ var FORBIDDEN_HEADERS = ["set-cookie", "authorization", "host", "transfer-encoding"];
189
+ var TransformNodeSchema = z6.object({
190
+ id: z6.string(),
191
+ type: z6.literal("transform"),
192
+ position: PositionSchema,
193
+ transforms: z6.object({
194
+ query_params: z6.array(
195
+ z6.object({
196
+ key: z6.string().min(1),
197
+ value: z6.string(),
198
+ mode: z6.enum(["set", "append"])
199
+ })
200
+ ).optional(),
201
+ redirect_status: z6.union([z6.literal(301), z6.literal(302), z6.literal(307), z6.literal(308)]).optional(),
202
+ response_headers: z6.array(
203
+ z6.object({
204
+ key: z6.string().min(1).refine((k) => !FORBIDDEN_HEADERS.includes(k.toLowerCase()), {
205
+ message: "This header is not allowed"
206
+ }),
207
+ value: z6.string().regex(/^[^\r\n]*$/, "Header value must not contain newlines"),
208
+ mode: z6.enum(["set", "append"])
209
+ })
210
+ ).optional()
211
+ }),
212
+ next: z6.string().nullable()
213
+ });
214
+ var RuleGraphNodeSchema = z6.discriminatedUnion("type", [
215
+ ConditionNodeSchema,
216
+ SplitNodeSchema,
217
+ DestinationNodeSchema,
218
+ TransformNodeSchema
219
+ ]);
220
+ var RuleGraphSchema = z6.object({
221
+ entry: z6.string(),
222
+ nodes: z6.record(z6.string(), RuleGraphNodeSchema)
223
+ }).refine((data) => data.nodes[data.entry] !== void 0, {
224
+ message: "Entry node must reference an existing node in the graph",
225
+ path: ["entry"]
226
+ }).nullable();
227
+
228
+ // src/tags.schema.ts
229
+ import { z as z7 } from "zod";
230
+ var TagSchema = z7.object({
231
+ id: z7.string().uuid(),
232
+ workspace_id: z7.string().uuid(),
233
+ name: z7.string(),
234
+ color: z7.string().nullable(),
235
+ created_at: z7.coerce.date(),
236
+ updated_at: z7.coerce.date().nullable()
237
+ });
238
+ var CreateTagInputSchema = z7.object({
239
+ name: z7.string().min(1).max(50),
240
+ color: z7.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
241
+ });
242
+ var UpdateTagInputSchema = z7.object({
243
+ name: z7.string().min(1).max(50).optional(),
244
+ color: z7.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
166
245
  });
167
246
 
168
247
  // src/links.schema.ts
169
- var DotStyleSchema = z7.enum(["square", "dots", "rounded", "classy", "classy-rounded", "extra-rounded"]);
170
- var EyeOuterStyleSchema = z7.enum(["square", "dot", "extra-rounded"]);
171
- var EyeInnerStyleSchema = z7.enum(["square", "dot"]);
172
- var QrCodeSettingsSchema = z7.object({
173
- fg_color: z7.string().max(20),
174
- bg_color: z7.string().max(20),
248
+ var DotStyleSchema = z8.enum(["square", "dots", "rounded", "classy", "classy-rounded", "extra-rounded"]);
249
+ var EyeOuterStyleSchema = z8.enum(["square", "dot", "extra-rounded"]);
250
+ var EyeInnerStyleSchema = z8.enum(["square", "dot"]);
251
+ var QrCodeSettingsSchema = z8.object({
252
+ fg_color: z8.string().max(20),
253
+ bg_color: z8.string().max(20),
175
254
  dot_style: DotStyleSchema,
176
255
  eye_outer_style: EyeOuterStyleSchema,
177
256
  eye_inner_style: EyeInnerStyleSchema,
178
- frame_enabled: z7.boolean(),
179
- frame_text: z7.string().max(255),
180
- frame_color: z7.string().max(20),
181
- frame_text_color: z7.string().max(20)
257
+ frame_enabled: z8.boolean(),
258
+ frame_text: z8.string().max(255),
259
+ frame_color: z8.string().max(20),
260
+ frame_text_color: z8.string().max(20)
182
261
  });
183
- var LinkSchema = z7.object({
184
- id: z7.string().uuid(),
185
- workspace_id: z7.string().uuid(),
186
- domain_id: z7.string().uuid(),
187
- created_by_id: z7.string().uuid(),
188
- original_url: z7.string().url(),
189
- short_code: z7.string(),
190
- title: z7.string().nullable(),
191
- description: z7.string().nullable(),
192
- utm_source: z7.string().nullable(),
193
- utm_medium: z7.string().nullable(),
194
- utm_campaign: z7.string().nullable(),
195
- utm_term: z7.string().nullable(),
196
- utm_content: z7.string().nullable(),
197
- password: z7.string().nullable(),
198
- starts_at: z7.coerce.date().nullable(),
199
- expires_at: z7.coerce.date().nullable(),
200
- fallback_url: z7.string().nullable(),
201
- is_active: z7.boolean(),
202
- redirect_type: z7.number().int(),
203
- click_count: z7.coerce.number().int(),
204
- click_count_updated_at: z7.coerce.date().nullable(),
205
- created_at: z7.coerce.date(),
206
- updated_at: z7.coerce.date().nullable(),
262
+ var LinkSchema = z8.object({
263
+ id: z8.string().uuid(),
264
+ workspace_id: z8.string().uuid(),
265
+ domain_id: z8.string().uuid(),
266
+ created_by_id: z8.string().uuid(),
267
+ original_url: z8.string().url(),
268
+ short_code: z8.string(),
269
+ title: z8.string().nullable(),
270
+ description: z8.string().nullable(),
271
+ utm_source: z8.string().nullable(),
272
+ utm_medium: z8.string().nullable(),
273
+ utm_campaign: z8.string().nullable(),
274
+ utm_term: z8.string().nullable(),
275
+ utm_content: z8.string().nullable(),
276
+ password: z8.string().nullable(),
277
+ starts_at: z8.coerce.date().nullable(),
278
+ expires_at: z8.coerce.date().nullable(),
279
+ fallback_url: z8.string().nullable(),
280
+ is_active: z8.boolean(),
281
+ redirect_type: z8.number().int(),
282
+ click_count: z8.coerce.number().int(),
283
+ click_count_updated_at: z8.coerce.date().nullable(),
284
+ created_at: z8.coerce.date(),
285
+ updated_at: z8.coerce.date().nullable(),
207
286
  qr_code_settings: QrCodeSettingsSchema.nullable(),
208
- tags: z7.array(TagSchema)
209
- });
210
- var CreateLinkInputSchema = z7.object({
211
- original_url: z7.string().url().max(2048),
212
- domain_id: z7.string().uuid().optional(),
213
- short_code: z7.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
214
- title: z7.string().max(255).optional(),
215
- description: z7.string().max(2e3).optional(),
216
- utm_source: z7.string().max(255).optional(),
217
- utm_medium: z7.string().max(255).optional(),
218
- utm_campaign: z7.string().max(255).optional(),
219
- utm_term: z7.string().max(255).optional(),
220
- utm_content: z7.string().max(255).optional(),
221
- password: z7.string().min(4).max(100).optional(),
222
- starts_at: z7.coerce.date().optional(),
223
- expires_at: z7.coerce.date().optional(),
224
- fallback_url: z7.string().url().max(2048).optional(),
225
- redirect_type: z7.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
287
+ link_type: z8.enum(["redirect", "rules"]).default("redirect"),
288
+ rule_graph: RuleGraphSchema.optional(),
289
+ tags: z8.array(TagSchema)
290
+ });
291
+ var CreateLinkInputSchema = z8.object({
292
+ original_url: z8.string().url().max(2048),
293
+ domain_id: z8.string().uuid().optional(),
294
+ short_code: z8.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
295
+ title: z8.string().max(255).optional(),
296
+ description: z8.string().max(2e3).optional(),
297
+ utm_source: z8.string().max(255).optional(),
298
+ utm_medium: z8.string().max(255).optional(),
299
+ utm_campaign: z8.string().max(255).optional(),
300
+ utm_term: z8.string().max(255).optional(),
301
+ utm_content: z8.string().max(255).optional(),
302
+ password: z8.string().min(4).max(100).optional(),
303
+ starts_at: z8.coerce.date().optional(),
304
+ expires_at: z8.coerce.date().optional(),
305
+ fallback_url: z8.string().url().max(2048).optional(),
306
+ redirect_type: z8.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
226
307
  qr_code_settings: QrCodeSettingsSchema.nullable().optional(),
227
- tag_ids: z7.array(z7.string().uuid()).optional()
228
- });
229
- var UpdateLinkInputSchema = z7.object({
230
- original_url: z7.string().url().max(2048).optional(),
231
- domain_id: z7.string().uuid().optional(),
232
- short_code: z7.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
233
- title: z7.string().max(255).nullable().optional(),
234
- description: z7.string().max(2e3).nullable().optional(),
235
- utm_source: z7.string().max(255).nullable().optional(),
236
- utm_medium: z7.string().max(255).nullable().optional(),
237
- utm_campaign: z7.string().max(255).nullable().optional(),
238
- utm_term: z7.string().max(255).nullable().optional(),
239
- utm_content: z7.string().max(255).nullable().optional(),
240
- password: z7.string().min(4).max(100).nullable().optional(),
241
- starts_at: z7.coerce.date().nullable().optional(),
242
- expires_at: z7.coerce.date().nullable().optional(),
243
- fallback_url: z7.string().url().max(2048).nullable().optional(),
244
- is_active: z7.boolean().optional(),
245
- redirect_type: z7.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
308
+ tag_ids: z8.array(z8.string().uuid()).optional(),
309
+ link_type: z8.enum(["redirect", "rules"]).optional(),
310
+ rule_graph: RuleGraphSchema.optional()
311
+ }).refine((data) => data.link_type !== "rules" || data.rule_graph != null, {
312
+ message: 'rule_graph is required when link_type is "rules"',
313
+ path: ["rule_graph"]
314
+ });
315
+ var UpdateLinkInputSchema = z8.object({
316
+ original_url: z8.string().url().max(2048).optional(),
317
+ domain_id: z8.string().uuid().optional(),
318
+ short_code: z8.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
319
+ title: z8.string().max(255).nullable().optional(),
320
+ description: z8.string().max(2e3).nullable().optional(),
321
+ utm_source: z8.string().max(255).nullable().optional(),
322
+ utm_medium: z8.string().max(255).nullable().optional(),
323
+ utm_campaign: z8.string().max(255).nullable().optional(),
324
+ utm_term: z8.string().max(255).nullable().optional(),
325
+ utm_content: z8.string().max(255).nullable().optional(),
326
+ password: z8.string().min(4).max(100).nullable().optional(),
327
+ starts_at: z8.coerce.date().nullable().optional(),
328
+ expires_at: z8.coerce.date().nullable().optional(),
329
+ fallback_url: z8.string().url().max(2048).nullable().optional(),
330
+ is_active: z8.boolean().optional(),
331
+ redirect_type: z8.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
246
332
  qr_code_settings: QrCodeSettingsSchema.nullable().optional(),
247
- tag_ids: z7.array(z7.string().uuid()).optional()
248
- });
249
- var stringToBoolean = z7.union([z7.boolean(), z7.enum(["true", "false"])]).transform((val) => typeof val === "string" ? val === "true" : val);
250
- var LinkFiltersSchema = z7.object({
251
- search: z7.string().optional(),
252
- domain_ids: z7.array(z7.string().uuid()).optional(),
333
+ tag_ids: z8.array(z8.string().uuid()).optional(),
334
+ link_type: z8.enum(["redirect", "rules"]).optional(),
335
+ rule_graph: RuleGraphSchema.optional()
336
+ }).refine((data) => data.link_type !== "rules" || data.rule_graph != null, {
337
+ message: 'rule_graph is required when link_type is "rules"',
338
+ path: ["rule_graph"]
339
+ });
340
+ var stringToBoolean = z8.union([z8.boolean(), z8.enum(["true", "false"])]).transform((val) => typeof val === "string" ? val === "true" : val);
341
+ var LinkFiltersSchema = z8.object({
342
+ search: z8.string().optional(),
343
+ domain_ids: z8.array(z8.string().uuid()).optional(),
253
344
  is_active: stringToBoolean.optional(),
254
345
  has_expiration: stringToBoolean.optional(),
255
346
  expired: stringToBoolean.optional(),
256
- created_from: z7.coerce.date().optional(),
257
- created_to: z7.coerce.date().optional(),
258
- expires_from: z7.coerce.date().optional(),
259
- expires_to: z7.coerce.date().optional(),
260
- tag_ids: z7.array(z7.string().uuid()).optional(),
261
- sort_by: z7.enum(["created_at", "title", "click_count", "original_url"]).default("created_at"),
262
- sort_order: z7.enum(["asc", "desc"]).default("desc"),
263
- page: z7.coerce.number().int().min(1).default(1),
264
- per_page: z7.coerce.number().int().min(1).max(100).default(20)
265
- });
266
- var PaginatedLinksSchema = z7.object({
267
- links: z7.array(LinkSchema),
268
- total: z7.number().int(),
269
- page: z7.number().int(),
270
- per_page: z7.number().int(),
271
- total_pages: z7.number().int()
272
- });
273
- var LinkJobSchema = z7.object({
274
- id: z7.string().uuid(),
275
- workspace_id: z7.string().uuid(),
276
- type: z7.string(),
277
- status: z7.enum(["pending", "processing", "completed", "failed"]),
278
- total_rows: z7.number().int(),
279
- succeeded_count: z7.number().int(),
280
- failed_count: z7.number().int(),
281
- error: z7.string().nullable(),
282
- created_by_id: z7.string().uuid(),
283
- created_at: z7.date(),
284
- completed_at: z7.date().nullable()
285
- });
286
- var LinkJobIdParamSchema = z7.object({
287
- workspace_id: z7.string().uuid(),
288
- job_id: z7.string().uuid()
289
- });
290
-
291
- // src/users.schema.ts
292
- import { z as z8 } from "zod";
293
- var UserSchema = z8.object({
347
+ created_from: z8.coerce.date().optional(),
348
+ created_to: z8.coerce.date().optional(),
349
+ expires_from: z8.coerce.date().optional(),
350
+ expires_to: z8.coerce.date().optional(),
351
+ tag_ids: z8.array(z8.string().uuid()).optional(),
352
+ sort_by: z8.enum(["created_at", "title", "click_count", "original_url"]).default("created_at"),
353
+ sort_order: z8.enum(["asc", "desc"]).default("desc"),
354
+ page: z8.coerce.number().int().min(1).default(1),
355
+ per_page: z8.coerce.number().int().min(1).max(100).default(20)
356
+ });
357
+ var PaginatedLinksSchema = z8.object({
358
+ links: z8.array(LinkSchema),
359
+ total: z8.number().int(),
360
+ page: z8.number().int(),
361
+ per_page: z8.number().int(),
362
+ total_pages: z8.number().int()
363
+ });
364
+ var LinkJobSchema = z8.object({
294
365
  id: z8.string().uuid(),
295
- external_id: z8.string(),
296
- email: z8.string().email(),
297
- email_verified_at: z8.coerce.date().nullable(),
298
- first_name: z8.string().nullable(),
299
- last_name: z8.string().nullable(),
300
- created_at: z8.coerce.date(),
301
- updated_at: z8.coerce.date().nullable()
302
- });
303
- var SignInInputSchema = z8.object({
304
- first_name: z8.string().min(1).max(100).optional(),
305
- last_name: z8.string().min(1).max(100).optional()
306
- });
307
- var UpdateUserInputSchema = z8.object({
308
- first_name: z8.string().min(1).max(100).optional(),
309
- last_name: z8.string().min(1).max(100).optional()
366
+ workspace_id: z8.string().uuid(),
367
+ type: z8.string(),
368
+ status: z8.enum(["pending", "processing", "completed", "failed"]),
369
+ total_rows: z8.number().int(),
370
+ succeeded_count: z8.number().int(),
371
+ failed_count: z8.number().int(),
372
+ error: z8.string().nullable(),
373
+ created_by_id: z8.string().uuid(),
374
+ created_at: z8.date(),
375
+ completed_at: z8.date().nullable()
376
+ });
377
+ var LinkJobIdParamSchema = z8.object({
378
+ workspace_id: z8.string().uuid(),
379
+ job_id: z8.string().uuid()
310
380
  });
311
381
 
312
- // src/workspaces.schema.ts
382
+ // src/users.schema.ts
313
383
  import { z as z9 } from "zod";
314
- var WorkspaceSchema = z9.object({
384
+ var UserSchema = z9.object({
315
385
  id: z9.string().uuid(),
316
- name: z9.string(),
317
- billing_plan: z9.string(),
318
- billing_status: z9.string(),
319
- billing_email: z9.string().nullable(),
320
- billing_current_period_end: z9.coerce.date().nullable(),
321
- billing_cancel_at_period_end: z9.boolean(),
386
+ external_id: z9.string(),
387
+ email: z9.string().email(),
388
+ email_verified_at: z9.coerce.date().nullable(),
389
+ first_name: z9.string().nullable(),
390
+ last_name: z9.string().nullable(),
322
391
  created_at: z9.coerce.date(),
323
392
  updated_at: z9.coerce.date().nullable()
324
393
  });
325
- var WorkspaceWithCountSchema = WorkspaceSchema.extend({
326
- member_count: z9.number().int()
327
- });
328
- var CreateWorkspaceInputSchema = z9.object({
329
- name: z9.string().min(1).max(100)
394
+ var SignInInputSchema = z9.object({
395
+ first_name: z9.string().min(1).max(100).optional(),
396
+ last_name: z9.string().min(1).max(100).optional()
330
397
  });
331
- var UpdateWorkspaceInputSchema = z9.object({
332
- name: z9.string().min(1).max(100).optional(),
333
- billing_email: z9.string().email().nullish()
398
+ var UpdateUserInputSchema = z9.object({
399
+ first_name: z9.string().min(1).max(100).optional(),
400
+ last_name: z9.string().min(1).max(100).optional()
334
401
  });
335
- var TransferOwnershipInputSchema = z9.object({
336
- to_user_id: z9.string().uuid()
402
+
403
+ // src/workspaces.schema.ts
404
+ import { z as z10 } from "zod";
405
+ var WorkspaceSchema = z10.object({
406
+ id: z10.string().uuid(),
407
+ name: z10.string(),
408
+ billing_plan: z10.string(),
409
+ billing_status: z10.string(),
410
+ billing_email: z10.string().nullable(),
411
+ billing_current_period_end: z10.coerce.date().nullable(),
412
+ billing_cancel_at_period_end: z10.boolean(),
413
+ created_at: z10.coerce.date(),
414
+ updated_at: z10.coerce.date().nullable()
337
415
  });
338
- var WorkspaceMemberUserSchema = z9.object({
339
- id: z9.string().uuid(),
340
- email: z9.string().email(),
341
- first_name: z9.string().nullable(),
342
- last_name: z9.string().nullable()
416
+ var WorkspaceWithCountSchema = WorkspaceSchema.extend({
417
+ member_count: z10.number().int()
343
418
  });
344
- var WorkspaceMemberSchema = z9.object({
345
- id: z9.string().uuid(),
346
- workspace_id: z9.string().uuid(),
347
- user_id: z9.string().uuid(),
348
- user: WorkspaceMemberUserSchema,
349
- permissions: z9.number().int(),
350
- joined_at: z9.coerce.date(),
351
- created_at: z9.coerce.date(),
352
- updated_at: z9.coerce.date().nullable()
419
+ var CreateWorkspaceInputSchema = z10.object({
420
+ name: z10.string().min(1).max(100)
353
421
  });
354
- var UpdateMemberInputSchema = z9.object({
355
- permissions: z9.number().int().min(1)
422
+ var UpdateWorkspaceInputSchema = z10.object({
423
+ name: z10.string().min(1).max(100).optional(),
424
+ billing_email: z10.string().email().nullish()
356
425
  });
357
- var WorkspaceInvitationSchema = z9.object({
358
- id: z9.string().uuid(),
359
- workspace_id: z9.string().uuid(),
360
- email: z9.string().email(),
361
- token: z9.string(),
362
- permissions: z9.number().int(),
363
- invited_by_id: z9.string().uuid(),
364
- expires_at: z9.coerce.date(),
365
- created_at: z9.coerce.date()
426
+ var TransferOwnershipInputSchema = z10.object({
427
+ to_user_id: z10.string().uuid()
366
428
  });
367
- var CreateInvitationInputSchema = z9.object({
368
- email: z9.string().email(),
369
- permissions: z9.number().int().min(1)
429
+ var WorkspaceMemberUserSchema = z10.object({
430
+ id: z10.string().uuid(),
431
+ email: z10.string().email(),
432
+ first_name: z10.string().nullable(),
433
+ last_name: z10.string().nullable()
370
434
  });
371
- var WorkspaceRoleSchema = z9.object({
372
- name: z9.string(),
373
- description: z9.string(),
374
- permissions: z9.number().int()
435
+ var WorkspaceMemberSchema = z10.object({
436
+ id: z10.string().uuid(),
437
+ workspace_id: z10.string().uuid(),
438
+ user_id: z10.string().uuid(),
439
+ user: WorkspaceMemberUserSchema,
440
+ permissions: z10.number().int(),
441
+ joined_at: z10.coerce.date(),
442
+ created_at: z10.coerce.date(),
443
+ updated_at: z10.coerce.date().nullable()
444
+ });
445
+ var UpdateMemberInputSchema = z10.object({
446
+ permissions: z10.number().int().min(1)
447
+ });
448
+ var WorkspaceInvitationSchema = z10.object({
449
+ id: z10.string().uuid(),
450
+ workspace_id: z10.string().uuid(),
451
+ email: z10.string().email(),
452
+ token: z10.string(),
453
+ permissions: z10.number().int(),
454
+ invited_by_id: z10.string().uuid(),
455
+ expires_at: z10.coerce.date(),
456
+ created_at: z10.coerce.date()
457
+ });
458
+ var CreateInvitationInputSchema = z10.object({
459
+ email: z10.string().email(),
460
+ permissions: z10.number().int().min(1)
461
+ });
462
+ var WorkspaceRoleSchema = z10.object({
463
+ name: z10.string(),
464
+ description: z10.string(),
465
+ permissions: z10.number().int()
375
466
  });
376
467
 
377
468
  // src/index.ts
@@ -380,32 +471,32 @@ var analyticsContract = {
380
471
  link: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/analytics" }).input(LinkIdParamSchema.merge(AnalyticsQuerySchema)).output(AnalyticsOutputSchema)
381
472
  };
382
473
  var usersContract = {
383
- me: oc.route({ method: "GET", path: "/api/users/me" }).output(z10.object({ user: UserSchema })),
384
- signIn: oc.route({ method: "POST", path: "/api/users" }).input(SignInInputSchema).output(z10.object({ user: UserSchema, status: z10.enum(["created", "existing"]) })),
385
- update: oc.route({ method: "PATCH", path: "/api/users/me" }).input(UpdateUserInputSchema).output(z10.object({ user: UserSchema }))
474
+ me: oc.route({ method: "GET", path: "/api/users/me" }).output(z11.object({ user: UserSchema })),
475
+ signIn: oc.route({ method: "POST", path: "/api/users" }).input(SignInInputSchema).output(z11.object({ user: UserSchema, status: z11.enum(["created", "existing"]) })),
476
+ update: oc.route({ method: "PATCH", path: "/api/users/me" }).input(UpdateUserInputSchema).output(z11.object({ user: UserSchema }))
386
477
  };
387
478
  var apiKeysContract = {
388
479
  create: oc.route({ method: "POST", path: "/api/api-keys" }).input(CreateApiKeyInputSchema).output(CreateApiKeyResponseSchema),
389
- list: oc.route({ method: "GET", path: "/api/api-keys" }).output(z10.array(ApiKeySchema)),
390
- delete: oc.route({ method: "DELETE", path: "/api/api-keys/{api_key_id}" }).input(ApiKeyIdParamSchema).output(z10.void())
480
+ list: oc.route({ method: "GET", path: "/api/api-keys" }).output(z11.array(ApiKeySchema)),
481
+ delete: oc.route({ method: "DELETE", path: "/api/api-keys/{api_key_id}" }).input(ApiKeyIdParamSchema).output(z11.void())
391
482
  };
392
483
  var workspacesContract = {
393
484
  create: oc.route({ method: "POST", path: "/api/workspaces" }).input(CreateWorkspaceInputSchema).output(WorkspaceSchema),
394
- list: oc.route({ method: "GET", path: "/api/workspaces" }).output(z10.array(WorkspaceWithCountSchema)),
485
+ list: oc.route({ method: "GET", path: "/api/workspaces" }).output(z11.array(WorkspaceWithCountSchema)),
395
486
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(WorkspaceWithCountSchema),
396
487
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema.merge(UpdateWorkspaceInputSchema)).output(WorkspaceSchema),
397
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(z10.void()),
398
- transfer: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/transfer" }).input(WorkspaceIdParamSchema.merge(TransferOwnershipInputSchema)).output(z10.void()),
488
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(z11.void()),
489
+ transfer: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/transfer" }).input(WorkspaceIdParamSchema.merge(TransferOwnershipInputSchema)).output(z11.void()),
399
490
  // Roles
400
- listRoles: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/roles" }).input(WorkspaceIdParamSchema).output(z10.array(WorkspaceRoleSchema)),
491
+ listRoles: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/roles" }).input(WorkspaceIdParamSchema).output(z11.array(WorkspaceRoleSchema)),
401
492
  // Members
402
- listMembers: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/members" }).input(WorkspaceIdParamSchema).output(z10.array(WorkspaceMemberSchema)),
493
+ listMembers: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/members" }).input(WorkspaceIdParamSchema).output(z11.array(WorkspaceMemberSchema)),
403
494
  updateMember: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema.merge(UpdateMemberInputSchema)).output(WorkspaceMemberSchema),
404
- removeMember: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema).output(z10.void()),
495
+ removeMember: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema).output(z11.void()),
405
496
  // Invitations
406
- listInvitations: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema).output(z10.array(WorkspaceInvitationSchema)),
497
+ listInvitations: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema).output(z11.array(WorkspaceInvitationSchema)),
407
498
  createInvitation: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema.merge(CreateInvitationInputSchema)).output(WorkspaceInvitationSchema),
408
- revokeInvitation: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/invitations/{invitation_id}" }).input(InvitationIdParamSchema).output(z10.void())
499
+ revokeInvitation: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/invitations/{invitation_id}" }).input(InvitationIdParamSchema).output(z11.void())
409
500
  };
410
501
  var invitationsContract = {
411
502
  get: oc.route({ method: "GET", path: "/api/invitations/{token}" }).input(TokenParamSchema).output(WorkspaceInvitationSchema),
@@ -416,25 +507,25 @@ var linksContract = {
416
507
  list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links" }).input(WorkspaceIdParamSchema.merge(LinkFiltersSchema)).output(PaginatedLinksSchema),
417
508
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(LinkSchema),
418
509
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema.merge(UpdateLinkInputSchema)).output(LinkSchema),
419
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(z10.void()),
420
- edgeSync: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/sync" }).input(LinkIdParamSchema).output(z10.void()),
421
- edgeStatus: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/status" }).input(LinkIdParamSchema).output(z10.object({ synced: z10.boolean() })),
510
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(z11.void()),
511
+ edgeSync: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/sync" }).input(LinkIdParamSchema).output(z11.void()),
512
+ edgeStatus: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/status" }).input(LinkIdParamSchema).output(z11.object({ synced: z11.boolean() })),
422
513
  getJob: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/jobs/{job_id}" }).input(LinkJobIdParamSchema).output(LinkJobSchema),
423
- jobResults: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/jobs/{job_id}/results" }).input(LinkJobIdParamSchema).output(z10.object({ url: z10.string() }))
514
+ jobResults: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/jobs/{job_id}/results" }).input(LinkJobIdParamSchema).output(z11.object({ url: z11.string() }))
424
515
  };
425
516
  var tagsContract = {
426
517
  create: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema.merge(CreateTagInputSchema)).output(TagSchema),
427
- list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema).output(z10.array(TagSchema)),
518
+ list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema).output(z11.array(TagSchema)),
428
519
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(TagSchema),
429
520
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema.merge(UpdateTagInputSchema)).output(TagSchema),
430
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(z10.void())
521
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(z11.void())
431
522
  };
432
523
  var domainsContract = {
433
524
  create: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema.merge(CreateDomainInputSchema)).output(DomainSchema),
434
- list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema).output(z10.array(DomainSchema)),
525
+ list: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema).output(z11.array(DomainSchema)),
435
526
  get: oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(DomainSchema),
436
527
  update: oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema.merge(UpdateDomainInputSchema)).output(DomainSchema),
437
- delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(z10.void()),
528
+ delete: oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(z11.void()),
438
529
  verify: oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/domains/{domain_id}/verify" }).input(DomainIdParamSchema).output(DomainSchema)
439
530
  };
440
531
  var billingContract = {
@@ -483,6 +574,8 @@ export {
483
574
  MemberIdParamSchema,
484
575
  PaginatedLinksSchema,
485
576
  QrCodeSettingsSchema,
577
+ RuleGraphNodeSchema,
578
+ RuleGraphSchema,
486
579
  SignInInputSchema,
487
580
  TagIdParamSchema,
488
581
  TagSchema,