@zimbra/api-client 97.0.0 → 99.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zimbra/api-client",
3
3
  "amdName": "zmApiJsClient",
4
- "version": "97.0.0",
4
+ "version": "99.0.0",
5
5
  "description": "Zimbra JS API Client and GraphQL client for making requests against the Zimbra SOAP API.",
6
6
  "main": "dist/zm-api-js-client.js",
7
7
  "source": "index.ts",
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@apollo/client": "3.4.16",
51
- "@graphql-tools/schema": "^10.0.3",
51
+ "@graphql-tools/schema": "^10.0.25",
52
52
  "dataloader": "^2.2.2",
53
53
  "graphql": "^16.9.0",
54
54
  "lodash": "^4.17.21",
@@ -56,15 +56,15 @@
56
56
  },
57
57
  "devDependencies": {
58
58
  "@babel/cli": "^7.17.10",
59
- "@babel/core": "^7.18.2",
59
+ "@babel/core": "^7.28.0",
60
60
  "@babel/plugin-proposal-class-properties": "^7.17.12",
61
61
  "@babel/preset-env": "^7.18.2",
62
- "@babel/preset-typescript": "^7.17.12",
62
+ "@babel/preset-typescript": "^7.27.1",
63
63
  "@babel/register": "^7.17.7",
64
- "@graphql-codegen/cli": "^2.6.2",
65
- "@graphql-codegen/typescript": "^4.0.1",
64
+ "@graphql-codegen/cli": "^5.0.7",
65
+ "@graphql-codegen/typescript": "^4.1.6",
66
66
  "@rollup/plugin-babel": "^6.0.4",
67
- "@rollup/plugin-commonjs": "^22.0.0",
67
+ "@rollup/plugin-commonjs": "^28.0.5",
68
68
  "@rollup/plugin-graphql": "^1.1.0",
69
69
  "@rollup/plugin-node-resolve": "^13.3.0",
70
70
  "@rollup/plugin-typescript": "^11.1.5",
@@ -73,12 +73,12 @@
73
73
  "@types/node": "^20.10.4",
74
74
  "@types/whatwg-fetch": "^0.0.33",
75
75
  "babel-plugin-lodash": "^3.3.4",
76
- "chai": "^4.3.7",
76
+ "chai": "^4.5.0",
77
77
  "copyfiles": "^2.4.1",
78
78
  "cross-var": "^1.1.0",
79
79
  "husky": "^9.1.7",
80
80
  "lint-staged": "15.2.8",
81
- "mocha": "^10.2.0",
81
+ "mocha": "^10.8.2",
82
82
  "npm-run-all": "^4.1.5",
83
83
  "prettier": "^2.6.2",
84
84
  "rimraf": "^5.0.1",
@@ -1,3 +1,4 @@
1
+ import { FieldFunctionOptions } from '@apollo/client';
1
2
  import { defaultDataIdFromObject, InMemoryCache, InMemoryCacheConfig } from '@apollo/client/core';
2
3
  import get from 'lodash/get';
3
4
  import uniqWith from 'lodash/uniqWith';
@@ -58,6 +59,29 @@ function createPossibleTypes(possibleTypesFactory = Object) {
58
59
  });
59
60
  }
60
61
 
62
+ function isReference(obj: any): obj is { __ref: string } {
63
+ return obj && typeof obj === 'object' && '__ref' in obj;
64
+ }
65
+
66
+ function resolvedRefrenceAddress(
67
+ address: EmailAddress[],
68
+ readField: FieldFunctionOptions['readField']
69
+ ) {
70
+ return (address || []).map(item => {
71
+ if (isReference(item)) {
72
+ return {
73
+ __typename: readField('__typename', item),
74
+ address: readField('address', item),
75
+ type: readField('type', item),
76
+ isGroup: readField('isGroup', item),
77
+ name: readField('name', item),
78
+ displayName: readField('displayName', item)
79
+ };
80
+ }
81
+ return item;
82
+ });
83
+ }
84
+
61
85
  const typePolicies = {
62
86
  Query: {
63
87
  fields: {
@@ -95,11 +119,17 @@ const typePolicies = {
95
119
  MessageInfo: {
96
120
  fields: {
97
121
  emailAddresses: {
98
- merge(existing: EmailAddress[], incoming: EmailAddress[]) {
99
- return uniqWith(
100
- [...(existing || []), ...(incoming || [])],
101
- (a, b) => a.address === b.address && a.type === b.type
102
- );
122
+ merge(
123
+ existing: EmailAddress[] = [],
124
+ incoming: EmailAddress[] = [],
125
+ { readField }: FieldFunctionOptions
126
+ ) {
127
+ const resolvedExisting = resolvedRefrenceAddress(existing, readField);
128
+ const resolvedIncoming = resolvedRefrenceAddress(incoming, readField);
129
+ const combined = [...(resolvedIncoming || []), ...(resolvedExisting || [])];
130
+ // Prefer entries where isGroup is not null
131
+ combined.sort((a, b) => Number(b.isGroup != null) - Number(a.isGroup != null));
132
+ return uniqWith(combined, (a, b) => a.address === b.address && a.type === b.type);
103
133
  }
104
134
  }
105
135
  }
@@ -59,6 +59,7 @@ import {
59
59
  } from '../request';
60
60
  import { JsonRequestOptions, Namespace, RequestBody, RequestOptions } from '../request/types';
61
61
  import {
62
+ ActionOpResponse,
62
63
  AddMsgInput,
63
64
  CalendarItemInput,
64
65
  CounterAppointmentInput,
@@ -384,7 +385,7 @@ export class ZimbraBatchClient {
384
385
  });
385
386
 
386
387
  public action = (type: ActionType, options: ActionOptions) => {
387
- const { ids, id, ...rest } = options;
388
+ const { ids, id, isBatchOperation, ...rest } = options;
388
389
 
389
390
  return this.jsonRequest({
390
391
  name: type,
@@ -394,7 +395,7 @@ export class ZimbraBatchClient {
394
395
  ...denormalize(ActionOptionsEntity)(rest)
395
396
  }
396
397
  },
397
- singleRequest: true
398
+ singleRequest: !isBatchOperation
398
399
  }).then(Boolean);
399
400
  };
400
401
 
@@ -569,11 +570,21 @@ export class ZimbraBatchClient {
569
570
  }
570
571
  };
571
572
 
572
- public checkCalendar = ({ id, value }: FolderActionCheckCalendarInput) =>
573
- this.action(ActionType.folder, {
574
- id,
575
- op: value ? 'check' : '!check'
573
+ public checkCalendar = ({
574
+ id,
575
+ value
576
+ }: FolderActionCheckCalendarInput): Promise<ActionOpResponse> => {
577
+ return this.jsonRequest({
578
+ name: ActionType.folder,
579
+ body: {
580
+ action: {
581
+ id,
582
+ op: value ? 'check' : '!check'
583
+ }
584
+ },
585
+ singleRequest: true
576
586
  });
587
+ };
577
588
 
578
589
  public clientInfo = ({ by, domain }: any) =>
579
590
  this.jsonRequest({
@@ -264,6 +264,7 @@ export interface ActionOptions {
264
264
  folderId?: string;
265
265
  id?: string;
266
266
  ids?: Array<string>;
267
+ isBatchOperation?: boolean;
267
268
  isLocal?: boolean;
268
269
  name?: string;
269
270
  op: string;
@@ -87,12 +87,14 @@ const CalendarItemAttendees = new Entity({
87
87
  ptst: 'participationStatus',
88
88
  a: 'address',
89
89
  d: 'name',
90
- cutype: 'calendarUserType'
90
+ cutype: 'calendarUserType',
91
+ isGroup: 'isGroup'
91
92
  });
92
93
 
93
94
  const CalendarItemReply = new Entity({
94
95
  ptst: 'participationStatus',
95
- at: 'address'
96
+ at: 'address',
97
+ isGroup: 'isGroup'
96
98
  });
97
99
 
98
100
  const CalendarItemOrganizer = new Entity({
@@ -82,6 +82,8 @@ export type AccountInfo = {
82
82
  export type AccountInfoAttrs = {
83
83
  __typename?: 'AccountInfoAttrs';
84
84
  displayName?: Maybe<Scalars['String']['output']>;
85
+ zimbraAttachmentsBlocked?: Maybe<Scalars['Boolean']['output']>;
86
+ zimbraAttachmentsViewInHtmlOnly?: Maybe<Scalars['Boolean']['output']>;
85
87
  zimbraBlockEmailSendFromImapPop?: Maybe<Scalars['Boolean']['output']>;
86
88
  zimbraBrandingFolderName?: Maybe<Scalars['String']['output']>;
87
89
  zimbraDataSourceMaxNumEntries?: Maybe<Scalars['Int']['output']>;
@@ -123,6 +125,7 @@ export type AccountInfoAttrs = {
123
125
  zimbraFeatureMailSendLaterEnabled?: Maybe<Scalars['Boolean']['output']>;
124
126
  zimbraFeatureManageZimlets?: Maybe<Scalars['Boolean']['output']>;
125
127
  zimbraFeatureMobileSyncEnabled?: Maybe<Scalars['Boolean']['output']>;
128
+ zimbraFeatureOptionsEnabled?: Maybe<Scalars['Boolean']['output']>;
126
129
  zimbraFeatureOutOfOfficeReplyEnabled?: Maybe<Scalars['Boolean']['output']>;
127
130
  zimbraFeaturePop3DataSourceEnabled?: Maybe<Scalars['Boolean']['output']>;
128
131
  zimbraFeaturePowerPasteEnabled?: Maybe<Scalars['Boolean']['output']>;
@@ -169,6 +172,7 @@ export type AccountInfoAttrs = {
169
172
  zimbraPasswordMinNumericChars?: Maybe<Scalars['Int']['output']>;
170
173
  zimbraPasswordMinPunctuationChars?: Maybe<Scalars['Int']['output']>;
171
174
  zimbraPasswordMinUpperCaseChars?: Maybe<Scalars['Int']['output']>;
175
+ zimbraPop3Enabled?: Maybe<Scalars['Boolean']['output']>;
172
176
  zimbraPublicSharingEnabled?: Maybe<Scalars['Boolean']['output']>;
173
177
  zimbraSignupAffiliate?: Maybe<Scalars['String']['output']>;
174
178
  zimbraSignupRecoveryEmail?: Maybe<Scalars['String']['output']>;
@@ -612,6 +616,7 @@ export type CalendarItemAttendee = {
612
616
  __typename?: 'CalendarItemAttendee';
613
617
  address?: Maybe<Scalars['String']['output']>;
614
618
  calendarUserType?: Maybe<Scalars['String']['output']>;
619
+ isGroup?: Maybe<Scalars['Boolean']['output']>;
615
620
  name?: Maybe<Scalars['String']['output']>;
616
621
  participationStatus?: Maybe<ParticipationStatus>;
617
622
  role?: Maybe<ParticipationRole>;
@@ -708,6 +713,7 @@ export type CalendarItemInviteComponentCounterInput = {
708
713
  percentComplete?: InputMaybe<Scalars['String']['input']>;
709
714
  priority?: InputMaybe<Scalars['String']['input']>;
710
715
  recurrence?: InputMaybe<CalendarItemRecurrenceInput>;
716
+ seq?: InputMaybe<Scalars['Int']['input']>;
711
717
  start: CalendarItemDateTimeInput;
712
718
  status?: InputMaybe<InviteCompletionStatus>;
713
719
  uid?: InputMaybe<Scalars['String']['input']>;
@@ -829,6 +835,7 @@ export type CalendarItemRecurrenceRuleInput = {
829
835
  export type CalendarItemReply = {
830
836
  __typename?: 'CalendarItemReply';
831
837
  address?: Maybe<Scalars['String']['output']>;
838
+ isGroup?: Maybe<Scalars['Boolean']['output']>;
832
839
  participationStatus?: Maybe<ParticipationStatus>;
833
840
  };
834
841
 
@@ -2194,6 +2201,7 @@ export type Instance = {
2194
2201
 
2195
2202
  export type InstanceDate = {
2196
2203
  date?: InputMaybe<Scalars['String']['input']>;
2204
+ timezone?: InputMaybe<Scalars['String']['input']>;
2197
2205
  };
2198
2206
 
2199
2207
  export type IntervalRule = {
@@ -2656,7 +2664,7 @@ export type Mutation = {
2656
2664
  cancelTask?: Maybe<Scalars['Boolean']['output']>;
2657
2665
  changeFolderColor?: Maybe<Scalars['Boolean']['output']>;
2658
2666
  changePassword?: Maybe<AuthResponse>;
2659
- checkCalendar?: Maybe<Scalars['Boolean']['output']>;
2667
+ checkCalendar?: Maybe<ActionOpResponse>;
2660
2668
  contactAction?: Maybe<ActionOpResponse>;
2661
2669
  conversationAction?: Maybe<Scalars['Boolean']['output']>;
2662
2670
  counterAppointment?: Maybe<Scalars['Boolean']['output']>;
@@ -2756,6 +2764,7 @@ export type MutationActionArgs = {
2756
2764
  folderId?: InputMaybe<Scalars['ID']['input']>;
2757
2765
  id?: InputMaybe<Scalars['ID']['input']>;
2758
2766
  ids?: InputMaybe<Array<Scalars['ID']['input']>>;
2767
+ isBatchOperation?: InputMaybe<Scalars['Boolean']['input']>;
2759
2768
  isLocal?: InputMaybe<Scalars['Boolean']['input']>;
2760
2769
  name?: InputMaybe<Scalars['String']['input']>;
2761
2770
  op: Scalars['String']['input'];
@@ -2833,6 +2842,7 @@ export type MutationContactActionArgs = {
2833
2842
  folderId?: InputMaybe<Scalars['ID']['input']>;
2834
2843
  id?: InputMaybe<Scalars['ID']['input']>;
2835
2844
  ids?: InputMaybe<Array<Scalars['ID']['input']>>;
2845
+ isBatchOperation?: InputMaybe<Scalars['Boolean']['input']>;
2836
2846
  op: Scalars['String']['input'];
2837
2847
  tagNames?: InputMaybe<Scalars['String']['input']>;
2838
2848
  };
@@ -3021,6 +3031,7 @@ export type MutationItemActionArgs = {
3021
3031
  folderId?: InputMaybe<Scalars['ID']['input']>;
3022
3032
  id?: InputMaybe<Scalars['ID']['input']>;
3023
3033
  ids?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;
3034
+ isBatchOperation?: InputMaybe<Scalars['Boolean']['input']>;
3024
3035
  name?: InputMaybe<Scalars['String']['input']>;
3025
3036
  op: Scalars['String']['input'];
3026
3037
  tagNames?: InputMaybe<Scalars['String']['input']>;
@@ -3411,6 +3422,13 @@ export type PolicyInput = {
3411
3422
  policy?: InputMaybe<Array<InputMaybe<PolicyAttrsInput>>>;
3412
3423
  };
3413
3424
 
3425
+ export enum Pop3DeleteOption {
3426
+ Delete = 'delete',
3427
+ Keep = 'keep',
3428
+ Read = 'read',
3429
+ Trash = 'trash'
3430
+ }
3431
+
3414
3432
  export enum PrefCalendarInitialView {
3415
3433
  Day = 'day',
3416
3434
  List = 'list',
@@ -3475,6 +3493,7 @@ export type Preferences = {
3475
3493
  zimbraPrefHtmlEditorDefaultFontColor?: Maybe<Scalars['String']['output']>;
3476
3494
  zimbraPrefHtmlEditorDefaultFontFamily?: Maybe<Scalars['String']['output']>;
3477
3495
  zimbraPrefHtmlEditorDefaultFontSize?: Maybe<Scalars['String']['output']>;
3496
+ zimbraPrefImapEnabled?: Maybe<Scalars['Boolean']['output']>;
3478
3497
  zimbraPrefLocale?: Maybe<Scalars['String']['output']>;
3479
3498
  zimbraPrefMailDeliveryStatusNotification?: Maybe<Scalars['Boolean']['output']>;
3480
3499
  zimbraPrefMailForwardingAddress?: Maybe<Scalars['String']['output']>;
@@ -3497,6 +3516,10 @@ export type Preferences = {
3497
3516
  zimbraPrefOutOfOfficeUntilDate?: Maybe<Scalars['String']['output']>;
3498
3517
  zimbraPrefPasswordRecoveryAddress?: Maybe<Scalars['String']['output']>;
3499
3518
  zimbraPrefPasswordRecoveryAddressStatus?: Maybe<PasswordRecoveryAddressStatus>;
3519
+ zimbraPrefPop3DeleteOption?: Maybe<Pop3DeleteOption>;
3520
+ zimbraPrefPop3DownloadSince?: Maybe<Scalars['String']['output']>;
3521
+ zimbraPrefPop3Enabled?: Maybe<Scalars['Boolean']['output']>;
3522
+ zimbraPrefPop3IncludeSpam?: Maybe<Scalars['Boolean']['output']>;
3500
3523
  zimbraPrefPowerPasteEnabled?: Maybe<Scalars['Boolean']['output']>;
3501
3524
  zimbraPrefPrimaryTwoFactorAuthMethod?: Maybe<Scalars['String']['output']>;
3502
3525
  zimbraPrefReadingPaneEnabled?: Maybe<Scalars['Boolean']['output']>;
@@ -3541,6 +3564,7 @@ export type PreferencesInput = {
3541
3564
  zimbraPrefHtmlEditorDefaultFontColor?: InputMaybe<Scalars['String']['input']>;
3542
3565
  zimbraPrefHtmlEditorDefaultFontFamily?: InputMaybe<Scalars['String']['input']>;
3543
3566
  zimbraPrefHtmlEditorDefaultFontSize?: InputMaybe<Scalars['String']['input']>;
3567
+ zimbraPrefImapEnabled?: InputMaybe<Scalars['Boolean']['input']>;
3544
3568
  zimbraPrefLocale?: InputMaybe<Scalars['String']['input']>;
3545
3569
  zimbraPrefMailDeliveryStatusNotification?: InputMaybe<Scalars['Boolean']['input']>;
3546
3570
  zimbraPrefMailForwardingAddress?: InputMaybe<Scalars['String']['input']>;
@@ -3561,6 +3585,10 @@ export type PreferencesInput = {
3561
3585
  zimbraPrefOutOfOfficeStatusAlertOnLogin?: InputMaybe<Scalars['Boolean']['input']>;
3562
3586
  zimbraPrefOutOfOfficeSuppressExternalReply?: InputMaybe<Scalars['Boolean']['input']>;
3563
3587
  zimbraPrefOutOfOfficeUntilDate?: InputMaybe<Scalars['String']['input']>;
3588
+ zimbraPrefPop3DeleteOption?: InputMaybe<Pop3DeleteOption>;
3589
+ zimbraPrefPop3DownloadSince?: InputMaybe<Scalars['String']['input']>;
3590
+ zimbraPrefPop3Enabled?: InputMaybe<Scalars['Boolean']['input']>;
3591
+ zimbraPrefPop3IncludeSpam?: InputMaybe<Scalars['Boolean']['input']>;
3564
3592
  zimbraPrefPowerPasteEnabled?: InputMaybe<Scalars['Boolean']['input']>;
3565
3593
  zimbraPrefPrimaryTwoFactorAuthMethod?: InputMaybe<Scalars['String']['input']>;
3566
3594
  zimbraPrefReadingPaneEnabled?: InputMaybe<Scalars['Boolean']['input']>;
@@ -4233,6 +4261,7 @@ export type SearchResponse = {
4233
4261
 
4234
4262
  export enum SearchType {
4235
4263
  Appointment = 'appointment',
4264
+ Briefcase = 'briefcase',
4236
4265
  Contact = 'contact',
4237
4266
  Conversation = 'conversation',
4238
4267
  Document = 'document',
@@ -203,6 +203,7 @@ enum SearchType {
203
203
  wiki
204
204
  document
205
205
  unknown
206
+ briefcase
206
207
  }
207
208
 
208
209
  enum ContactType {
@@ -322,6 +323,13 @@ enum PrefClientType {
322
323
  standard
323
324
  }
324
325
 
326
+ enum Pop3DeleteOption {
327
+ keep
328
+ read
329
+ trash
330
+ delete
331
+ }
332
+
325
333
  enum Mode {
326
334
  text
327
335
  html
@@ -1454,6 +1462,8 @@ type AccountZimletConfigInfo {
1454
1462
 
1455
1463
  type AccountInfoAttrs {
1456
1464
  displayName: String
1465
+ zimbraAttachmentsBlocked: Boolean
1466
+ zimbraAttachmentsViewInHtmlOnly: Boolean
1457
1467
  zimbraBrandingFolderName: String
1458
1468
  zimbraDataSourceMaxNumEntries: Int
1459
1469
  zimbraDomainTrialConvertAtExpiration: Boolean
@@ -1549,6 +1559,8 @@ type AccountInfoAttrs {
1549
1559
  zimbraFeatureAdvancedChatEnabled: Boolean
1550
1560
  zimbraMailIdleSessionTimeout: String
1551
1561
  zimbraFeatureDeliveryStatusNotificationEnabled: Boolean
1562
+ zimbraPop3Enabled: Boolean
1563
+ zimbraFeatureOptionsEnabled: Boolean
1552
1564
  }
1553
1565
 
1554
1566
  type AccountCos {
@@ -1700,6 +1712,11 @@ type Preferences {
1700
1712
  zimbraPrefDisplayTimeInMailList: Boolean
1701
1713
  zimbraPrefPrimaryTwoFactorAuthMethod: String
1702
1714
  zimbraPrefMailDeliveryStatusNotification: Boolean
1715
+ zimbraPrefImapEnabled: Boolean
1716
+ zimbraPrefPop3Enabled: Boolean
1717
+ zimbraPrefPop3DownloadSince: String
1718
+ zimbraPrefPop3IncludeSpam: Boolean
1719
+ zimbraPrefPop3DeleteOption: Pop3DeleteOption
1703
1720
  }
1704
1721
 
1705
1722
  type GetAppointmentResponse {
@@ -2427,7 +2444,8 @@ input CalendarItemInviteComponentCounterInput {
2427
2444
  status: InviteCompletionStatus
2428
2445
  noBlob: Boolean
2429
2446
  description: [CalendarItemInviteComponentDescriptionInput]
2430
- draft: Boolean
2447
+ draft: Boolean,
2448
+ seq: Int
2431
2449
  }
2432
2450
 
2433
2451
  type CalendarItemAttendee {
@@ -2437,11 +2455,13 @@ type CalendarItemAttendee {
2437
2455
  address: String
2438
2456
  name: String
2439
2457
  calendarUserType: String
2458
+ isGroup: Boolean
2440
2459
  }
2441
2460
 
2442
2461
  type CalendarItemReply {
2443
2462
  participationStatus: ParticipationStatus
2444
2463
  address: String
2464
+ isGroup: Boolean
2445
2465
  }
2446
2466
 
2447
2467
  input CalendarItemAttendeesInput {
@@ -2777,6 +2797,11 @@ input PreferencesInput {
2777
2797
  zimbraPrefPrimaryTwoFactorAuthMethod: String
2778
2798
  zimbraPrefDeleteInviteOnReply: Boolean
2779
2799
  zimbraPrefMailDeliveryStatusNotification: Boolean
2800
+ zimbraPrefImapEnabled: Boolean
2801
+ zimbraPrefPop3Enabled: Boolean
2802
+ zimbraPrefPop3DownloadSince: String
2803
+ zimbraPrefPop3IncludeSpam: Boolean
2804
+ zimbraPrefPop3DeleteOption: Pop3DeleteOption
2780
2805
  }
2781
2806
 
2782
2807
  input ModifyIdentityInput {
@@ -3150,7 +3175,8 @@ input NameIdInput {
3150
3175
  name: String
3151
3176
  }
3152
3177
  input InstanceDate {
3153
- date: String
3178
+ date: String,
3179
+ timezone: String
3154
3180
  }
3155
3181
  input DeleteAppointmentInput {
3156
3182
  instanceDate: InstanceDate
@@ -3691,6 +3717,7 @@ type Mutation {
3691
3717
  tagNames: String
3692
3718
  name: String
3693
3719
  isLocal: Boolean
3720
+ isBatchOperation: Boolean
3694
3721
  recursive: Boolean
3695
3722
  destFolderLocal: Boolean
3696
3723
  ): Boolean
@@ -3715,13 +3742,14 @@ type Mutation {
3715
3742
  content: String
3716
3743
  contentType: String
3717
3744
  ): ProfileImageChangeResponse
3718
- checkCalendar(id: ID!, value: Boolean!): Boolean
3745
+ checkCalendar(id: ID!, value: Boolean!): ActionOpResponse
3719
3746
  contactAction(
3720
3747
  id: ID
3721
3748
  ids: [ID!]
3722
3749
  folderId: ID
3723
3750
  op: String!
3724
3751
  tagNames: String
3752
+ isBatchOperation: Boolean
3725
3753
  ): ActionOpResponse
3726
3754
  conversationAction(ids: [ID!]!, op: String!): Boolean
3727
3755
  counterAppointment(
@@ -3784,6 +3812,7 @@ type Mutation {
3784
3812
  op: String!
3785
3813
  tagNames: String
3786
3814
  name: String
3815
+ isBatchOperation: Boolean
3787
3816
  ): Boolean
3788
3817
  importExternalAccount(externalAccount: ExternalAccountImportInput!): Boolean
3789
3818
  logout: Boolean
@@ -2,6 +2,7 @@ import { makeExecutableSchema } from '@graphql-tools/schema';
2
2
  import mapValues from 'lodash/mapValues';
3
3
 
4
4
  import {
5
+ ActionOpResponse,
5
6
  AddMsgInput,
6
7
  CalendarItemInput,
7
8
  CounterAppointmentInput,
@@ -281,7 +282,7 @@ export function createZimbraSchema(options: ZimbraSchemaOptions): {
281
282
  client.createMountpoint(variables as CreateMountpointInput),
282
283
  deleteAppointment: (_, { appointment }) =>
283
284
  client.deleteAppointment(appointment as DeleteAppointmentInput),
284
- checkCalendar: (_, variables) =>
285
+ checkCalendar: (_, variables): Promise<ActionOpResponse> =>
285
286
  client.checkCalendar(variables as FolderActionCheckCalendarInput),
286
287
  counterAppointment: (_, { counterAppointmentInvite }) =>
287
288
  client.counterAppointment(counterAppointmentInvite as CounterAppointmentInput),