@middlewr/contracts 0.0.26 → 0.0.28

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/cjs/index.js CHANGED
@@ -43,10 +43,14 @@ __export(index_exports, {
43
43
  LinkAnalyticsQuerySchema: () => LinkAnalyticsQuerySchema,
44
44
  LinkFiltersSchema: () => LinkFiltersSchema,
45
45
  LinkIdParamSchema: () => LinkIdParamSchema,
46
+ LinkJobIdParamSchema: () => LinkJobIdParamSchema,
47
+ LinkJobSchema: () => LinkJobSchema,
46
48
  LinkSchema: () => LinkSchema,
47
49
  MemberIdParamSchema: () => MemberIdParamSchema,
48
50
  PaginatedLinksSchema: () => PaginatedLinksSchema,
49
51
  QrCodeSettingsSchema: () => QrCodeSettingsSchema,
52
+ RuleGraphNodeSchema: () => RuleGraphNodeSchema,
53
+ RuleGraphSchema: () => RuleGraphSchema,
50
54
  SignInInputSchema: () => SignInInputSchema,
51
55
  TagIdParamSchema: () => TagIdParamSchema,
52
56
  TagSchema: () => TagSchema,
@@ -81,7 +85,7 @@ __export(index_exports, {
81
85
  });
82
86
  module.exports = __toCommonJS(index_exports);
83
87
  var import_contract = require("@orpc/contract");
84
- var import_zod10 = require("zod");
88
+ var import_zod11 = require("zod");
85
89
 
86
90
  // src/analytics.schema.ts
87
91
  var import_zod = require("zod");
@@ -225,217 +229,294 @@ var UpdateDomainInputSchema = import_zod5.z.object({
225
229
  });
226
230
 
227
231
  // src/links.schema.ts
228
- var import_zod7 = require("zod");
232
+ var import_zod8 = require("zod");
229
233
 
230
- // src/tags.schema.ts
234
+ // src/rules.schema.ts
231
235
  var import_zod6 = require("zod");
232
- var TagSchema = import_zod6.z.object({
233
- id: import_zod6.z.string().uuid(),
234
- workspace_id: import_zod6.z.string().uuid(),
235
- name: import_zod6.z.string(),
236
- color: import_zod6.z.string().nullable(),
237
- created_at: import_zod6.z.coerce.date(),
238
- updated_at: import_zod6.z.coerce.date().nullable()
239
- });
240
- var CreateTagInputSchema = import_zod6.z.object({
241
- name: import_zod6.z.string().min(1).max(50),
242
- color: import_zod6.z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
243
- });
244
- var UpdateTagInputSchema = import_zod6.z.object({
245
- name: import_zod6.z.string().min(1).max(50).optional(),
246
- color: import_zod6.z.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
236
+ var RULE_OPERATORS = ["eq", "neq", "in", "not_in", "contains", "not_contains", "gt", "lt", "gte", "lte", "regex"];
237
+ var VALID_FIELD_PREFIXES = ["cf.", "request.", "edge.", "time."];
238
+ var PositionSchema = import_zod6.z.object({
239
+ x: import_zod6.z.number(),
240
+ y: import_zod6.z.number()
241
+ });
242
+ var ConditionNodeSchema = import_zod6.z.object({
243
+ id: import_zod6.z.string(),
244
+ type: import_zod6.z.literal("condition"),
245
+ position: PositionSchema,
246
+ field: import_zod6.z.string().refine((f) => VALID_FIELD_PREFIXES.some((p) => f.startsWith(p)), {
247
+ message: "Field must start with cf., request., edge., or time."
248
+ }),
249
+ operator: import_zod6.z.enum(RULE_OPERATORS),
250
+ value: import_zod6.z.union([import_zod6.z.string(), import_zod6.z.array(import_zod6.z.string()), import_zod6.z.number()]),
251
+ outputs: import_zod6.z.object({
252
+ true: import_zod6.z.string().nullable(),
253
+ false: import_zod6.z.string().nullable()
254
+ })
255
+ });
256
+ var SplitNodeSchema = import_zod6.z.object({
257
+ id: import_zod6.z.string(),
258
+ type: import_zod6.z.literal("split"),
259
+ position: PositionSchema,
260
+ variants: import_zod6.z.array(
261
+ import_zod6.z.object({
262
+ weight: import_zod6.z.number().min(1).max(100),
263
+ target: import_zod6.z.string().nullable()
264
+ })
265
+ ).min(2)
266
+ });
267
+ var DestinationNodeSchema = import_zod6.z.object({
268
+ id: import_zod6.z.string(),
269
+ type: import_zod6.z.literal("destination"),
270
+ position: PositionSchema,
271
+ url: import_zod6.z.string().url()
272
+ });
273
+ var RuleGraphNodeSchema = import_zod6.z.discriminatedUnion("type", [ConditionNodeSchema, SplitNodeSchema, DestinationNodeSchema]);
274
+ var RuleGraphSchema = import_zod6.z.object({
275
+ entry: import_zod6.z.string(),
276
+ nodes: import_zod6.z.record(import_zod6.z.string(), RuleGraphNodeSchema)
277
+ }).refine((data) => data.nodes[data.entry] !== void 0, {
278
+ message: "Entry node must reference an existing node in the graph",
279
+ path: ["entry"]
280
+ }).nullable();
281
+
282
+ // src/tags.schema.ts
283
+ var import_zod7 = require("zod");
284
+ var TagSchema = import_zod7.z.object({
285
+ id: import_zod7.z.string().uuid(),
286
+ workspace_id: import_zod7.z.string().uuid(),
287
+ name: import_zod7.z.string(),
288
+ color: import_zod7.z.string().nullable(),
289
+ created_at: import_zod7.z.coerce.date(),
290
+ updated_at: import_zod7.z.coerce.date().nullable()
291
+ });
292
+ var CreateTagInputSchema = import_zod7.z.object({
293
+ name: import_zod7.z.string().min(1).max(50),
294
+ color: import_zod7.z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional()
295
+ });
296
+ var UpdateTagInputSchema = import_zod7.z.object({
297
+ name: import_zod7.z.string().min(1).max(50).optional(),
298
+ color: import_zod7.z.string().regex(/^#[0-9A-Fa-f]{6}$/).nullable().optional()
247
299
  });
248
300
 
249
301
  // src/links.schema.ts
250
- var DotStyleSchema = import_zod7.z.enum(["square", "dots", "rounded", "classy", "classy-rounded", "extra-rounded"]);
251
- var EyeOuterStyleSchema = import_zod7.z.enum(["square", "dot", "extra-rounded"]);
252
- var EyeInnerStyleSchema = import_zod7.z.enum(["square", "dot"]);
253
- var QrCodeSettingsSchema = import_zod7.z.object({
254
- fg_color: import_zod7.z.string().max(20),
255
- bg_color: import_zod7.z.string().max(20),
302
+ var DotStyleSchema = import_zod8.z.enum(["square", "dots", "rounded", "classy", "classy-rounded", "extra-rounded"]);
303
+ var EyeOuterStyleSchema = import_zod8.z.enum(["square", "dot", "extra-rounded"]);
304
+ var EyeInnerStyleSchema = import_zod8.z.enum(["square", "dot"]);
305
+ var QrCodeSettingsSchema = import_zod8.z.object({
306
+ fg_color: import_zod8.z.string().max(20),
307
+ bg_color: import_zod8.z.string().max(20),
256
308
  dot_style: DotStyleSchema,
257
309
  eye_outer_style: EyeOuterStyleSchema,
258
310
  eye_inner_style: EyeInnerStyleSchema,
259
- frame_enabled: import_zod7.z.boolean(),
260
- frame_text: import_zod7.z.string().max(255),
261
- frame_color: import_zod7.z.string().max(20),
262
- frame_text_color: import_zod7.z.string().max(20)
311
+ frame_enabled: import_zod8.z.boolean(),
312
+ frame_text: import_zod8.z.string().max(255),
313
+ frame_color: import_zod8.z.string().max(20),
314
+ frame_text_color: import_zod8.z.string().max(20)
263
315
  });
264
- var LinkSchema = import_zod7.z.object({
265
- id: import_zod7.z.string().uuid(),
266
- workspace_id: import_zod7.z.string().uuid(),
267
- domain_id: import_zod7.z.string().uuid(),
268
- created_by_id: import_zod7.z.string().uuid(),
269
- original_url: import_zod7.z.string().url(),
270
- short_code: import_zod7.z.string(),
271
- title: import_zod7.z.string().nullable(),
272
- description: import_zod7.z.string().nullable(),
273
- utm_source: import_zod7.z.string().nullable(),
274
- utm_medium: import_zod7.z.string().nullable(),
275
- utm_campaign: import_zod7.z.string().nullable(),
276
- utm_term: import_zod7.z.string().nullable(),
277
- utm_content: import_zod7.z.string().nullable(),
278
- password: import_zod7.z.string().nullable(),
279
- starts_at: import_zod7.z.coerce.date().nullable(),
280
- expires_at: import_zod7.z.coerce.date().nullable(),
281
- fallback_url: import_zod7.z.string().nullable(),
282
- is_active: import_zod7.z.boolean(),
283
- redirect_type: import_zod7.z.number().int(),
284
- click_count: import_zod7.z.coerce.number().int(),
285
- click_count_updated_at: import_zod7.z.coerce.date().nullable(),
286
- created_at: import_zod7.z.coerce.date(),
287
- updated_at: import_zod7.z.coerce.date().nullable(),
316
+ var LinkSchema = import_zod8.z.object({
317
+ id: import_zod8.z.string().uuid(),
318
+ workspace_id: import_zod8.z.string().uuid(),
319
+ domain_id: import_zod8.z.string().uuid(),
320
+ created_by_id: import_zod8.z.string().uuid(),
321
+ original_url: import_zod8.z.string().url(),
322
+ short_code: import_zod8.z.string(),
323
+ title: import_zod8.z.string().nullable(),
324
+ description: import_zod8.z.string().nullable(),
325
+ utm_source: import_zod8.z.string().nullable(),
326
+ utm_medium: import_zod8.z.string().nullable(),
327
+ utm_campaign: import_zod8.z.string().nullable(),
328
+ utm_term: import_zod8.z.string().nullable(),
329
+ utm_content: import_zod8.z.string().nullable(),
330
+ password: import_zod8.z.string().nullable(),
331
+ starts_at: import_zod8.z.coerce.date().nullable(),
332
+ expires_at: import_zod8.z.coerce.date().nullable(),
333
+ fallback_url: import_zod8.z.string().nullable(),
334
+ is_active: import_zod8.z.boolean(),
335
+ redirect_type: import_zod8.z.number().int(),
336
+ click_count: import_zod8.z.coerce.number().int(),
337
+ click_count_updated_at: import_zod8.z.coerce.date().nullable(),
338
+ created_at: import_zod8.z.coerce.date(),
339
+ updated_at: import_zod8.z.coerce.date().nullable(),
288
340
  qr_code_settings: QrCodeSettingsSchema.nullable(),
289
- tags: import_zod7.z.array(TagSchema)
290
- });
291
- var CreateLinkInputSchema = import_zod7.z.object({
292
- original_url: import_zod7.z.string().url().max(2048),
293
- domain_id: import_zod7.z.string().uuid().optional(),
294
- short_code: import_zod7.z.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
295
- title: import_zod7.z.string().max(255).optional(),
296
- description: import_zod7.z.string().max(2e3).optional(),
297
- utm_source: import_zod7.z.string().max(255).optional(),
298
- utm_medium: import_zod7.z.string().max(255).optional(),
299
- utm_campaign: import_zod7.z.string().max(255).optional(),
300
- utm_term: import_zod7.z.string().max(255).optional(),
301
- utm_content: import_zod7.z.string().max(255).optional(),
302
- password: import_zod7.z.string().min(4).max(100).optional(),
303
- starts_at: import_zod7.z.coerce.date().optional(),
304
- expires_at: import_zod7.z.coerce.date().optional(),
305
- fallback_url: import_zod7.z.string().url().max(2048).optional(),
306
- redirect_type: import_zod7.z.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
341
+ link_type: import_zod8.z.enum(["redirect", "rules"]).default("redirect"),
342
+ rule_graph: RuleGraphSchema.optional(),
343
+ tags: import_zod8.z.array(TagSchema)
344
+ });
345
+ var CreateLinkInputSchema = import_zod8.z.object({
346
+ original_url: import_zod8.z.string().url().max(2048),
347
+ domain_id: import_zod8.z.string().uuid().optional(),
348
+ short_code: import_zod8.z.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
349
+ title: import_zod8.z.string().max(255).optional(),
350
+ description: import_zod8.z.string().max(2e3).optional(),
351
+ utm_source: import_zod8.z.string().max(255).optional(),
352
+ utm_medium: import_zod8.z.string().max(255).optional(),
353
+ utm_campaign: import_zod8.z.string().max(255).optional(),
354
+ utm_term: import_zod8.z.string().max(255).optional(),
355
+ utm_content: import_zod8.z.string().max(255).optional(),
356
+ password: import_zod8.z.string().min(4).max(100).optional(),
357
+ starts_at: import_zod8.z.coerce.date().optional(),
358
+ expires_at: import_zod8.z.coerce.date().optional(),
359
+ fallback_url: import_zod8.z.string().url().max(2048).optional(),
360
+ redirect_type: import_zod8.z.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
307
361
  qr_code_settings: QrCodeSettingsSchema.nullable().optional(),
308
- tag_ids: import_zod7.z.array(import_zod7.z.string().uuid()).optional()
309
- });
310
- var UpdateLinkInputSchema = import_zod7.z.object({
311
- original_url: import_zod7.z.string().url().max(2048).optional(),
312
- domain_id: import_zod7.z.string().uuid().optional(),
313
- short_code: import_zod7.z.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
314
- title: import_zod7.z.string().max(255).nullable().optional(),
315
- description: import_zod7.z.string().max(2e3).nullable().optional(),
316
- utm_source: import_zod7.z.string().max(255).nullable().optional(),
317
- utm_medium: import_zod7.z.string().max(255).nullable().optional(),
318
- utm_campaign: import_zod7.z.string().max(255).nullable().optional(),
319
- utm_term: import_zod7.z.string().max(255).nullable().optional(),
320
- utm_content: import_zod7.z.string().max(255).nullable().optional(),
321
- password: import_zod7.z.string().min(4).max(100).nullable().optional(),
322
- starts_at: import_zod7.z.coerce.date().nullable().optional(),
323
- expires_at: import_zod7.z.coerce.date().nullable().optional(),
324
- fallback_url: import_zod7.z.string().url().max(2048).nullable().optional(),
325
- is_active: import_zod7.z.boolean().optional(),
326
- redirect_type: import_zod7.z.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
362
+ tag_ids: import_zod8.z.array(import_zod8.z.string().uuid()).optional(),
363
+ link_type: import_zod8.z.enum(["redirect", "rules"]).optional(),
364
+ rule_graph: RuleGraphSchema.optional()
365
+ }).refine((data) => data.link_type !== "rules" || data.rule_graph != null, {
366
+ message: 'rule_graph is required when link_type is "rules"',
367
+ path: ["rule_graph"]
368
+ });
369
+ var UpdateLinkInputSchema = import_zod8.z.object({
370
+ original_url: import_zod8.z.string().url().max(2048).optional(),
371
+ domain_id: import_zod8.z.string().uuid().optional(),
372
+ short_code: import_zod8.z.string().min(3).max(50).regex(/^[a-zA-Z0-9-]+$/).optional(),
373
+ title: import_zod8.z.string().max(255).nullable().optional(),
374
+ description: import_zod8.z.string().max(2e3).nullable().optional(),
375
+ utm_source: import_zod8.z.string().max(255).nullable().optional(),
376
+ utm_medium: import_zod8.z.string().max(255).nullable().optional(),
377
+ utm_campaign: import_zod8.z.string().max(255).nullable().optional(),
378
+ utm_term: import_zod8.z.string().max(255).nullable().optional(),
379
+ utm_content: import_zod8.z.string().max(255).nullable().optional(),
380
+ password: import_zod8.z.string().min(4).max(100).nullable().optional(),
381
+ starts_at: import_zod8.z.coerce.date().nullable().optional(),
382
+ expires_at: import_zod8.z.coerce.date().nullable().optional(),
383
+ fallback_url: import_zod8.z.string().url().max(2048).nullable().optional(),
384
+ is_active: import_zod8.z.boolean().optional(),
385
+ redirect_type: import_zod8.z.coerce.number().refine((v) => [301, 302, 307, 308].includes(v)).optional(),
327
386
  qr_code_settings: QrCodeSettingsSchema.nullable().optional(),
328
- tag_ids: import_zod7.z.array(import_zod7.z.string().uuid()).optional()
329
- });
330
- var stringToBoolean = import_zod7.z.union([import_zod7.z.boolean(), import_zod7.z.enum(["true", "false"])]).transform((val) => typeof val === "string" ? val === "true" : val);
331
- var LinkFiltersSchema = import_zod7.z.object({
332
- search: import_zod7.z.string().optional(),
333
- domain_ids: import_zod7.z.array(import_zod7.z.string().uuid()).optional(),
387
+ tag_ids: import_zod8.z.array(import_zod8.z.string().uuid()).optional(),
388
+ link_type: import_zod8.z.enum(["redirect", "rules"]).optional(),
389
+ rule_graph: RuleGraphSchema.optional()
390
+ }).refine((data) => data.link_type !== "rules" || data.rule_graph != null, {
391
+ message: 'rule_graph is required when link_type is "rules"',
392
+ path: ["rule_graph"]
393
+ });
394
+ var stringToBoolean = import_zod8.z.union([import_zod8.z.boolean(), import_zod8.z.enum(["true", "false"])]).transform((val) => typeof val === "string" ? val === "true" : val);
395
+ var LinkFiltersSchema = import_zod8.z.object({
396
+ search: import_zod8.z.string().optional(),
397
+ domain_ids: import_zod8.z.array(import_zod8.z.string().uuid()).optional(),
334
398
  is_active: stringToBoolean.optional(),
335
399
  has_expiration: stringToBoolean.optional(),
336
400
  expired: stringToBoolean.optional(),
337
- created_from: import_zod7.z.coerce.date().optional(),
338
- created_to: import_zod7.z.coerce.date().optional(),
339
- expires_from: import_zod7.z.coerce.date().optional(),
340
- expires_to: import_zod7.z.coerce.date().optional(),
341
- tag_ids: import_zod7.z.array(import_zod7.z.string().uuid()).optional(),
342
- sort_by: import_zod7.z.enum(["created_at", "title", "click_count", "original_url"]).default("created_at"),
343
- sort_order: import_zod7.z.enum(["asc", "desc"]).default("desc"),
344
- page: import_zod7.z.coerce.number().int().min(1).default(1),
345
- per_page: import_zod7.z.coerce.number().int().min(1).max(100).default(20)
346
- });
347
- var PaginatedLinksSchema = import_zod7.z.object({
348
- links: import_zod7.z.array(LinkSchema),
349
- total: import_zod7.z.number().int(),
350
- page: import_zod7.z.number().int(),
351
- per_page: import_zod7.z.number().int(),
352
- total_pages: import_zod7.z.number().int()
353
- });
354
-
355
- // src/users.schema.ts
356
- var import_zod8 = require("zod");
357
- var UserSchema = import_zod8.z.object({
401
+ created_from: import_zod8.z.coerce.date().optional(),
402
+ created_to: import_zod8.z.coerce.date().optional(),
403
+ expires_from: import_zod8.z.coerce.date().optional(),
404
+ expires_to: import_zod8.z.coerce.date().optional(),
405
+ tag_ids: import_zod8.z.array(import_zod8.z.string().uuid()).optional(),
406
+ sort_by: import_zod8.z.enum(["created_at", "title", "click_count", "original_url"]).default("created_at"),
407
+ sort_order: import_zod8.z.enum(["asc", "desc"]).default("desc"),
408
+ page: import_zod8.z.coerce.number().int().min(1).default(1),
409
+ per_page: import_zod8.z.coerce.number().int().min(1).max(100).default(20)
410
+ });
411
+ var PaginatedLinksSchema = import_zod8.z.object({
412
+ links: import_zod8.z.array(LinkSchema),
413
+ total: import_zod8.z.number().int(),
414
+ page: import_zod8.z.number().int(),
415
+ per_page: import_zod8.z.number().int(),
416
+ total_pages: import_zod8.z.number().int()
417
+ });
418
+ var LinkJobSchema = import_zod8.z.object({
358
419
  id: import_zod8.z.string().uuid(),
359
- external_id: import_zod8.z.string(),
360
- email: import_zod8.z.string().email(),
361
- email_verified_at: import_zod8.z.coerce.date().nullable(),
362
- first_name: import_zod8.z.string().nullable(),
363
- last_name: import_zod8.z.string().nullable(),
364
- created_at: import_zod8.z.coerce.date(),
365
- updated_at: import_zod8.z.coerce.date().nullable()
366
- });
367
- var SignInInputSchema = import_zod8.z.object({
368
- first_name: import_zod8.z.string().min(1).max(100).optional(),
369
- last_name: import_zod8.z.string().min(1).max(100).optional()
370
- });
371
- var UpdateUserInputSchema = import_zod8.z.object({
372
- first_name: import_zod8.z.string().min(1).max(100).optional(),
373
- last_name: import_zod8.z.string().min(1).max(100).optional()
420
+ workspace_id: import_zod8.z.string().uuid(),
421
+ type: import_zod8.z.string(),
422
+ status: import_zod8.z.enum(["pending", "processing", "completed", "failed"]),
423
+ total_rows: import_zod8.z.number().int(),
424
+ succeeded_count: import_zod8.z.number().int(),
425
+ failed_count: import_zod8.z.number().int(),
426
+ error: import_zod8.z.string().nullable(),
427
+ created_by_id: import_zod8.z.string().uuid(),
428
+ created_at: import_zod8.z.date(),
429
+ completed_at: import_zod8.z.date().nullable()
430
+ });
431
+ var LinkJobIdParamSchema = import_zod8.z.object({
432
+ workspace_id: import_zod8.z.string().uuid(),
433
+ job_id: import_zod8.z.string().uuid()
374
434
  });
375
435
 
376
- // src/workspaces.schema.ts
436
+ // src/users.schema.ts
377
437
  var import_zod9 = require("zod");
378
- var WorkspaceSchema = import_zod9.z.object({
438
+ var UserSchema = import_zod9.z.object({
379
439
  id: import_zod9.z.string().uuid(),
380
- name: import_zod9.z.string(),
381
- billing_plan: import_zod9.z.string(),
382
- billing_status: import_zod9.z.string(),
383
- billing_email: import_zod9.z.string().nullable(),
384
- billing_current_period_end: import_zod9.z.coerce.date().nullable(),
385
- billing_cancel_at_period_end: import_zod9.z.boolean(),
440
+ external_id: import_zod9.z.string(),
441
+ email: import_zod9.z.string().email(),
442
+ email_verified_at: import_zod9.z.coerce.date().nullable(),
443
+ first_name: import_zod9.z.string().nullable(),
444
+ last_name: import_zod9.z.string().nullable(),
386
445
  created_at: import_zod9.z.coerce.date(),
387
446
  updated_at: import_zod9.z.coerce.date().nullable()
388
447
  });
389
- var WorkspaceWithCountSchema = WorkspaceSchema.extend({
390
- member_count: import_zod9.z.number().int()
391
- });
392
- var CreateWorkspaceInputSchema = import_zod9.z.object({
393
- name: import_zod9.z.string().min(1).max(100)
448
+ var SignInInputSchema = import_zod9.z.object({
449
+ first_name: import_zod9.z.string().min(1).max(100).optional(),
450
+ last_name: import_zod9.z.string().min(1).max(100).optional()
394
451
  });
395
- var UpdateWorkspaceInputSchema = import_zod9.z.object({
396
- name: import_zod9.z.string().min(1).max(100).optional(),
397
- billing_email: import_zod9.z.string().email().nullish()
452
+ var UpdateUserInputSchema = import_zod9.z.object({
453
+ first_name: import_zod9.z.string().min(1).max(100).optional(),
454
+ last_name: import_zod9.z.string().min(1).max(100).optional()
398
455
  });
399
- var TransferOwnershipInputSchema = import_zod9.z.object({
400
- to_user_id: import_zod9.z.string().uuid()
456
+
457
+ // src/workspaces.schema.ts
458
+ var import_zod10 = require("zod");
459
+ var WorkspaceSchema = import_zod10.z.object({
460
+ id: import_zod10.z.string().uuid(),
461
+ name: import_zod10.z.string(),
462
+ billing_plan: import_zod10.z.string(),
463
+ billing_status: import_zod10.z.string(),
464
+ billing_email: import_zod10.z.string().nullable(),
465
+ billing_current_period_end: import_zod10.z.coerce.date().nullable(),
466
+ billing_cancel_at_period_end: import_zod10.z.boolean(),
467
+ created_at: import_zod10.z.coerce.date(),
468
+ updated_at: import_zod10.z.coerce.date().nullable()
401
469
  });
402
- var WorkspaceMemberUserSchema = import_zod9.z.object({
403
- id: import_zod9.z.string().uuid(),
404
- email: import_zod9.z.string().email(),
405
- first_name: import_zod9.z.string().nullable(),
406
- last_name: import_zod9.z.string().nullable()
470
+ var WorkspaceWithCountSchema = WorkspaceSchema.extend({
471
+ member_count: import_zod10.z.number().int()
407
472
  });
408
- var WorkspaceMemberSchema = import_zod9.z.object({
409
- id: import_zod9.z.string().uuid(),
410
- workspace_id: import_zod9.z.string().uuid(),
411
- user_id: import_zod9.z.string().uuid(),
412
- user: WorkspaceMemberUserSchema,
413
- permissions: import_zod9.z.number().int(),
414
- joined_at: import_zod9.z.coerce.date(),
415
- created_at: import_zod9.z.coerce.date(),
416
- updated_at: import_zod9.z.coerce.date().nullable()
473
+ var CreateWorkspaceInputSchema = import_zod10.z.object({
474
+ name: import_zod10.z.string().min(1).max(100)
417
475
  });
418
- var UpdateMemberInputSchema = import_zod9.z.object({
419
- permissions: import_zod9.z.number().int().min(1)
476
+ var UpdateWorkspaceInputSchema = import_zod10.z.object({
477
+ name: import_zod10.z.string().min(1).max(100).optional(),
478
+ billing_email: import_zod10.z.string().email().nullish()
420
479
  });
421
- var WorkspaceInvitationSchema = import_zod9.z.object({
422
- id: import_zod9.z.string().uuid(),
423
- workspace_id: import_zod9.z.string().uuid(),
424
- email: import_zod9.z.string().email(),
425
- token: import_zod9.z.string(),
426
- permissions: import_zod9.z.number().int(),
427
- invited_by_id: import_zod9.z.string().uuid(),
428
- expires_at: import_zod9.z.coerce.date(),
429
- created_at: import_zod9.z.coerce.date()
480
+ var TransferOwnershipInputSchema = import_zod10.z.object({
481
+ to_user_id: import_zod10.z.string().uuid()
430
482
  });
431
- var CreateInvitationInputSchema = import_zod9.z.object({
432
- email: import_zod9.z.string().email(),
433
- permissions: import_zod9.z.number().int().min(1)
483
+ var WorkspaceMemberUserSchema = import_zod10.z.object({
484
+ id: import_zod10.z.string().uuid(),
485
+ email: import_zod10.z.string().email(),
486
+ first_name: import_zod10.z.string().nullable(),
487
+ last_name: import_zod10.z.string().nullable()
434
488
  });
435
- var WorkspaceRoleSchema = import_zod9.z.object({
436
- name: import_zod9.z.string(),
437
- description: import_zod9.z.string(),
438
- permissions: import_zod9.z.number().int()
489
+ var WorkspaceMemberSchema = import_zod10.z.object({
490
+ id: import_zod10.z.string().uuid(),
491
+ workspace_id: import_zod10.z.string().uuid(),
492
+ user_id: import_zod10.z.string().uuid(),
493
+ user: WorkspaceMemberUserSchema,
494
+ permissions: import_zod10.z.number().int(),
495
+ joined_at: import_zod10.z.coerce.date(),
496
+ created_at: import_zod10.z.coerce.date(),
497
+ updated_at: import_zod10.z.coerce.date().nullable()
498
+ });
499
+ var UpdateMemberInputSchema = import_zod10.z.object({
500
+ permissions: import_zod10.z.number().int().min(1)
501
+ });
502
+ var WorkspaceInvitationSchema = import_zod10.z.object({
503
+ id: import_zod10.z.string().uuid(),
504
+ workspace_id: import_zod10.z.string().uuid(),
505
+ email: import_zod10.z.string().email(),
506
+ token: import_zod10.z.string(),
507
+ permissions: import_zod10.z.number().int(),
508
+ invited_by_id: import_zod10.z.string().uuid(),
509
+ expires_at: import_zod10.z.coerce.date(),
510
+ created_at: import_zod10.z.coerce.date()
511
+ });
512
+ var CreateInvitationInputSchema = import_zod10.z.object({
513
+ email: import_zod10.z.string().email(),
514
+ permissions: import_zod10.z.number().int().min(1)
515
+ });
516
+ var WorkspaceRoleSchema = import_zod10.z.object({
517
+ name: import_zod10.z.string(),
518
+ description: import_zod10.z.string(),
519
+ permissions: import_zod10.z.number().int()
439
520
  });
440
521
 
441
522
  // src/index.ts
@@ -444,32 +525,32 @@ var analyticsContract = {
444
525
  link: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/analytics" }).input(LinkIdParamSchema.merge(AnalyticsQuerySchema)).output(AnalyticsOutputSchema)
445
526
  };
446
527
  var usersContract = {
447
- me: import_contract.oc.route({ method: "GET", path: "/api/users/me" }).output(import_zod10.z.object({ user: UserSchema })),
448
- 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"]) })),
449
- update: import_contract.oc.route({ method: "PATCH", path: "/api/users/me" }).input(UpdateUserInputSchema).output(import_zod10.z.object({ user: UserSchema }))
528
+ me: import_contract.oc.route({ method: "GET", path: "/api/users/me" }).output(import_zod11.z.object({ user: UserSchema })),
529
+ signIn: import_contract.oc.route({ method: "POST", path: "/api/users" }).input(SignInInputSchema).output(import_zod11.z.object({ user: UserSchema, status: import_zod11.z.enum(["created", "existing"]) })),
530
+ update: import_contract.oc.route({ method: "PATCH", path: "/api/users/me" }).input(UpdateUserInputSchema).output(import_zod11.z.object({ user: UserSchema }))
450
531
  };
451
532
  var apiKeysContract = {
452
533
  create: import_contract.oc.route({ method: "POST", path: "/api/api-keys" }).input(CreateApiKeyInputSchema).output(CreateApiKeyResponseSchema),
453
- list: import_contract.oc.route({ method: "GET", path: "/api/api-keys" }).output(import_zod10.z.array(ApiKeySchema)),
454
- delete: import_contract.oc.route({ method: "DELETE", path: "/api/api-keys/{api_key_id}" }).input(ApiKeyIdParamSchema).output(import_zod10.z.void())
534
+ list: import_contract.oc.route({ method: "GET", path: "/api/api-keys" }).output(import_zod11.z.array(ApiKeySchema)),
535
+ delete: import_contract.oc.route({ method: "DELETE", path: "/api/api-keys/{api_key_id}" }).input(ApiKeyIdParamSchema).output(import_zod11.z.void())
455
536
  };
456
537
  var workspacesContract = {
457
538
  create: import_contract.oc.route({ method: "POST", path: "/api/workspaces" }).input(CreateWorkspaceInputSchema).output(WorkspaceSchema),
458
- list: import_contract.oc.route({ method: "GET", path: "/api/workspaces" }).output(import_zod10.z.array(WorkspaceWithCountSchema)),
539
+ list: import_contract.oc.route({ method: "GET", path: "/api/workspaces" }).output(import_zod11.z.array(WorkspaceWithCountSchema)),
459
540
  get: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(WorkspaceWithCountSchema),
460
541
  update: import_contract.oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema.merge(UpdateWorkspaceInputSchema)).output(WorkspaceSchema),
461
- delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(import_zod10.z.void()),
462
- transfer: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/transfer" }).input(WorkspaceIdParamSchema.merge(TransferOwnershipInputSchema)).output(import_zod10.z.void()),
542
+ delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}" }).input(WorkspaceIdParamSchema).output(import_zod11.z.void()),
543
+ transfer: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/transfer" }).input(WorkspaceIdParamSchema.merge(TransferOwnershipInputSchema)).output(import_zod11.z.void()),
463
544
  // Roles
464
- listRoles: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/roles" }).input(WorkspaceIdParamSchema).output(import_zod10.z.array(WorkspaceRoleSchema)),
545
+ listRoles: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/roles" }).input(WorkspaceIdParamSchema).output(import_zod11.z.array(WorkspaceRoleSchema)),
465
546
  // Members
466
- listMembers: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/members" }).input(WorkspaceIdParamSchema).output(import_zod10.z.array(WorkspaceMemberSchema)),
547
+ listMembers: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/members" }).input(WorkspaceIdParamSchema).output(import_zod11.z.array(WorkspaceMemberSchema)),
467
548
  updateMember: import_contract.oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema.merge(UpdateMemberInputSchema)).output(WorkspaceMemberSchema),
468
- removeMember: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema).output(import_zod10.z.void()),
549
+ removeMember: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/members/{user_id}" }).input(MemberIdParamSchema).output(import_zod11.z.void()),
469
550
  // Invitations
470
- listInvitations: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema).output(import_zod10.z.array(WorkspaceInvitationSchema)),
551
+ listInvitations: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema).output(import_zod11.z.array(WorkspaceInvitationSchema)),
471
552
  createInvitation: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/invitations" }).input(WorkspaceIdParamSchema.merge(CreateInvitationInputSchema)).output(WorkspaceInvitationSchema),
472
- revokeInvitation: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/invitations/{invitation_id}" }).input(InvitationIdParamSchema).output(import_zod10.z.void())
553
+ revokeInvitation: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/invitations/{invitation_id}" }).input(InvitationIdParamSchema).output(import_zod11.z.void())
473
554
  };
474
555
  var invitationsContract = {
475
556
  get: import_contract.oc.route({ method: "GET", path: "/api/invitations/{token}" }).input(TokenParamSchema).output(WorkspaceInvitationSchema),
@@ -480,23 +561,25 @@ var linksContract = {
480
561
  list: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links" }).input(WorkspaceIdParamSchema.merge(LinkFiltersSchema)).output(PaginatedLinksSchema),
481
562
  get: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(LinkSchema),
482
563
  update: import_contract.oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema.merge(UpdateLinkInputSchema)).output(LinkSchema),
483
- delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(import_zod10.z.void()),
484
- edgeSync: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/sync" }).input(LinkIdParamSchema).output(import_zod10.z.void()),
485
- edgeStatus: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/status" }).input(LinkIdParamSchema).output(import_zod10.z.object({ synced: import_zod10.z.boolean() }))
564
+ delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/links/{link_id}" }).input(LinkIdParamSchema).output(import_zod11.z.void()),
565
+ edgeSync: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/sync" }).input(LinkIdParamSchema).output(import_zod11.z.void()),
566
+ edgeStatus: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/links/{link_id}/edge/status" }).input(LinkIdParamSchema).output(import_zod11.z.object({ synced: import_zod11.z.boolean() })),
567
+ getJob: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/jobs/{job_id}" }).input(LinkJobIdParamSchema).output(LinkJobSchema),
568
+ jobResults: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/jobs/{job_id}/results" }).input(LinkJobIdParamSchema).output(import_zod11.z.object({ url: import_zod11.z.string() }))
486
569
  };
487
570
  var tagsContract = {
488
571
  create: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema.merge(CreateTagInputSchema)).output(TagSchema),
489
- list: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema).output(import_zod10.z.array(TagSchema)),
572
+ list: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags" }).input(WorkspaceIdParamSchema).output(import_zod11.z.array(TagSchema)),
490
573
  get: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(TagSchema),
491
574
  update: import_contract.oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema.merge(UpdateTagInputSchema)).output(TagSchema),
492
- delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(import_zod10.z.void())
575
+ delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/tags/{tag_id}" }).input(TagIdParamSchema).output(import_zod11.z.void())
493
576
  };
494
577
  var domainsContract = {
495
578
  create: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema.merge(CreateDomainInputSchema)).output(DomainSchema),
496
- list: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema).output(import_zod10.z.array(DomainSchema)),
579
+ list: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains" }).input(WorkspaceIdParamSchema).output(import_zod11.z.array(DomainSchema)),
497
580
  get: import_contract.oc.route({ method: "GET", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(DomainSchema),
498
581
  update: import_contract.oc.route({ method: "PATCH", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema.merge(UpdateDomainInputSchema)).output(DomainSchema),
499
- delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(import_zod10.z.void()),
582
+ delete: import_contract.oc.route({ method: "DELETE", path: "/api/workspaces/{workspace_id}/domains/{domain_id}" }).input(DomainIdParamSchema).output(import_zod11.z.void()),
500
583
  verify: import_contract.oc.route({ method: "POST", path: "/api/workspaces/{workspace_id}/domains/{domain_id}/verify" }).input(DomainIdParamSchema).output(DomainSchema)
501
584
  };
502
585
  var billingContract = {
@@ -540,10 +623,14 @@ var contract = {
540
623
  LinkAnalyticsQuerySchema,
541
624
  LinkFiltersSchema,
542
625
  LinkIdParamSchema,
626
+ LinkJobIdParamSchema,
627
+ LinkJobSchema,
543
628
  LinkSchema,
544
629
  MemberIdParamSchema,
545
630
  PaginatedLinksSchema,
546
631
  QrCodeSettingsSchema,
632
+ RuleGraphNodeSchema,
633
+ RuleGraphSchema,
547
634
  SignInInputSchema,
548
635
  TagIdParamSchema,
549
636
  TagSchema,