@automate.ax/integration-contracts 0.110.0 → 0.111.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.
@@ -1,12 +1,4 @@
1
1
  import * as z from "zod";
2
- export declare const ASANA_RESOURCE_SCHEMA: z.ZodObject<{
3
- id: z.ZodString;
4
- name: z.ZodOptional<z.ZodString>;
5
- type: z.ZodOptional<z.ZodString>;
6
- }, z.core.$strip>;
7
- export declare const ASANA_PAGE_INFO_SCHEMA: z.ZodObject<{
8
- nextOffset: z.ZodOptional<z.ZodString>;
9
- }, z.core.$strip>;
10
2
  export declare const ASANA_WORKSPACE_SCHEMA: z.ZodObject<{
11
3
  id: z.ZodString;
12
4
  name: z.ZodOptional<z.ZodString>;
@@ -98,7 +90,55 @@ export declare const ASANA_TASK_SCHEMA: z.ZodObject<{
98
90
  name: z.ZodOptional<z.ZodString>;
99
91
  type: z.ZodOptional<z.ZodString>;
100
92
  }, z.core.$strip>>;
101
- customFields: z.ZodArray<z.ZodJSONSchema>;
93
+ customFields: z.ZodArray<z.ZodObject<{
94
+ id: z.ZodString;
95
+ name: z.ZodOptional<z.ZodString>;
96
+ type: z.ZodOptional<z.ZodString>;
97
+ customLabel: z.ZodOptional<z.ZodString>;
98
+ currencyCode: z.ZodOptional<z.ZodString>;
99
+ description: z.ZodOptional<z.ZodString>;
100
+ enumOptions: z.ZodArray<z.ZodObject<{
101
+ id: z.ZodString;
102
+ name: z.ZodOptional<z.ZodString>;
103
+ type: z.ZodOptional<z.ZodString>;
104
+ color: z.ZodOptional<z.ZodString>;
105
+ enabled: z.ZodBoolean;
106
+ }, z.core.$strip>>;
107
+ format: z.ZodOptional<z.ZodString>;
108
+ precision: z.ZodOptional<z.ZodNumber>;
109
+ subtype: z.ZodString;
110
+ dateValue: z.ZodOptional<z.ZodObject<{
111
+ date: z.ZodString;
112
+ dateTime: z.ZodOptional<z.ZodString>;
113
+ }, z.core.$strip>>;
114
+ displayValue: z.ZodOptional<z.ZodString>;
115
+ enumValue: z.ZodOptional<z.ZodObject<{
116
+ id: z.ZodString;
117
+ name: z.ZodOptional<z.ZodString>;
118
+ type: z.ZodOptional<z.ZodString>;
119
+ color: z.ZodOptional<z.ZodString>;
120
+ enabled: z.ZodBoolean;
121
+ }, z.core.$strip>>;
122
+ multiEnumValues: z.ZodArray<z.ZodObject<{
123
+ id: z.ZodString;
124
+ name: z.ZodOptional<z.ZodString>;
125
+ type: z.ZodOptional<z.ZodString>;
126
+ color: z.ZodOptional<z.ZodString>;
127
+ enabled: z.ZodBoolean;
128
+ }, z.core.$strip>>;
129
+ numberValue: z.ZodOptional<z.ZodNumber>;
130
+ peopleValue: z.ZodArray<z.ZodObject<{
131
+ id: z.ZodString;
132
+ name: z.ZodOptional<z.ZodString>;
133
+ type: z.ZodOptional<z.ZodString>;
134
+ }, z.core.$strip>>;
135
+ referenceValue: z.ZodArray<z.ZodObject<{
136
+ id: z.ZodString;
137
+ name: z.ZodOptional<z.ZodString>;
138
+ type: z.ZodOptional<z.ZodString>;
139
+ }, z.core.$strip>>;
140
+ textValue: z.ZodOptional<z.ZodString>;
141
+ }, z.core.$strip>>;
102
142
  dueAt: z.ZodOptional<z.ZodString>;
103
143
  dueOn: z.ZodOptional<z.ZodString>;
104
144
  followers: z.ZodArray<z.ZodObject<{
@@ -392,7 +432,55 @@ export declare const ASANA_TASK_COMPLETED_EVENT_SCHEMA: z.ZodObject<{
392
432
  name: z.ZodOptional<z.ZodString>;
393
433
  type: z.ZodOptional<z.ZodString>;
394
434
  }, z.core.$strip>>;
395
- customFields: z.ZodArray<z.ZodJSONSchema>;
435
+ customFields: z.ZodArray<z.ZodObject<{
436
+ id: z.ZodString;
437
+ name: z.ZodOptional<z.ZodString>;
438
+ type: z.ZodOptional<z.ZodString>;
439
+ customLabel: z.ZodOptional<z.ZodString>;
440
+ currencyCode: z.ZodOptional<z.ZodString>;
441
+ description: z.ZodOptional<z.ZodString>;
442
+ enumOptions: z.ZodArray<z.ZodObject<{
443
+ id: z.ZodString;
444
+ name: z.ZodOptional<z.ZodString>;
445
+ type: z.ZodOptional<z.ZodString>;
446
+ color: z.ZodOptional<z.ZodString>;
447
+ enabled: z.ZodBoolean;
448
+ }, z.core.$strip>>;
449
+ format: z.ZodOptional<z.ZodString>;
450
+ precision: z.ZodOptional<z.ZodNumber>;
451
+ subtype: z.ZodString;
452
+ dateValue: z.ZodOptional<z.ZodObject<{
453
+ date: z.ZodString;
454
+ dateTime: z.ZodOptional<z.ZodString>;
455
+ }, z.core.$strip>>;
456
+ displayValue: z.ZodOptional<z.ZodString>;
457
+ enumValue: z.ZodOptional<z.ZodObject<{
458
+ id: z.ZodString;
459
+ name: z.ZodOptional<z.ZodString>;
460
+ type: z.ZodOptional<z.ZodString>;
461
+ color: z.ZodOptional<z.ZodString>;
462
+ enabled: z.ZodBoolean;
463
+ }, z.core.$strip>>;
464
+ multiEnumValues: z.ZodArray<z.ZodObject<{
465
+ id: z.ZodString;
466
+ name: z.ZodOptional<z.ZodString>;
467
+ type: z.ZodOptional<z.ZodString>;
468
+ color: z.ZodOptional<z.ZodString>;
469
+ enabled: z.ZodBoolean;
470
+ }, z.core.$strip>>;
471
+ numberValue: z.ZodOptional<z.ZodNumber>;
472
+ peopleValue: z.ZodArray<z.ZodObject<{
473
+ id: z.ZodString;
474
+ name: z.ZodOptional<z.ZodString>;
475
+ type: z.ZodOptional<z.ZodString>;
476
+ }, z.core.$strip>>;
477
+ referenceValue: z.ZodArray<z.ZodObject<{
478
+ id: z.ZodString;
479
+ name: z.ZodOptional<z.ZodString>;
480
+ type: z.ZodOptional<z.ZodString>;
481
+ }, z.core.$strip>>;
482
+ textValue: z.ZodOptional<z.ZodString>;
483
+ }, z.core.$strip>>;
396
484
  dueAt: z.ZodOptional<z.ZodString>;
397
485
  dueOn: z.ZodOptional<z.ZodString>;
398
486
  followers: z.ZodArray<z.ZodObject<{
@@ -520,24 +608,13 @@ export declare const ASANA_COMMENT_ADDED_EVENT_SCHEMA: z.ZodObject<{
520
608
  subtype: z.ZodLiteral<"comment_added">;
521
609
  type: z.ZodLiteral<"story">;
522
610
  }, z.core.$strip>;
523
- export declare const ASANA_PROVIDER_RESOURCE_SCHEMA: z.ZodObject<{
524
- gid: z.ZodString;
525
- name: z.ZodOptional<z.ZodString>;
526
- resource_subtype: z.ZodOptional<z.ZodString>;
527
- resource_type: z.ZodOptional<z.ZodString>;
528
- }, z.core.$loose>;
529
- export declare const ASANA_PROVIDER_PAGE_SCHEMA: z.ZodObject<{
530
- next_page: z.ZodOptional<z.ZodNullable<z.ZodObject<{
531
- offset: z.ZodString;
532
- }, z.core.$loose>>>;
533
- }, z.core.$loose>;
534
611
  export declare const ASANA_PROVIDER_WORKSPACE_SCHEMA: z.ZodObject<{
535
612
  gid: z.ZodString;
536
613
  name: z.ZodOptional<z.ZodString>;
537
614
  resource_subtype: z.ZodOptional<z.ZodString>;
538
615
  resource_type: z.ZodOptional<z.ZodString>;
539
- email_domains: z.ZodPrefault<z.ZodArray<z.ZodString>>;
540
- is_organization: z.ZodPrefault<z.ZodBoolean>;
616
+ email_domains: z.ZodArray<z.ZodString>;
617
+ is_organization: z.ZodBoolean;
541
618
  }, z.core.$loose>;
542
619
  export declare const ASANA_PROVIDER_USER_SCHEMA: z.ZodObject<{
543
620
  gid: z.ZodString;
@@ -548,19 +625,19 @@ export declare const ASANA_PROVIDER_USER_SCHEMA: z.ZodObject<{
548
625
  photo: z.ZodOptional<z.ZodNullable<z.ZodObject<{
549
626
  image_128x128: z.ZodOptional<z.ZodString>;
550
627
  }, z.core.$loose>>>;
551
- workspaces: z.ZodPrefault<z.ZodArray<z.ZodObject<{
628
+ workspaces: z.ZodArray<z.ZodObject<{
552
629
  gid: z.ZodString;
553
630
  name: z.ZodOptional<z.ZodString>;
554
631
  resource_subtype: z.ZodOptional<z.ZodString>;
555
632
  resource_type: z.ZodOptional<z.ZodString>;
556
- }, z.core.$loose>>>;
633
+ }, z.core.$loose>>;
557
634
  }, z.core.$loose>;
558
635
  export declare const ASANA_PROVIDER_PROJECT_SCHEMA: z.ZodObject<{
559
636
  gid: z.ZodString;
560
637
  name: z.ZodOptional<z.ZodString>;
561
638
  resource_subtype: z.ZodOptional<z.ZodString>;
562
639
  resource_type: z.ZodOptional<z.ZodString>;
563
- archived: z.ZodPrefault<z.ZodBoolean>;
640
+ archived: z.ZodBoolean;
564
641
  color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
565
642
  created_at: z.ZodOptional<z.ZodString>;
566
643
  default_view: z.ZodOptional<z.ZodString>;
@@ -569,7 +646,7 @@ export declare const ASANA_PROVIDER_PROJECT_SCHEMA: z.ZodObject<{
569
646
  modified_at: z.ZodOptional<z.ZodString>;
570
647
  notes: z.ZodOptional<z.ZodString>;
571
648
  permalink_url: z.ZodOptional<z.ZodString>;
572
- public: z.ZodPrefault<z.ZodBoolean>;
649
+ public: z.ZodBoolean;
573
650
  start_on: z.ZodOptional<z.ZodNullable<z.ZodString>>;
574
651
  team: z.ZodOptional<z.ZodNullable<z.ZodObject<{
575
652
  gid: z.ZodString;
@@ -608,7 +685,7 @@ export declare const ASANA_PROVIDER_TASK_SCHEMA: z.ZodObject<{
608
685
  resource_type: z.ZodOptional<z.ZodString>;
609
686
  }, z.core.$loose>>>;
610
687
  assignee_status: z.ZodOptional<z.ZodString>;
611
- completed: z.ZodPrefault<z.ZodBoolean>;
688
+ completed: z.ZodBoolean;
612
689
  completed_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
613
690
  completed_by: z.ZodOptional<z.ZodNullable<z.ZodObject<{
614
691
  gid: z.ZodString;
@@ -623,17 +700,70 @@ export declare const ASANA_PROVIDER_TASK_SCHEMA: z.ZodObject<{
623
700
  resource_subtype: z.ZodOptional<z.ZodString>;
624
701
  resource_type: z.ZodOptional<z.ZodString>;
625
702
  }, z.core.$loose>>>;
626
- custom_fields: z.ZodPrefault<z.ZodArray<z.ZodJSONSchema>>;
703
+ custom_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
704
+ gid: z.ZodString;
705
+ name: z.ZodOptional<z.ZodString>;
706
+ resource_type: z.ZodOptional<z.ZodString>;
707
+ custom_label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
708
+ currency_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
709
+ description: z.ZodOptional<z.ZodString>;
710
+ enum_options: z.ZodOptional<z.ZodArray<z.ZodObject<{
711
+ gid: z.ZodString;
712
+ name: z.ZodOptional<z.ZodString>;
713
+ resource_subtype: z.ZodOptional<z.ZodString>;
714
+ resource_type: z.ZodOptional<z.ZodString>;
715
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
716
+ enabled: z.ZodBoolean;
717
+ }, z.core.$loose>>>;
718
+ format: z.ZodOptional<z.ZodNullable<z.ZodString>>;
719
+ precision: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
720
+ resource_subtype: z.ZodString;
721
+ date_value: z.ZodOptional<z.ZodNullable<z.ZodObject<{
722
+ date: z.ZodString;
723
+ date_time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
724
+ }, z.core.$loose>>>;
725
+ display_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
726
+ enum_value: z.ZodOptional<z.ZodNullable<z.ZodObject<{
727
+ gid: z.ZodString;
728
+ name: z.ZodOptional<z.ZodString>;
729
+ resource_subtype: z.ZodOptional<z.ZodString>;
730
+ resource_type: z.ZodOptional<z.ZodString>;
731
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
732
+ enabled: z.ZodBoolean;
733
+ }, z.core.$loose>>>;
734
+ multi_enum_values: z.ZodOptional<z.ZodArray<z.ZodObject<{
735
+ gid: z.ZodString;
736
+ name: z.ZodOptional<z.ZodString>;
737
+ resource_subtype: z.ZodOptional<z.ZodString>;
738
+ resource_type: z.ZodOptional<z.ZodString>;
739
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
740
+ enabled: z.ZodBoolean;
741
+ }, z.core.$loose>>>;
742
+ number_value: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
743
+ people_value: z.ZodOptional<z.ZodArray<z.ZodObject<{
744
+ gid: z.ZodString;
745
+ name: z.ZodOptional<z.ZodString>;
746
+ resource_subtype: z.ZodOptional<z.ZodString>;
747
+ resource_type: z.ZodOptional<z.ZodString>;
748
+ }, z.core.$loose>>>;
749
+ reference_value: z.ZodOptional<z.ZodArray<z.ZodObject<{
750
+ gid: z.ZodString;
751
+ name: z.ZodOptional<z.ZodString>;
752
+ resource_subtype: z.ZodOptional<z.ZodString>;
753
+ resource_type: z.ZodOptional<z.ZodString>;
754
+ }, z.core.$loose>>>;
755
+ text_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
756
+ }, z.core.$loose>>>;
627
757
  due_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
628
758
  due_on: z.ZodOptional<z.ZodNullable<z.ZodString>>;
629
- followers: z.ZodPrefault<z.ZodArray<z.ZodObject<{
759
+ followers: z.ZodArray<z.ZodObject<{
630
760
  gid: z.ZodString;
631
761
  name: z.ZodOptional<z.ZodString>;
632
762
  resource_subtype: z.ZodOptional<z.ZodString>;
633
763
  resource_type: z.ZodOptional<z.ZodString>;
634
- }, z.core.$loose>>>;
764
+ }, z.core.$loose>>;
635
765
  html_notes: z.ZodOptional<z.ZodString>;
636
- memberships: z.ZodPrefault<z.ZodArray<z.ZodObject<{
766
+ memberships: z.ZodArray<z.ZodObject<{
637
767
  project: z.ZodObject<{
638
768
  gid: z.ZodString;
639
769
  name: z.ZodOptional<z.ZodString>;
@@ -646,7 +776,7 @@ export declare const ASANA_PROVIDER_TASK_SCHEMA: z.ZodObject<{
646
776
  resource_subtype: z.ZodOptional<z.ZodString>;
647
777
  resource_type: z.ZodOptional<z.ZodString>;
648
778
  }, z.core.$loose>>>;
649
- }, z.core.$loose>>>;
779
+ }, z.core.$loose>>;
650
780
  modified_at: z.ZodOptional<z.ZodString>;
651
781
  notes: z.ZodOptional<z.ZodString>;
652
782
  parent: z.ZodOptional<z.ZodNullable<z.ZodObject<{
@@ -656,21 +786,21 @@ export declare const ASANA_PROVIDER_TASK_SCHEMA: z.ZodObject<{
656
786
  resource_type: z.ZodOptional<z.ZodString>;
657
787
  }, z.core.$loose>>>;
658
788
  permalink_url: z.ZodOptional<z.ZodString>;
659
- projects: z.ZodPrefault<z.ZodArray<z.ZodObject<{
789
+ projects: z.ZodArray<z.ZodObject<{
660
790
  gid: z.ZodString;
661
791
  name: z.ZodOptional<z.ZodString>;
662
792
  resource_subtype: z.ZodOptional<z.ZodString>;
663
793
  resource_type: z.ZodOptional<z.ZodString>;
664
- }, z.core.$loose>>>;
794
+ }, z.core.$loose>>;
665
795
  resource_subtype: z.ZodOptional<z.ZodString>;
666
796
  start_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
667
797
  start_on: z.ZodOptional<z.ZodNullable<z.ZodString>>;
668
- tags: z.ZodPrefault<z.ZodArray<z.ZodObject<{
798
+ tags: z.ZodArray<z.ZodObject<{
669
799
  gid: z.ZodString;
670
800
  name: z.ZodOptional<z.ZodString>;
671
801
  resource_subtype: z.ZodOptional<z.ZodString>;
672
802
  resource_type: z.ZodOptional<z.ZodString>;
673
- }, z.core.$loose>>>;
803
+ }, z.core.$loose>>;
674
804
  workspace: z.ZodOptional<z.ZodNullable<z.ZodObject<{
675
805
  gid: z.ZodString;
676
806
  name: z.ZodOptional<z.ZodString>;
@@ -690,10 +820,10 @@ export declare const ASANA_PROVIDER_STORY_SCHEMA: z.ZodObject<{
690
820
  resource_type: z.ZodOptional<z.ZodString>;
691
821
  }, z.core.$loose>>>;
692
822
  html_text: z.ZodOptional<z.ZodString>;
693
- is_edited: z.ZodPrefault<z.ZodBoolean>;
694
- is_pinned: z.ZodPrefault<z.ZodBoolean>;
823
+ is_edited: z.ZodBoolean;
824
+ is_pinned: z.ZodBoolean;
695
825
  resource_subtype: z.ZodOptional<z.ZodString>;
696
- text: z.ZodPrefault<z.ZodString>;
826
+ text: z.ZodString;
697
827
  }, z.core.$loose>;
698
828
  export declare const ASANA_PROVIDER_EVENT_SCHEMA: z.ZodObject<{
699
829
  action: z.ZodEnum<{
@@ -735,24 +865,6 @@ export declare const ASANA_PROVIDER_EVENT_SCHEMA: z.ZodObject<{
735
865
  resource_type: z.ZodOptional<z.ZodString>;
736
866
  }, z.core.$loose>>>;
737
867
  }, z.core.$loose>;
738
- /**
739
- * Converts an Asana compact resource to the public camel-cased shape.
740
- *
741
- * @param value - Provider-native compact resource.
742
- */
743
- export declare function toAsanaResource(value: z.output<typeof ASANA_PROVIDER_RESOURCE_SCHEMA>): {
744
- id: string;
745
- name: string | undefined;
746
- type: string | undefined;
747
- };
748
- /**
749
- * Converts Asana offset pagination metadata.
750
- *
751
- * @param value - Provider-native response page.
752
- */
753
- export declare function toAsanaPageInfo(value: z.output<typeof ASANA_PROVIDER_PAGE_SCHEMA>): {
754
- nextOffset: string | undefined;
755
- };
756
868
  /**
757
869
  * Converts an Asana workspace to the public camel-cased shape.
758
870
  *
@@ -854,7 +966,55 @@ export declare function toAsanaTask(value: z.output<typeof ASANA_PROVIDER_TASK_S
854
966
  name: string | undefined;
855
967
  type: string | undefined;
856
968
  } | undefined;
857
- customFields: z.core.util.JSONType[];
969
+ customFields: {
970
+ dateValue: {
971
+ date: string;
972
+ dateTime: string | undefined;
973
+ } | undefined;
974
+ displayValue: string | undefined;
975
+ enumValue: {
976
+ color: string | undefined;
977
+ enabled: boolean;
978
+ id: string;
979
+ name: string | undefined;
980
+ type: string | undefined;
981
+ } | undefined;
982
+ multiEnumValues: {
983
+ color: string | undefined;
984
+ enabled: boolean;
985
+ id: string;
986
+ name: string | undefined;
987
+ type: string | undefined;
988
+ }[];
989
+ numberValue: number | undefined;
990
+ peopleValue: {
991
+ id: string;
992
+ name: string | undefined;
993
+ type: string | undefined;
994
+ }[];
995
+ referenceValue: {
996
+ id: string;
997
+ name: string | undefined;
998
+ type: string | undefined;
999
+ }[];
1000
+ textValue: string | undefined;
1001
+ customLabel: string | undefined;
1002
+ currencyCode: string | undefined;
1003
+ description: string | undefined;
1004
+ enumOptions: {
1005
+ color: string | undefined;
1006
+ enabled: boolean;
1007
+ id: string;
1008
+ name: string | undefined;
1009
+ type: string | undefined;
1010
+ }[];
1011
+ format: string | undefined;
1012
+ precision: number | undefined;
1013
+ subtype: string;
1014
+ id: string;
1015
+ name: string | undefined;
1016
+ type: string | undefined;
1017
+ }[];
858
1018
  dueAt: string | undefined;
859
1019
  dueOn: string | undefined;
860
1020
  followers: {
@@ -990,7 +1150,55 @@ export declare function normalizeAsanaStory(value: unknown): {
990
1150
  export declare function normalizeAsanaTask(value: unknown): {
991
1151
  id: string;
992
1152
  completed: boolean;
993
- customFields: z.core.util.JSONType[];
1153
+ customFields: {
1154
+ id: string;
1155
+ enumOptions: {
1156
+ id: string;
1157
+ enabled: boolean;
1158
+ name?: string | undefined;
1159
+ type?: string | undefined;
1160
+ color?: string | undefined;
1161
+ }[];
1162
+ subtype: string;
1163
+ multiEnumValues: {
1164
+ id: string;
1165
+ enabled: boolean;
1166
+ name?: string | undefined;
1167
+ type?: string | undefined;
1168
+ color?: string | undefined;
1169
+ }[];
1170
+ peopleValue: {
1171
+ id: string;
1172
+ name?: string | undefined;
1173
+ type?: string | undefined;
1174
+ }[];
1175
+ referenceValue: {
1176
+ id: string;
1177
+ name?: string | undefined;
1178
+ type?: string | undefined;
1179
+ }[];
1180
+ name?: string | undefined;
1181
+ type?: string | undefined;
1182
+ customLabel?: string | undefined;
1183
+ currencyCode?: string | undefined;
1184
+ description?: string | undefined;
1185
+ format?: string | undefined;
1186
+ precision?: number | undefined;
1187
+ dateValue?: {
1188
+ date: string;
1189
+ dateTime?: string | undefined;
1190
+ } | undefined;
1191
+ displayValue?: string | undefined;
1192
+ enumValue?: {
1193
+ id: string;
1194
+ enabled: boolean;
1195
+ name?: string | undefined;
1196
+ type?: string | undefined;
1197
+ color?: string | undefined;
1198
+ } | undefined;
1199
+ numberValue?: number | undefined;
1200
+ textValue?: string | undefined;
1201
+ }[];
994
1202
  followers: {
995
1203
  id: string;
996
1204
  name?: string | undefined;
@@ -1058,3 +1266,9 @@ export declare function normalizeAsanaTask(value: unknown): {
1058
1266
  type?: string | undefined;
1059
1267
  } | undefined;
1060
1268
  };
1269
+ /**
1270
+ * Converts arbitrary provider JSON keys to camelCase recursively.
1271
+ *
1272
+ * @param value - Provider value to normalize.
1273
+ */
1274
+ export declare function camelCaseAsanaValue(value: unknown): unknown;
@@ -1,16 +1,6 @@
1
1
  import * as z from "zod";
2
- export const ASANA_RESOURCE_SCHEMA = z.object({
3
- /** Stable Asana globally unique identifier. */
4
- id: z.string(),
5
- /** Human-readable resource name, when available. */
6
- name: z.string().optional(),
7
- /** Provider resource type. */
8
- type: z.string().optional(),
9
- });
10
- export const ASANA_PAGE_INFO_SCHEMA = z.object({
11
- /** Opaque token for the next page, when more results are available. */
12
- nextOffset: z.string().optional(),
13
- });
2
+ import { ASANA_PROVIDER_RESOURCE_SCHEMA, ASANA_RESOURCE_SCHEMA, toAsanaResource, } from "./base.js";
3
+ import { ASANA_CUSTOM_FIELD_VALUE_SCHEMA, ASANA_PROVIDER_CUSTOM_FIELD_VALUE_SCHEMA, toAsanaCustomFieldValue, } from "./resources.js";
14
4
  export const ASANA_WORKSPACE_SCHEMA = ASANA_RESOURCE_SCHEMA.extend({
15
5
  /** Domains associated with this workspace. */
16
6
  emailDomains: z.string().array(),
@@ -80,8 +70,8 @@ export const ASANA_TASK_SCHEMA = ASANA_RESOURCE_SCHEMA.extend({
80
70
  createdAt: z.string().optional(),
81
71
  /** User who created the task. */
82
72
  createdBy: ASANA_RESOURCE_SCHEMA.optional(),
83
- /** Provider-native custom field values. */
84
- customFields: z.json().array(),
73
+ /** Typed custom field values with camelCase nested fields. */
74
+ customFields: ASANA_CUSTOM_FIELD_VALUE_SCHEMA.array(),
85
75
  /** Task due timestamp, for tasks with a due time. */
86
76
  dueAt: z.string().optional(),
87
77
  /** Task due date. */
@@ -231,27 +221,13 @@ export const ASANA_COMMENT_ADDED_EVENT_SCHEMA = ASANA_STORY_SCHEMA.extend({
231
221
  /** Provider resource type narrowed by the semantic trigger. */
232
222
  type: z.literal("story"),
233
223
  });
234
- export const ASANA_PROVIDER_RESOURCE_SCHEMA = z.looseObject({
235
- gid: z.string(),
236
- name: z.string().optional(),
237
- resource_subtype: z.string().optional(),
238
- resource_type: z.string().optional(),
239
- });
240
- export const ASANA_PROVIDER_PAGE_SCHEMA = z.looseObject({
241
- next_page: z
242
- .looseObject({
243
- offset: z.string(),
244
- })
245
- .nullable()
246
- .optional(),
247
- });
248
224
  const ASANA_PROVIDER_MEMBERSHIP_SCHEMA = z.looseObject({
249
225
  project: ASANA_PROVIDER_RESOURCE_SCHEMA,
250
226
  section: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
251
227
  });
252
228
  export const ASANA_PROVIDER_WORKSPACE_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.extend({
253
- email_domains: z.string().array().prefault([]),
254
- is_organization: z.boolean().prefault(false),
229
+ email_domains: z.string().array(),
230
+ is_organization: z.boolean(),
255
231
  });
256
232
  export const ASANA_PROVIDER_USER_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.extend({
257
233
  email: z.string().optional(),
@@ -260,10 +236,10 @@ export const ASANA_PROVIDER_USER_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.extend(
260
236
  image_128x128: z.string().optional(),
261
237
  })
262
238
  .nullish(),
263
- workspaces: ASANA_PROVIDER_RESOURCE_SCHEMA.array().prefault([]),
239
+ workspaces: ASANA_PROVIDER_RESOURCE_SCHEMA.array(),
264
240
  });
265
241
  export const ASANA_PROVIDER_PROJECT_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.extend({
266
- archived: z.boolean().prefault(false),
242
+ archived: z.boolean(),
267
243
  color: z.string().nullish(),
268
244
  created_at: z.string().optional(),
269
245
  default_view: z.string().optional(),
@@ -272,7 +248,7 @@ export const ASANA_PROVIDER_PROJECT_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.exte
272
248
  modified_at: z.string().optional(),
273
249
  notes: z.string().optional(),
274
250
  permalink_url: z.string().optional(),
275
- public: z.boolean().prefault(false),
251
+ public: z.boolean(),
276
252
  start_on: z.string().nullish(),
277
253
  team: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
278
254
  workspace: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
@@ -284,36 +260,36 @@ export const ASANA_PROVIDER_SECTION_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.exte
284
260
  export const ASANA_PROVIDER_TASK_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.extend({
285
261
  assignee: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
286
262
  assignee_status: z.string().optional(),
287
- completed: z.boolean().prefault(false),
263
+ completed: z.boolean(),
288
264
  completed_at: z.string().nullish(),
289
265
  completed_by: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
290
266
  created_at: z.string().optional(),
291
267
  created_by: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
292
- custom_fields: z.json().array().prefault([]),
268
+ custom_fields: ASANA_PROVIDER_CUSTOM_FIELD_VALUE_SCHEMA.array().optional(),
293
269
  due_at: z.string().nullish(),
294
270
  due_on: z.string().nullish(),
295
- followers: ASANA_PROVIDER_RESOURCE_SCHEMA.array().prefault([]),
271
+ followers: ASANA_PROVIDER_RESOURCE_SCHEMA.array(),
296
272
  html_notes: z.string().optional(),
297
- memberships: ASANA_PROVIDER_MEMBERSHIP_SCHEMA.array().prefault([]),
273
+ memberships: ASANA_PROVIDER_MEMBERSHIP_SCHEMA.array(),
298
274
  modified_at: z.string().optional(),
299
275
  notes: z.string().optional(),
300
276
  parent: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
301
277
  permalink_url: z.string().optional(),
302
- projects: ASANA_PROVIDER_RESOURCE_SCHEMA.array().prefault([]),
278
+ projects: ASANA_PROVIDER_RESOURCE_SCHEMA.array(),
303
279
  resource_subtype: z.string().optional(),
304
280
  start_at: z.string().nullish(),
305
281
  start_on: z.string().nullish(),
306
- tags: ASANA_PROVIDER_RESOURCE_SCHEMA.array().prefault([]),
282
+ tags: ASANA_PROVIDER_RESOURCE_SCHEMA.array(),
307
283
  workspace: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
308
284
  });
309
285
  export const ASANA_PROVIDER_STORY_SCHEMA = ASANA_PROVIDER_RESOURCE_SCHEMA.extend({
310
286
  created_at: z.string().optional(),
311
287
  created_by: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
312
288
  html_text: z.string().optional(),
313
- is_edited: z.boolean().prefault(false),
314
- is_pinned: z.boolean().prefault(false),
289
+ is_edited: z.boolean(),
290
+ is_pinned: z.boolean(),
315
291
  resource_subtype: z.string().optional(),
316
- text: z.string().prefault(""),
292
+ text: z.string(),
317
293
  });
318
294
  const ASANA_PROVIDER_EVENT_CHANGE_SCHEMA = z.looseObject({
319
295
  action: z.enum(["added", "changed", "removed"]),
@@ -331,26 +307,6 @@ export const ASANA_PROVIDER_EVENT_SCHEMA = z.looseObject({
331
307
  type: z.string(),
332
308
  user: ASANA_PROVIDER_RESOURCE_SCHEMA.nullish(),
333
309
  });
334
- /**
335
- * Converts an Asana compact resource to the public camel-cased shape.
336
- *
337
- * @param value - Provider-native compact resource.
338
- */
339
- export function toAsanaResource(value) {
340
- return {
341
- id: value.gid,
342
- name: value.name,
343
- type: value.resource_type,
344
- };
345
- }
346
- /**
347
- * Converts Asana offset pagination metadata.
348
- *
349
- * @param value - Provider-native response page.
350
- */
351
- export function toAsanaPageInfo(value) {
352
- return { nextOffset: value.next_page?.offset };
353
- }
354
310
  /**
355
311
  * Converts an Asana workspace to the public camel-cased shape.
356
312
  *
@@ -428,7 +384,7 @@ export function toAsanaTask(value) {
428
384
  : undefined,
429
385
  createdAt: value.created_at,
430
386
  createdBy: value.created_by ? toAsanaResource(value.created_by) : undefined,
431
- customFields: value.custom_fields,
387
+ customFields: (value.custom_fields ?? []).map(toAsanaCustomFieldValue),
432
388
  dueAt: value.due_at ?? undefined,
433
389
  dueOn: value.due_on ?? undefined,
434
390
  followers: value.followers.map(toAsanaResource),
@@ -479,10 +435,10 @@ export function normalizeAsanaEvent(value, watchedResourceId) {
479
435
  change: event.change
480
436
  ? {
481
437
  action: event.change.action,
482
- addedValue: event.change.added_value,
483
- field: event.change.field,
484
- newValue: event.change.new_value,
485
- removedValue: event.change.removed_value,
438
+ addedValue: camelCaseAsanaValue(event.change.added_value),
439
+ field: camelCaseAsanaKey(event.change.field),
440
+ newValue: camelCaseAsanaValue(event.change.new_value),
441
+ removedValue: camelCaseAsanaValue(event.change.removed_value),
486
442
  }
487
443
  : undefined,
488
444
  createdAt: event.created_at,
@@ -510,3 +466,42 @@ export function normalizeAsanaStory(value) {
510
466
  export function normalizeAsanaTask(value) {
511
467
  return ASANA_TASK_SCHEMA.parse(toAsanaTask(ASANA_PROVIDER_TASK_SCHEMA.parse(value)));
512
468
  }
469
+ /**
470
+ * Converts arbitrary provider JSON keys to camelCase recursively.
471
+ *
472
+ * @param value - Provider value to normalize.
473
+ */
474
+ export function camelCaseAsanaValue(value) {
475
+ if (Array.isArray(value))
476
+ return value.map(camelCaseAsanaValue);
477
+ if (value === null || typeof value !== "object")
478
+ return value;
479
+ const gid = "gid" in value ? value.gid : undefined;
480
+ const name = "name" in value ? value.name : undefined;
481
+ const resourceType = "resource_type" in value ? value.resource_type : undefined;
482
+ if (typeof gid === "string" && "resource_type" in value) {
483
+ return {
484
+ ...Object.fromEntries(Object.entries(value)
485
+ .filter(([key]) => !["gid", "name", "resource_type"].includes(key))
486
+ .map(([key, item]) => [
487
+ camelCaseAsanaKey(key),
488
+ camelCaseAsanaValue(item),
489
+ ])),
490
+ id: gid,
491
+ ...(typeof name === "string" && { name }),
492
+ ...(typeof resourceType === "string" && { type: resourceType }),
493
+ };
494
+ }
495
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [
496
+ camelCaseAsanaKey(key),
497
+ camelCaseAsanaValue(item),
498
+ ]));
499
+ }
500
+ /**
501
+ * Converts one snake_case provider key to camelCase.
502
+ *
503
+ * @param value - Provider key.
504
+ */
505
+ function camelCaseAsanaKey(value) {
506
+ return value.replace(/_([a-z0-9])/g, (_, character) => character.toUpperCase());
507
+ }