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