@zapier/policy-context 1.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -149,7 +149,9 @@ declare const ActionRunContextSchema: z.ZodPipe<z.ZodObject<{
149
149
  reason: z.ZodOptional<z.ZodString>;
150
150
  }, z.core.$strip>, z.ZodTransform<{
151
151
  reason?: string | undefined;
152
- inputs?: z.core.util.JSONType | undefined;
152
+ inputs?: string | number | boolean | z.core.util.JSONType[] | {
153
+ [key: string]: z.core.util.JSONType;
154
+ } | undefined;
153
155
  connection_id?: string | undefined;
154
156
  request_type: "action_run";
155
157
  resource: string;
@@ -210,7 +212,9 @@ declare const RequestContextSchema: z.ZodUnion<readonly [z.ZodObject<{
210
212
  reason: z.ZodOptional<z.ZodString>;
211
213
  }, z.core.$strip>, z.ZodTransform<{
212
214
  reason?: string | undefined;
213
- inputs?: z.core.util.JSONType | undefined;
215
+ inputs?: string | number | boolean | z.core.util.JSONType[] | {
216
+ [key: string]: z.core.util.JSONType;
217
+ } | undefined;
214
218
  connection_id?: string | undefined;
215
219
  request_type: "action_run";
216
220
  resource: string;
@@ -234,6 +238,7 @@ type RequestContext = z.infer<typeof RequestContextSchema>;
234
238
  * for policy decisions.
235
239
  */
236
240
  declare const IGNORED_HEADERS: Set<string>;
241
+ declare function isIgnoredHeader(name: string): boolean;
237
242
 
238
243
  declare const BuildHttpRequestContextOptionsSchema: z.ZodObject<{
239
244
  method: z.ZodString;
@@ -252,12 +257,15 @@ type BuildHttpRequestContextOptions = z.infer<typeof BuildHttpRequestContextOpti
252
257
  * should use this to ensure the context shape is consistent.
253
258
  *
254
259
  * Matches the behavior of createPolicyHttpRequest from @zapier/policy, with
255
- * the addition of header filtering through IGNORED_HEADERS.
260
+ * two additions: header filtering through isIgnoredHeader, and body/body_json
261
+ * exclusivity (createPolicyHttpRequest keeps the raw body alongside body_json).
256
262
  *
257
263
  * - Normalizes URL (adds https:// if missing) and parses into { scheme, host, port, path, query }
258
- * - Filters headers through IGNORED_HEADERS, lowercases keys, string values only
264
+ * - Filters headers through isIgnoredHeader (IGNORED_HEADERS set plus
265
+ * zapier-* / x-zapier-* prefixes), lowercases keys, string values only
259
266
  * - Auto-parses body_json from body when content-type is JSON and body_json not provided
260
- * - body defaults to null (not undefined)
267
+ * - Exactly one of body / body_json is populated: body is null whenever
268
+ * body_json is set; both default to null (not undefined)
261
269
  */
262
270
  declare function buildHttpRequestContext(options: BuildHttpRequestContextOptions): HttpRequestContext;
263
271
  declare const BuildActionRunContextOptionsSchema: z.ZodObject<{
@@ -338,7 +346,492 @@ declare function buildBroadActionResource(parts: Pick<ActionResourceParts, "sele
338
346
  * This is the single source of truth for "allow this exact request" instant policies.
339
347
  * Used by the web UI and anywhere else that needs to produce an exact policy from a context.
340
348
  */
341
- declare function toExactPolicy(context: RequestContext): Policy;
349
+ declare function toExactPolicy(context: RequestContext): Extract<Policy, {
350
+ version: 3;
351
+ }>;
352
+
353
+ declare const ActionResourcePatternSchema: z.ZodString;
354
+ declare const ZapierPolicySchema: z.ZodUnion<readonly [z.ZodObject<{
355
+ version: z.ZodLiteral<1>;
356
+ statements: z.ZodArray<z.ZodObject<{
357
+ id: z.ZodOptional<z.ZodString>;
358
+ effect: z.ZodEnum<{
359
+ allow: "allow";
360
+ deny: "deny";
361
+ }>;
362
+ permissions: z.ZodArray<z.ZodString>;
363
+ resources: z.ZodArray<z.ZodString>;
364
+ conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
365
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
366
+ operator: z.ZodLiteral<"equals">;
367
+ value: z.ZodJSONSchema;
368
+ }, z.core.$strict>, z.ZodObject<{
369
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
370
+ operator: z.ZodLiteral<"in">;
371
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
372
+ }, z.core.$strict>, z.ZodObject<{
373
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
374
+ operator: z.ZodLiteral<"matches">;
375
+ value: z.ZodString;
376
+ }, z.core.$strict>, z.ZodObject<{
377
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
378
+ operator: z.ZodLiteral<"matches_host">;
379
+ value: z.ZodString;
380
+ }, z.core.$strict>, z.ZodObject<{
381
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
382
+ operator: z.ZodLiteral<"matches_path">;
383
+ value: z.ZodString;
384
+ }, z.core.$strict>, z.ZodObject<{
385
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
386
+ operator: z.ZodLiteral<"range">;
387
+ value: z.ZodObject<{
388
+ min: z.ZodOptional<z.ZodNumber>;
389
+ max: z.ZodOptional<z.ZodNumber>;
390
+ }, z.core.$strict>;
391
+ }, z.core.$strict>, z.ZodObject<{
392
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
393
+ operator: z.ZodLiteral<"matches_url">;
394
+ value: z.ZodString;
395
+ }, z.core.$strict>, z.ZodObject<{
396
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
397
+ operator: z.ZodLiteral<"values_in">;
398
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
399
+ }, z.core.$strict>, z.ZodObject<{
400
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
401
+ operator: z.ZodLiteral<"exists">;
402
+ }, z.core.$strict>, z.ZodObject<{
403
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
404
+ operator: z.ZodLiteral<"keys_in">;
405
+ value: z.ZodArray<z.ZodString>;
406
+ }, z.core.$strict>, z.ZodObject<{
407
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
408
+ operator: z.ZodLiteral<"size">;
409
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
410
+ min: z.ZodOptional<z.ZodNumber>;
411
+ max: z.ZodOptional<z.ZodNumber>;
412
+ }, z.core.$strict>]>;
413
+ }, z.core.$strict>, z.ZodObject<{
414
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
415
+ operator: z.ZodEnum<{
416
+ some: "some";
417
+ all: "all";
418
+ none: "none";
419
+ }>;
420
+ where: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
421
+ operator: z.ZodLiteral<"equals">;
422
+ value: z.ZodJSONSchema;
423
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
424
+ }, z.core.$strict>, z.ZodObject<{
425
+ operator: z.ZodLiteral<"in">;
426
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
427
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
428
+ }, z.core.$strict>, z.ZodObject<{
429
+ operator: z.ZodLiteral<"matches">;
430
+ value: z.ZodString;
431
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
432
+ }, z.core.$strict>, z.ZodObject<{
433
+ operator: z.ZodLiteral<"matches_host">;
434
+ value: z.ZodString;
435
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
436
+ }, z.core.$strict>, z.ZodObject<{
437
+ operator: z.ZodLiteral<"matches_path">;
438
+ value: z.ZodString;
439
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
440
+ }, z.core.$strict>, z.ZodObject<{
441
+ operator: z.ZodLiteral<"range">;
442
+ value: z.ZodObject<{
443
+ min: z.ZodOptional<z.ZodNumber>;
444
+ max: z.ZodOptional<z.ZodNumber>;
445
+ }, z.core.$strict>;
446
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
447
+ }, z.core.$strict>, z.ZodObject<{
448
+ operator: z.ZodLiteral<"matches_url">;
449
+ value: z.ZodString;
450
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
451
+ }, z.core.$strict>, z.ZodObject<{
452
+ operator: z.ZodLiteral<"values_in">;
453
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
454
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
455
+ }, z.core.$strict>, z.ZodObject<{
456
+ operator: z.ZodLiteral<"exists">;
457
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
458
+ }, z.core.$strict>, z.ZodObject<{
459
+ operator: z.ZodLiteral<"keys_in">;
460
+ value: z.ZodArray<z.ZodString>;
461
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
462
+ }, z.core.$strict>, z.ZodObject<{
463
+ operator: z.ZodLiteral<"size">;
464
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
465
+ min: z.ZodOptional<z.ZodNumber>;
466
+ max: z.ZodOptional<z.ZodNumber>;
467
+ }, z.core.$strict>]>;
468
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
469
+ }, z.core.$strict>]>>;
470
+ }, z.core.$strict>]>>>;
471
+ }, z.core.$strict>>;
472
+ }, z.core.$strict>, z.ZodObject<{
473
+ version: z.ZodLiteral<2>;
474
+ statements: z.ZodArray<z.ZodObject<{
475
+ id: z.ZodOptional<z.ZodString>;
476
+ effect: z.ZodEnum<{
477
+ allow: "allow";
478
+ deny: "deny";
479
+ ask: "ask";
480
+ }>;
481
+ permissions: z.ZodArray<z.ZodString>;
482
+ resources: z.ZodArray<z.ZodString>;
483
+ conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
484
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
485
+ operator: z.ZodLiteral<"equals">;
486
+ value: z.ZodJSONSchema;
487
+ }, z.core.$strict>, z.ZodObject<{
488
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
489
+ operator: z.ZodLiteral<"in">;
490
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
491
+ }, z.core.$strict>, z.ZodObject<{
492
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
493
+ operator: z.ZodLiteral<"matches">;
494
+ value: z.ZodString;
495
+ }, z.core.$strict>, z.ZodObject<{
496
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
497
+ operator: z.ZodLiteral<"matches_host">;
498
+ value: z.ZodString;
499
+ }, z.core.$strict>, z.ZodObject<{
500
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
501
+ operator: z.ZodLiteral<"matches_path">;
502
+ value: z.ZodString;
503
+ }, z.core.$strict>, z.ZodObject<{
504
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
505
+ operator: z.ZodLiteral<"range">;
506
+ value: z.ZodObject<{
507
+ min: z.ZodOptional<z.ZodNumber>;
508
+ max: z.ZodOptional<z.ZodNumber>;
509
+ }, z.core.$strict>;
510
+ }, z.core.$strict>, z.ZodObject<{
511
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
512
+ operator: z.ZodLiteral<"matches_url">;
513
+ value: z.ZodString;
514
+ }, z.core.$strict>, z.ZodObject<{
515
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
516
+ operator: z.ZodLiteral<"values_in">;
517
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
518
+ }, z.core.$strict>, z.ZodObject<{
519
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
520
+ operator: z.ZodLiteral<"exists">;
521
+ }, z.core.$strict>, z.ZodObject<{
522
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
523
+ operator: z.ZodLiteral<"keys_in">;
524
+ value: z.ZodArray<z.ZodString>;
525
+ }, z.core.$strict>, z.ZodObject<{
526
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
527
+ operator: z.ZodLiteral<"size">;
528
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
529
+ min: z.ZodOptional<z.ZodNumber>;
530
+ max: z.ZodOptional<z.ZodNumber>;
531
+ }, z.core.$strict>]>;
532
+ }, z.core.$strict>, z.ZodObject<{
533
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
534
+ operator: z.ZodEnum<{
535
+ some: "some";
536
+ all: "all";
537
+ none: "none";
538
+ }>;
539
+ where: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
540
+ operator: z.ZodLiteral<"equals">;
541
+ value: z.ZodJSONSchema;
542
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
543
+ }, z.core.$strict>, z.ZodObject<{
544
+ operator: z.ZodLiteral<"in">;
545
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
546
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
547
+ }, z.core.$strict>, z.ZodObject<{
548
+ operator: z.ZodLiteral<"matches">;
549
+ value: z.ZodString;
550
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
551
+ }, z.core.$strict>, z.ZodObject<{
552
+ operator: z.ZodLiteral<"matches_host">;
553
+ value: z.ZodString;
554
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
555
+ }, z.core.$strict>, z.ZodObject<{
556
+ operator: z.ZodLiteral<"matches_path">;
557
+ value: z.ZodString;
558
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
559
+ }, z.core.$strict>, z.ZodObject<{
560
+ operator: z.ZodLiteral<"range">;
561
+ value: z.ZodObject<{
562
+ min: z.ZodOptional<z.ZodNumber>;
563
+ max: z.ZodOptional<z.ZodNumber>;
564
+ }, z.core.$strict>;
565
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
566
+ }, z.core.$strict>, z.ZodObject<{
567
+ operator: z.ZodLiteral<"matches_url">;
568
+ value: z.ZodString;
569
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
570
+ }, z.core.$strict>, z.ZodObject<{
571
+ operator: z.ZodLiteral<"values_in">;
572
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
573
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
574
+ }, z.core.$strict>, z.ZodObject<{
575
+ operator: z.ZodLiteral<"exists">;
576
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
577
+ }, z.core.$strict>, z.ZodObject<{
578
+ operator: z.ZodLiteral<"keys_in">;
579
+ value: z.ZodArray<z.ZodString>;
580
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
581
+ }, z.core.$strict>, z.ZodObject<{
582
+ operator: z.ZodLiteral<"size">;
583
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
584
+ min: z.ZodOptional<z.ZodNumber>;
585
+ max: z.ZodOptional<z.ZodNumber>;
586
+ }, z.core.$strict>]>;
587
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
588
+ }, z.core.$strict>]>>;
589
+ }, z.core.$strict>]>>>;
590
+ }, z.core.$strict>>;
591
+ }, z.core.$strict>, z.ZodObject<{
592
+ version: z.ZodLiteral<3>;
593
+ statements: z.ZodArray<z.ZodArray<z.ZodObject<{
594
+ id: z.ZodString;
595
+ effect: z.ZodEnum<{
596
+ allow: "allow";
597
+ deny: "deny";
598
+ ask: "ask";
599
+ }>;
600
+ permissions: z.ZodArray<z.ZodString>;
601
+ resources: z.ZodArray<z.ZodString>;
602
+ conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
603
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
604
+ operator: z.ZodLiteral<"equals">;
605
+ value: z.ZodJSONSchema;
606
+ }, z.core.$strict>, z.ZodObject<{
607
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
608
+ operator: z.ZodLiteral<"in">;
609
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
610
+ }, z.core.$strict>, z.ZodObject<{
611
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
612
+ operator: z.ZodLiteral<"matches">;
613
+ value: z.ZodString;
614
+ }, z.core.$strict>, z.ZodObject<{
615
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
616
+ operator: z.ZodLiteral<"matches_host">;
617
+ value: z.ZodString;
618
+ }, z.core.$strict>, z.ZodObject<{
619
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
620
+ operator: z.ZodLiteral<"matches_path">;
621
+ value: z.ZodString;
622
+ }, z.core.$strict>, z.ZodObject<{
623
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
624
+ operator: z.ZodLiteral<"range">;
625
+ value: z.ZodObject<{
626
+ min: z.ZodOptional<z.ZodNumber>;
627
+ max: z.ZodOptional<z.ZodNumber>;
628
+ }, z.core.$strict>;
629
+ }, z.core.$strict>, z.ZodObject<{
630
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
631
+ operator: z.ZodLiteral<"matches_url">;
632
+ value: z.ZodString;
633
+ }, z.core.$strict>, z.ZodObject<{
634
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
635
+ operator: z.ZodLiteral<"values_in">;
636
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
637
+ }, z.core.$strict>, z.ZodObject<{
638
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
639
+ operator: z.ZodLiteral<"exists">;
640
+ }, z.core.$strict>, z.ZodObject<{
641
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
642
+ operator: z.ZodLiteral<"keys_in">;
643
+ value: z.ZodArray<z.ZodString>;
644
+ }, z.core.$strict>, z.ZodObject<{
645
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
646
+ operator: z.ZodLiteral<"size">;
647
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
648
+ min: z.ZodOptional<z.ZodNumber>;
649
+ max: z.ZodOptional<z.ZodNumber>;
650
+ }, z.core.$strict>]>;
651
+ }, z.core.$strict>, z.ZodObject<{
652
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
653
+ operator: z.ZodEnum<{
654
+ some: "some";
655
+ all: "all";
656
+ none: "none";
657
+ }>;
658
+ where: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
659
+ operator: z.ZodLiteral<"equals">;
660
+ value: z.ZodJSONSchema;
661
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
662
+ }, z.core.$strict>, z.ZodObject<{
663
+ operator: z.ZodLiteral<"in">;
664
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
665
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
666
+ }, z.core.$strict>, z.ZodObject<{
667
+ operator: z.ZodLiteral<"matches">;
668
+ value: z.ZodString;
669
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
670
+ }, z.core.$strict>, z.ZodObject<{
671
+ operator: z.ZodLiteral<"matches_host">;
672
+ value: z.ZodString;
673
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
674
+ }, z.core.$strict>, z.ZodObject<{
675
+ operator: z.ZodLiteral<"matches_path">;
676
+ value: z.ZodString;
677
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
678
+ }, z.core.$strict>, z.ZodObject<{
679
+ operator: z.ZodLiteral<"range">;
680
+ value: z.ZodObject<{
681
+ min: z.ZodOptional<z.ZodNumber>;
682
+ max: z.ZodOptional<z.ZodNumber>;
683
+ }, z.core.$strict>;
684
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
685
+ }, z.core.$strict>, z.ZodObject<{
686
+ operator: z.ZodLiteral<"matches_url">;
687
+ value: z.ZodString;
688
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
689
+ }, z.core.$strict>, z.ZodObject<{
690
+ operator: z.ZodLiteral<"values_in">;
691
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
692
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
693
+ }, z.core.$strict>, z.ZodObject<{
694
+ operator: z.ZodLiteral<"exists">;
695
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
696
+ }, z.core.$strict>, z.ZodObject<{
697
+ operator: z.ZodLiteral<"keys_in">;
698
+ value: z.ZodArray<z.ZodString>;
699
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
700
+ }, z.core.$strict>, z.ZodObject<{
701
+ operator: z.ZodLiteral<"size">;
702
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
703
+ min: z.ZodOptional<z.ZodNumber>;
704
+ max: z.ZodOptional<z.ZodNumber>;
705
+ }, z.core.$strict>]>;
706
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
707
+ }, z.core.$strict>]>>;
708
+ }, z.core.$strict>]>>>;
709
+ }, z.core.$strict>>>;
710
+ }, z.core.$strict>, z.ZodObject<{
711
+ version: z.ZodLiteral<"rc-rubberduck">;
712
+ id: z.ZodString;
713
+ defaultEffect: z.ZodEnum<{
714
+ deny: "deny";
715
+ ask: "ask";
716
+ }>;
717
+ statements: z.ZodArray<z.ZodObject<{
718
+ id: z.ZodString;
719
+ effect: z.ZodEnum<{
720
+ allow: "allow";
721
+ deny: "deny";
722
+ ask: "ask";
723
+ }>;
724
+ permissions: z.ZodArray<z.ZodString>;
725
+ resources: z.ZodArray<z.ZodString>;
726
+ conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
727
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
728
+ operator: z.ZodLiteral<"equals">;
729
+ value: z.ZodJSONSchema;
730
+ }, z.core.$strict>, z.ZodObject<{
731
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
732
+ operator: z.ZodLiteral<"in">;
733
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
734
+ }, z.core.$strict>, z.ZodObject<{
735
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
736
+ operator: z.ZodLiteral<"matches">;
737
+ value: z.ZodString;
738
+ }, z.core.$strict>, z.ZodObject<{
739
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
740
+ operator: z.ZodLiteral<"matches_host">;
741
+ value: z.ZodString;
742
+ }, z.core.$strict>, z.ZodObject<{
743
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
744
+ operator: z.ZodLiteral<"matches_path">;
745
+ value: z.ZodString;
746
+ }, z.core.$strict>, z.ZodObject<{
747
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
748
+ operator: z.ZodLiteral<"range">;
749
+ value: z.ZodObject<{
750
+ min: z.ZodOptional<z.ZodNumber>;
751
+ max: z.ZodOptional<z.ZodNumber>;
752
+ }, z.core.$strict>;
753
+ }, z.core.$strict>, z.ZodObject<{
754
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
755
+ operator: z.ZodLiteral<"matches_url">;
756
+ value: z.ZodString;
757
+ }, z.core.$strict>, z.ZodObject<{
758
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
759
+ operator: z.ZodLiteral<"values_in">;
760
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
761
+ }, z.core.$strict>, z.ZodObject<{
762
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
763
+ operator: z.ZodLiteral<"exists">;
764
+ }, z.core.$strict>, z.ZodObject<{
765
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
766
+ operator: z.ZodLiteral<"keys_in">;
767
+ value: z.ZodArray<z.ZodString>;
768
+ }, z.core.$strict>, z.ZodObject<{
769
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
770
+ operator: z.ZodLiteral<"size">;
771
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
772
+ min: z.ZodOptional<z.ZodNumber>;
773
+ max: z.ZodOptional<z.ZodNumber>;
774
+ }, z.core.$strict>]>;
775
+ }, z.core.$strict>, z.ZodObject<{
776
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
777
+ operator: z.ZodEnum<{
778
+ some: "some";
779
+ all: "all";
780
+ none: "none";
781
+ }>;
782
+ where: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
783
+ operator: z.ZodLiteral<"equals">;
784
+ value: z.ZodJSONSchema;
785
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
786
+ }, z.core.$strict>, z.ZodObject<{
787
+ operator: z.ZodLiteral<"in">;
788
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
789
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
790
+ }, z.core.$strict>, z.ZodObject<{
791
+ operator: z.ZodLiteral<"matches">;
792
+ value: z.ZodString;
793
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
794
+ }, z.core.$strict>, z.ZodObject<{
795
+ operator: z.ZodLiteral<"matches_host">;
796
+ value: z.ZodString;
797
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
798
+ }, z.core.$strict>, z.ZodObject<{
799
+ operator: z.ZodLiteral<"matches_path">;
800
+ value: z.ZodString;
801
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
802
+ }, z.core.$strict>, z.ZodObject<{
803
+ operator: z.ZodLiteral<"range">;
804
+ value: z.ZodObject<{
805
+ min: z.ZodOptional<z.ZodNumber>;
806
+ max: z.ZodOptional<z.ZodNumber>;
807
+ }, z.core.$strict>;
808
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
809
+ }, z.core.$strict>, z.ZodObject<{
810
+ operator: z.ZodLiteral<"matches_url">;
811
+ value: z.ZodString;
812
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
813
+ }, z.core.$strict>, z.ZodObject<{
814
+ operator: z.ZodLiteral<"values_in">;
815
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
816
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
817
+ }, z.core.$strict>, z.ZodObject<{
818
+ operator: z.ZodLiteral<"exists">;
819
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
820
+ }, z.core.$strict>, z.ZodObject<{
821
+ operator: z.ZodLiteral<"keys_in">;
822
+ value: z.ZodArray<z.ZodString>;
823
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
824
+ }, z.core.$strict>, z.ZodObject<{
825
+ operator: z.ZodLiteral<"size">;
826
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
827
+ min: z.ZodOptional<z.ZodNumber>;
828
+ max: z.ZodOptional<z.ZodNumber>;
829
+ }, z.core.$strict>]>;
830
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
831
+ }, z.core.$strict>]>>;
832
+ }, z.core.$strict>]>>>;
833
+ }, z.core.$strict>>;
834
+ }, z.core.$strict>]>;
342
835
 
343
836
  declare const AccessLevelSchema: z.ZodEnum<{
344
837
  read: "read";
@@ -379,7 +872,9 @@ declare function buildConnectionPolicy(options: {
379
872
  connectionId: string;
380
873
  selectedApi: string;
381
874
  accessLevel: AccessLevel;
382
- }): Policy;
875
+ }): Extract<Policy, {
876
+ version: 3;
877
+ }>;
383
878
 
384
879
  /**
385
880
  * Build a connectionless policy that scopes access to the request's domain
@@ -390,6 +885,8 @@ declare function buildConnectionPolicy(options: {
390
885
  declare function buildConnectionlessPolicy(options: {
391
886
  context: RequestContext;
392
887
  accessLevel: AccessLevel;
393
- }): Policy;
888
+ }): Extract<Policy, {
889
+ version: 3;
890
+ }>;
394
891
 
395
- export { type AccessLevel, AccessLevelSchema, type ActionRunContext, ActionRunContextInputSchema, ActionRunContextSchema, type ActionType, ActionTypeSchema, type BuildActionRunContextOptions, BuildActionRunContextOptionsSchema, type BuildHttpRequestContextOptions, BuildHttpRequestContextOptionsSchema, DEFAULT_PORTS, type HttpRequestContext, HttpRequestContextSchema, IGNORED_HEADERS, type ParsedUrl, ParsedUrlSchema, READ_ACTION_TYPES, READ_HTTP_METHODS, type RequestContext, RequestContextSchema, buildActionResource, buildActionRunContext, buildBroadActionResource, buildConnectionPolicy, buildConnectionlessPolicy, buildDomainHttpConditions, buildExactActionConditions, buildExactHttpConditions, buildHttpRequestContext, buildUrlString, globSelectedApiVersion, isWriteRequest, parseActionResource, parseUrl, toAppKey, toExactPolicy };
892
+ export { type AccessLevel, AccessLevelSchema, ActionResourcePatternSchema, type ActionRunContext, ActionRunContextInputSchema, ActionRunContextSchema, type ActionType, ActionTypeSchema, type BuildActionRunContextOptions, BuildActionRunContextOptionsSchema, type BuildHttpRequestContextOptions, BuildHttpRequestContextOptionsSchema, DEFAULT_PORTS, type HttpRequestContext, HttpRequestContextSchema, IGNORED_HEADERS, type ParsedUrl, ParsedUrlSchema, READ_ACTION_TYPES, READ_HTTP_METHODS, type RequestContext, RequestContextSchema, ZapierPolicySchema, buildActionResource, buildActionRunContext, buildBroadActionResource, buildConnectionPolicy, buildConnectionlessPolicy, buildDomainHttpConditions, buildExactActionConditions, buildExactHttpConditions, buildHttpRequestContext, buildUrlString, globSelectedApiVersion, isIgnoredHeader, isWriteRequest, parseActionResource, parseUrl, toAppKey, toExactPolicy };