├── .brackets.json ├── .github └── workflows │ └── codeql-analysis.yml ├── .gitignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── CHANGELOG.md ├── COPYRIGHT ├── LICENSE ├── README.md ├── SECURITY.md ├── enums in a file to individual files.ps1 ├── gulp.config.js ├── gulpfile.js ├── import fixup script.ps1 ├── package-lock.json ├── package.json ├── scripts ├── almond-build.js ├── build.js └── config │ ├── build.end │ ├── build.start │ ├── tsd.end │ └── tsd.start ├── singleFileBuildSequence.txt ├── src ├── js │ ├── AltDictionary.ts │ ├── Attributes │ │ ├── AttachableAttribute.ts │ │ ├── EwsEnumAttribute.ts │ │ ├── RequiredServerVersionAttribute.ts │ │ ├── SchemaAttribute.ts │ │ └── ServiceObjectDefinitionAttribute.ts │ ├── Autodiscover │ │ ├── AlternateMailbox.ts │ │ ├── AlternateMailboxCollection.ts │ │ ├── AutodiscoverDnsClient.ts │ │ ├── AutodiscoverError.ts │ │ ├── AutodiscoverResponseCollection.ts │ │ ├── AutodiscoverService.ts │ │ ├── AutodiscoverServiceDelegates.ts │ │ ├── ComparisonHelpers.ts │ │ ├── ConfigurationSettings │ │ │ ├── ConfigurationSettingsBase.ts │ │ │ └── Outlook │ │ │ │ ├── OutlookAccount.ts │ │ │ │ ├── OutlookConfigurationSettings.ts │ │ │ │ ├── OutlookProtocol.ts │ │ │ │ └── OutlookUser.ts │ │ ├── DirectoryHelper.ts │ │ ├── DocumentSharingLocation.ts │ │ ├── DocumentSharingLocationCollection.ts │ │ ├── DomainSettingError.ts │ │ ├── ProtocolConnection.ts │ │ ├── ProtocolConnectionCollection.ts │ │ ├── Requests │ │ │ ├── AutodiscoverRequest.ts │ │ │ ├── GetDomainSettingsRequest.ts │ │ │ └── GetUserSettingsRequest.ts │ │ ├── Responses │ │ │ ├── AutodiscoverResponse.ts │ │ │ ├── GetDomainSettingsResponse.ts │ │ │ ├── GetDomainSettingsResponseCollection.ts │ │ │ ├── GetUserSettingsResponse.ts │ │ │ └── GetUserSettingsResponseCollection.ts │ │ ├── UserSettingError.ts │ │ ├── WebClientUrl.ts │ │ └── WebClientUrlCollection.ts │ ├── ComplexProperties │ │ ├── AddressEntity.ts │ │ ├── AddressEntityCollection.ts │ │ ├── AppointmentOccurrenceId.ts │ │ ├── ApprovalRequestData.ts │ │ ├── ArchiveTag.ts │ │ ├── Attachment.ts │ │ ├── AttachmentCollection.ts │ │ ├── Attendee.ts │ │ ├── AttendeeCollection.ts │ │ ├── Availability │ │ │ ├── CalendarEvent.ts │ │ │ ├── CalendarEventDetails.ts │ │ │ ├── Conflict.ts │ │ │ ├── OofSettings.ts │ │ │ ├── Suggestion.ts │ │ │ ├── TimeSuggestion.ts │ │ │ ├── WorkingHours.ts │ │ │ └── WorkingPeriod.ts │ │ ├── ByteArrayArray.ts │ │ ├── ChangeHighlights.ts │ │ ├── ClientAccessTokenRequest.ts │ │ ├── ClientApp.ts │ │ ├── ClientAppMetadata.ts │ │ ├── ClientExtension.ts │ │ ├── CompleteName.ts │ │ ├── ComplexProperty.ts │ │ ├── ComplexPropertyCollection.ts │ │ ├── ContactEntity.ts │ │ ├── ContactEntityCollection.ts │ │ ├── ContactPhoneEntity.ts │ │ ├── ContactPhoneEntityCollection.ts │ │ ├── ConversationId.ts │ │ ├── ConversationNode.ts │ │ ├── ConversationNodeCollection.ts │ │ ├── ConversationRequest.ts │ │ ├── ConversationResponse.ts │ │ ├── CreateRuleOperation.ts │ │ ├── DelegatePermissions.ts │ │ ├── DelegateUser.ts │ │ ├── DeleteRuleOperation.ts │ │ ├── DeletedOccurrenceInfo.ts │ │ ├── DeletedOccurrenceInfoCollection.ts │ │ ├── DictionaryEntryProperty.ts │ │ ├── DictionaryProperty.ts │ │ ├── EmailAddress.ts │ │ ├── EmailAddressCollection.ts │ │ ├── EmailAddressDictionary.ts │ │ ├── EmailAddressEntity.ts │ │ ├── EmailAddressEntityCollection.ts │ │ ├── EmailAddressEntry.ts │ │ ├── EmailUserEntity.ts │ │ ├── EmailUserEntityCollection.ts │ │ ├── EnhancedLocation.ts │ │ ├── EntityExtractionResult.ts │ │ ├── ExtendedProperty.ts │ │ ├── ExtendedPropertyCollection.ts │ │ ├── ExtractedEntity.ts │ │ ├── FileAttachment.ts │ │ ├── Flag.ts │ │ ├── FolderId.ts │ │ ├── FolderIdCollection.ts │ │ ├── FolderPermission.ts │ │ ├── FolderPermissionCollection.ts │ │ ├── GenericItemAttachment.ts │ │ ├── GroupMember.ts │ │ ├── GroupMemberCollection.ts │ │ ├── HighlightTerm.ts │ │ ├── ImAddressDictionary.ts │ │ ├── ImAddressEntry.ts │ │ ├── InternetMessageHeader.ts │ │ ├── InternetMessageHeaderCollection.ts │ │ ├── ItemAttachment.ts │ │ ├── ItemAttachmentOf.ts │ │ ├── ItemCollection.ts │ │ ├── ItemId.ts │ │ ├── ItemIdCollection.ts │ │ ├── Mailbox.ts │ │ ├── ManagedFolderInformation.ts │ │ ├── MeetingSuggestion.ts │ │ ├── MeetingSuggestionCollection.ts │ │ ├── MeetingTimeZone.ts │ │ ├── MessageBody.ts │ │ ├── MimeContent.ts │ │ ├── MimeContentBase.ts │ │ ├── MimeContentUTF8.ts │ │ ├── NormalizedBody.ts │ │ ├── OccurrenceInfo.ts │ │ ├── OccurrenceInfoCollection.ts │ │ ├── OnlineMeetingSettings.ts │ │ ├── PersonaPostalAddress.ts │ │ ├── PhoneEntity.ts │ │ ├── PhoneEntityCollection.ts │ │ ├── PhoneNumberDictionary.ts │ │ ├── PhoneNumberEntry.ts │ │ ├── PhysicalAddressDictionary.ts │ │ ├── PhysicalAddressEntry.ts │ │ ├── PolicyTag.ts │ │ ├── Recurrence │ │ │ ├── DayOfTheWeekCollection.ts │ │ │ ├── Patterns │ │ │ │ ├── Recurrence.DailyPattern.ts │ │ │ │ ├── Recurrence.DailyRegenerationPattern.ts │ │ │ │ ├── Recurrence.IntervalPattern.ts │ │ │ │ ├── Recurrence.MonthlyPattern.ts │ │ │ │ ├── Recurrence.MonthlyRegenerationPattern.ts │ │ │ │ ├── Recurrence.RelativeMonthlyPattern.ts │ │ │ │ ├── Recurrence.RelativeYearlyPattern.ts │ │ │ │ ├── Recurrence.WeeklyPattern.ts │ │ │ │ ├── Recurrence.WeeklyRegenerationPattern.ts │ │ │ │ ├── Recurrence.YearlyPattern.ts │ │ │ │ ├── Recurrence.YearlyRegenerationPattern.ts │ │ │ │ └── Recurrence.ts │ │ │ └── Ranges │ │ │ │ ├── EndDateRecurrenceRange.ts │ │ │ │ ├── NoEndRecurrenceRange.ts │ │ │ │ ├── NumberedRecurrenceRange.ts │ │ │ │ └── RecurrenceRange.ts │ │ ├── RecurringAppointmentMasterId.ts │ │ ├── RetentionTagBase.ts │ │ ├── Rule.ts │ │ ├── RuleActions.ts │ │ ├── RuleCollection.ts │ │ ├── RuleError.ts │ │ ├── RuleErrorCollection.ts │ │ ├── RuleOperation.ts │ │ ├── RuleOperationError.ts │ │ ├── RuleOperationErrorCollection.ts │ │ ├── RulePredicateDateRange.ts │ │ ├── RulePredicateSizeRange.ts │ │ ├── RulePredicates.ts │ │ ├── SearchFolderParameters.ts │ │ ├── ServiceId.ts │ │ ├── SetClientExtensionAction.ts │ │ ├── SetRuleOperation.ts │ │ ├── StringList.ts │ │ ├── TaskSuggestion.ts │ │ ├── TaskSuggestionCollection.ts │ │ ├── TextBody.ts │ │ ├── TimeChange.ts │ │ ├── TimeChangeRecurrence.ts │ │ ├── TimeZones │ │ │ ├── AbsoluteDateTransition.ts │ │ │ ├── AbsoluteDayOfMonthTransition.ts │ │ │ ├── AbsoluteMonthTransition.ts │ │ │ ├── RelativeDayOfMonthTransition.ts │ │ │ ├── TimeZoneDefinition.ts │ │ │ ├── TimeZonePeriod.ts │ │ │ ├── TimeZoneTransition.ts │ │ │ └── TimeZoneTransitionGroup.ts │ │ ├── UniqueBody.ts │ │ ├── UrlEntity.ts │ │ ├── UrlEntityCollection.ts │ │ ├── UserConfigurationDictionary.ts │ │ ├── UserId.ts │ │ ├── VotingInformation.ts │ │ └── VotingOptionData.ts │ ├── ConfigurationApi.ts │ ├── Core │ │ ├── EwsHttpWebRequest.ts │ │ ├── EwsHttpWebRequestFactory.ts │ │ ├── EwsHttpWebResponse.ts │ │ ├── EwsLogging.ts │ │ ├── EwsServiceJsonReader.ts │ │ ├── EwsServiceMultiResponseXmlReader.ts │ │ ├── EwsServiceXmlReader.ts │ │ ├── EwsServiceXmlWriter.ts │ │ ├── EwsUtilities.ts │ │ ├── EwsXmlReader.ts │ │ ├── ExchangeServerInfo.ts │ │ ├── ExchangeService.ts │ │ ├── ExchangeServiceBase.ts │ │ ├── JsonNames.ts │ │ ├── JsonObject.ts │ │ ├── JsonParser.ts │ │ ├── JsonTokenizer.ts │ │ ├── JsonWriter.ts │ │ ├── LazyMember.ts │ │ ├── PropertyBag.ts │ │ ├── PropertySet.ts │ │ ├── Requests │ │ │ ├── AddDelegateRequest.ts │ │ │ ├── ApplyConversationActionRequest.ts │ │ │ ├── ArchiveItemRequest.ts │ │ │ ├── AsyncRequestResult.ts │ │ │ ├── ConvertIdRequest.ts │ │ │ ├── CopyFolderRequest.ts │ │ │ ├── CopyItemRequest.ts │ │ │ ├── CreateAttachmentRequest.ts │ │ │ ├── CreateFolderRequest.ts │ │ │ ├── CreateItemRequest.ts │ │ │ ├── CreateItemRequestBase.ts │ │ │ ├── CreateRequest.ts │ │ │ ├── CreateResponseObjectRequest.ts │ │ │ ├── CreateUserConfigurationRequest.ts │ │ │ ├── DelegateManagementRequestBase.ts │ │ │ ├── DeleteAttachmentRequest.ts │ │ │ ├── DeleteFolderRequest.ts │ │ │ ├── DeleteItemRequest.ts │ │ │ ├── DeleteRequest.ts │ │ │ ├── DeleteUserConfigurationRequest.ts │ │ │ ├── DisableAppRequest.ts │ │ │ ├── DisconnectPhoneCallRequest.ts │ │ │ ├── EmptyFolderRequest.ts │ │ │ ├── ExecuteDiagnosticMethodRequest.ts │ │ │ ├── ExpandGroupRequest.ts │ │ │ ├── FindConversationRequest.ts │ │ │ ├── FindFolderRequest.ts │ │ │ ├── FindItemRequest.ts │ │ │ ├── FindRequest.ts │ │ │ ├── GetAppManifestsRequest.ts │ │ │ ├── GetAppMarketplaceUrlRequest.ts │ │ │ ├── GetAttachmentRequest.ts │ │ │ ├── GetClientAccessTokenRequest.ts │ │ │ ├── GetClientExtensionRequest.ts │ │ │ ├── GetConversationItemsRequest.ts │ │ │ ├── GetDelegateRequest.ts │ │ │ ├── GetDiscoverySearchConfigurationRequest.ts │ │ │ ├── GetEncryptionConfigurationRequest.ts │ │ │ ├── GetEventsRequest.ts │ │ │ ├── GetFolderRequest.ts │ │ │ ├── GetFolderRequestBase.ts │ │ │ ├── GetFolderRequestForLoad.ts │ │ │ ├── GetHoldOnMailboxesRequest.ts │ │ │ ├── GetInboxRulesRequest.ts │ │ │ ├── GetItemRequest.ts │ │ │ ├── GetItemRequestBase.ts │ │ │ ├── GetItemRequestForLoad.ts │ │ │ ├── GetNonIndexableItemDetailsRequest.ts │ │ │ ├── GetNonIndexableItemStatisticsRequest.ts │ │ │ ├── GetPasswordExpirationDateRequest.ts │ │ │ ├── GetPhoneCallRequest.ts │ │ │ ├── GetRequest.ts │ │ │ ├── GetRoomListsRequest.ts │ │ │ ├── GetRoomsRequest.ts │ │ │ ├── GetSearchableMailboxesRequest.ts │ │ │ ├── GetServerTimeZonesRequest.ts │ │ │ ├── GetStreamingEventsRequest.ts │ │ │ ├── GetUserAvailabilityRequest.ts │ │ │ ├── GetUserConfigurationRequest.ts │ │ │ ├── GetUserOofSettingsRequest.ts │ │ │ ├── GetUserRetentionPolicyTagsRequest.ts │ │ │ ├── HangingRequestDisconnectEventArgs.ts │ │ │ ├── HangingServiceRequestBase.ts │ │ │ ├── InstallAppRequest.ts │ │ │ ├── MarkAllItemsAsReadRequest.ts │ │ │ ├── MarkAsJunkRequest.ts │ │ │ ├── MoveCopyFolderRequest.ts │ │ │ ├── MoveCopyItemRequest.ts │ │ │ ├── MoveCopyRequest.ts │ │ │ ├── MoveFolderRequest.ts │ │ │ ├── MoveItemRequest.ts │ │ │ ├── MultiResponseServiceRequest.ts │ │ │ ├── PlayOnPhoneRequest.ts │ │ │ ├── RemoveDelegateRequest.ts │ │ │ ├── ResolveNamesRequest.ts │ │ │ ├── SearchMailboxesRequest.ts │ │ │ ├── SendItemRequest.ts │ │ │ ├── ServiceRequestBase.ts │ │ │ ├── SetClientExtensionRequest.ts │ │ │ ├── SetEncryptionConfigurationRequest.ts │ │ │ ├── SetHoldOnMailboxesRequest.ts │ │ │ ├── SetTeamMailboxRequest.ts │ │ │ ├── SetUserOofSettingsRequest.ts │ │ │ ├── SimpleServiceRequestBase.ts │ │ │ ├── SubscribeRequest.ts │ │ │ ├── SubscribeToPullNotificationsRequest.ts │ │ │ ├── SubscribeToPushNotificationsRequest.ts │ │ │ ├── SubscribeToStreamingNotificationsRequest.ts │ │ │ ├── SyncFolderHierarchyRequest.ts │ │ │ ├── SyncFolderItemsRequest.ts │ │ │ ├── UninstallAppRequest.ts │ │ │ ├── UnpinTeamMailboxRequest.ts │ │ │ ├── UnsubscribeRequest.ts │ │ │ ├── UpdateDelegateRequest.ts │ │ │ ├── UpdateFolderRequest.ts │ │ │ ├── UpdateInboxRulesRequest.ts │ │ │ ├── UpdateItemRequest.ts │ │ │ └── UpdateUserConfigurationRequest.ts │ │ ├── Responses │ │ │ ├── ArchiveItemResponse.ts │ │ │ ├── AttendeeAvailability.ts │ │ │ ├── ConvertIdResponse.ts │ │ │ ├── CreateAttachmentResponse.ts │ │ │ ├── CreateFolderResponse.ts │ │ │ ├── CreateItemResponse.ts │ │ │ ├── CreateItemResponseBase.ts │ │ │ ├── CreateResponseObjectResponse.ts │ │ │ ├── DelegateManagementResponse.ts │ │ │ ├── DelegateUserResponse.ts │ │ │ ├── DeleteAttachmentResponse.ts │ │ │ ├── DisableAppResponse.ts │ │ │ ├── ExecuteDiagnosticMethodResponse.ts │ │ │ ├── ExpandGroupResponse.ts │ │ │ ├── FindConversationResponse.ts │ │ │ ├── FindFolderResponse.ts │ │ │ ├── FindItemResponse.ts │ │ │ ├── GetAppManifestsResponse.ts │ │ │ ├── GetAppMarketplaceUrlResponse.ts │ │ │ ├── GetAttachmentResponse.ts │ │ │ ├── GetClientAccessTokenResponse.ts │ │ │ ├── GetClientExtensionResponse.ts │ │ │ ├── GetConversationItemsResponse.ts │ │ │ ├── GetDelegateResponse.ts │ │ │ ├── GetDiscoverySearchConfigurationResponse.ts │ │ │ ├── GetEncryptionConfigurationResponse.ts │ │ │ ├── GetEventsResponse.ts │ │ │ ├── GetFolderResponse.ts │ │ │ ├── GetHoldOnMailboxesResponse.ts │ │ │ ├── GetInboxRulesResponse.ts │ │ │ ├── GetItemResponse.ts │ │ │ ├── GetNonIndexableItemDetailsResponse.ts │ │ │ ├── GetNonIndexableItemStatisticsResponse.ts │ │ │ ├── GetPasswordExpirationDateResponse.ts │ │ │ ├── GetPhoneCallResponse.ts │ │ │ ├── GetRoomListsResponse.ts │ │ │ ├── GetRoomsResponse.ts │ │ │ ├── GetSearchableMailboxesResponse.ts │ │ │ ├── GetServerTimeZonesResponse.ts │ │ │ ├── GetStreamingEventsResponse.ts │ │ │ ├── GetUserConfigurationResponse.ts │ │ │ ├── GetUserOofSettingsResponse.ts │ │ │ ├── GetUserRetentionPolicyTagsResponse.ts │ │ │ ├── InstallAppResponse.ts │ │ │ ├── MarkAsJunkResponse.ts │ │ │ ├── MoveCopyFolderResponse.ts │ │ │ ├── MoveCopyItemResponse.ts │ │ │ ├── PlayOnPhoneResponse.ts │ │ │ ├── ResolveNamesResponse.ts │ │ │ ├── SearchMailboxesResponse.ts │ │ │ ├── ServiceResponse.ts │ │ │ ├── ServiceResponseCollection.ts │ │ │ ├── SetEncryptionConfigurationResponse.ts │ │ │ ├── SetHoldOnMailboxesResponse.ts │ │ │ ├── SubscribeResponse.ts │ │ │ ├── SuggestionsResponse.ts │ │ │ ├── SyncFolderHierarchyResponse.ts │ │ │ ├── SyncFolderItemsResponse.ts │ │ │ ├── SyncResponse.ts │ │ │ ├── UninstallAppResponse.ts │ │ │ ├── UpdateFolderResponse.ts │ │ │ ├── UpdateInboxRulesResponse.ts │ │ │ └── UpdateItemResponse.ts │ │ ├── ServiceObjects │ │ │ ├── Folders │ │ │ │ ├── CalendarFolder.ts │ │ │ │ ├── ContactsFolder.ts │ │ │ │ ├── Folder.ts │ │ │ │ ├── FolderInfo.ts │ │ │ │ ├── SearchFolder.ts │ │ │ │ └── TasksFolder.ts │ │ │ ├── Items │ │ │ │ ├── Appointment.ts │ │ │ │ ├── Contact.ts │ │ │ │ ├── ContactGroup.ts │ │ │ │ ├── Conversation.ts │ │ │ │ ├── EmailMessage.ts │ │ │ │ ├── Item.ts │ │ │ │ ├── ItemInfo.ts │ │ │ │ ├── MeetingCancellation.ts │ │ │ │ ├── MeetingMessage.ts │ │ │ │ ├── MeetingRequest.ts │ │ │ │ ├── MeetingResponse.ts │ │ │ │ ├── PostItem.ts │ │ │ │ └── Task.ts │ │ │ ├── ResponseObjects │ │ │ │ ├── AcceptMeetingInvitationMessage.ts │ │ │ │ ├── CalendarResponseMessage.ts │ │ │ │ ├── CalendarResponseMessageBase.ts │ │ │ │ ├── CancelMeetingMessage.ts │ │ │ │ ├── DeclineMeetingInvitationMessage.ts │ │ │ │ ├── PostReply.ts │ │ │ │ ├── RemoveFromCalendar.ts │ │ │ │ ├── ResponseMessage.ts │ │ │ │ ├── ResponseObject.ts │ │ │ │ └── SuppressReadReceipt.ts │ │ │ ├── Schemas │ │ │ │ ├── AppointmentSchema.ts │ │ │ │ ├── CalendarResponseObjectSchema.ts │ │ │ │ ├── CancelMeetingMessageSchema.ts │ │ │ │ ├── ContactGroupSchema.ts │ │ │ │ ├── ContactSchema.ts │ │ │ │ ├── ConversationSchema.ts │ │ │ │ ├── EmailMessageSchema.ts │ │ │ │ ├── FolderSchema.ts │ │ │ │ ├── ItemSchema.ts │ │ │ │ ├── MeetingCancellationSchema.ts │ │ │ │ ├── MeetingMessageSchema.ts │ │ │ │ ├── MeetingRequestSchema.ts │ │ │ │ ├── MeetingResponseSchema.ts │ │ │ │ ├── PersonaSchema__notImplemented.ts │ │ │ │ ├── PostItemSchema.ts │ │ │ │ ├── PostReplySchema.ts │ │ │ │ ├── ResponseMessageSchema.ts │ │ │ │ ├── ResponseObjectSchema.ts │ │ │ │ ├── Schemas.ts │ │ │ │ ├── SearchFolderSchema.ts │ │ │ │ ├── ServiceObjectSchema.ts │ │ │ │ ├── TaskSchema.ts │ │ │ │ └── Xsd │ │ │ │ │ ├── messages.xsd │ │ │ │ │ └── types.xsd │ │ │ ├── ServiceObject.ts │ │ │ └── ServiceObjectInfo.ts │ │ ├── SimplePropertyBag.ts │ │ ├── XmlAttributeNames.ts │ │ └── XmlElementNames.ts │ ├── Credentials │ │ ├── BasicAuthModuleForUTF8.ts │ │ ├── ClientCertificateCredentials.ts │ │ ├── ExchangeCredentials.ts │ │ ├── OAuthCredentials.ts │ │ ├── PartnerTokenCredentials.ts │ │ ├── TokenCredentials.ts │ │ ├── WSSecurityBasedCredentials.ts │ │ ├── WSSecurityUtilityIdSignedXml.ts │ │ ├── WebCredentials.ts │ │ ├── WindowsLiveCredentials.ts │ │ └── X509CertificateCredentials.ts │ ├── DateTime.ts │ ├── Dns │ │ ├── DnsClient.ts │ │ ├── DnsNativeMethods.ts │ │ ├── DnsRecord.ts │ │ ├── DnsRecordHeader.ts │ │ └── DnsSrvRecord.ts │ ├── Elc │ │ └── RetentionPolicyTag.ts │ ├── Enumerations │ │ ├── AffectedTaskOccurrence.ts │ │ ├── AggregateType.ts │ │ ├── AppointmentType.ts │ │ ├── AutodiscoverEndpoints.ts │ │ ├── AutodiscoverErrorCode.ts │ │ ├── AutodiscoverResponseType.ts │ │ ├── AvailabilityData.ts │ │ ├── BasePropertySet.ts │ │ ├── BodyType.ts │ │ ├── ChangeType.ts │ │ ├── ClientAccessTokenType.ts │ │ ├── ClientExtensionProvidedTo.ts │ │ ├── ComparisonMode.ts │ │ ├── ConflictResolutionMode.ts │ │ ├── ConflictType.ts │ │ ├── ConnectingIdType.ts │ │ ├── ConnectionFailureCause.ts │ │ ├── ConsentState.ts │ │ ├── ContactSource.ts │ │ ├── ContainmentMode.ts │ │ ├── ConversationActionType.ts │ │ ├── ConversationFlagStatus.ts │ │ ├── ConversationQueryTraversal.ts │ │ ├── ConversationSortOrder.ts │ │ ├── DateTimePrecision.ts │ │ ├── DayOfTheWeek.ts │ │ ├── DayOfTheWeekIndex.ts │ │ ├── DayOfWeek.ts │ │ ├── DefaultExtendedPropertySet.ts │ │ ├── DelegateFolderPermissionLevel.ts │ │ ├── DeleteMode.ts │ │ ├── DictionaryKeyType.ts │ │ ├── DisableReasonType.ts │ │ ├── DnsQueryOptions.ts │ │ ├── DnsRecordType.ts │ │ ├── DomainSettingName.ts │ │ ├── EffectiveRights.ts │ │ ├── ElcFolderType.ts │ │ ├── EmailAddressKey.ts │ │ ├── EmailPosition.ts │ │ ├── EnumToSchemaMappingHelper.ts │ │ ├── EventType.ts │ │ ├── ExchangeVersion.ts │ │ ├── ExtensionInstallScope.ts │ │ ├── ExtensionType.ts │ │ ├── FileAsMapping.ts │ │ ├── FlaggedForAction.ts │ │ ├── FolderPermissionLevel.ts │ │ ├── FolderPermissionReadAccess.ts │ │ ├── FolderTraversal.ts │ │ ├── FreeBusyViewType.ts │ │ ├── FreeType.ts │ │ ├── GetUserPhotoStatus.ts │ │ ├── HangingRequestDisconnectReason.ts │ │ ├── HoldAction.ts │ │ ├── HoldStatus.ts │ │ ├── IDs.ts │ │ ├── IconIndex.ts │ │ ├── IdFormat.ts │ │ ├── ImAddressKey.ts │ │ ├── Importance.ts │ │ ├── ItemFlagStatus.ts │ │ ├── ItemIndexError.ts │ │ ├── ItemTraversal.ts │ │ ├── JsonTokenType.ts │ │ ├── LegacyFreeBusyStatus.ts │ │ ├── LobbyBypass.ts │ │ ├── LocationSource.ts │ │ ├── LogicalOperator.ts │ │ ├── MailboxSearchLocation.ts │ │ ├── MailboxSearchScopeType.ts │ │ ├── MailboxType.ts │ │ ├── MapiPropertyType.ts │ │ ├── MapiTypeConverterTypeSystem.ts │ │ ├── MeetingAttendeeType.ts │ │ ├── MeetingRequestType.ts │ │ ├── MeetingRequestsDeliveryScope.ts │ │ ├── MeetingResponseType.ts │ │ ├── MemberStatus.ts │ │ ├── MessageDisposition.ts │ │ ├── Month.ts │ │ ├── OffsetBasePoint.ts │ │ ├── OnlineMeetingAccessLevel.ts │ │ ├── OofExternalAudience.ts │ │ ├── OofState.ts │ │ ├── OutlookProtocolType.ts │ │ ├── PermissionScope.ts │ │ ├── PhoneCallState.ts │ │ ├── PhoneNumberKey.ts │ │ ├── PhysicalAddressIndex.ts │ │ ├── PhysicalAddressKey.ts │ │ ├── Presenters.ts │ │ ├── PreviewItemBaseShape.ts │ │ ├── PrivilegedLogonType.ts │ │ ├── PrivilegedUserIdBudgetType.ts │ │ ├── PropertyDefinitionFlags.ts │ │ ├── RenderingMode.ts │ │ ├── ResolveNameSearchLocation.ts │ │ ├── ResponseActions.ts │ │ ├── ResponseMessageType.ts │ │ ├── RetentionActionType.ts │ │ ├── RetentionType.ts │ │ ├── RuleErrorCode.ts │ │ ├── RuleProperty.ts │ │ ├── SearchFolderTraversal.ts │ │ ├── SearchPageDirection.ts │ │ ├── SearchResultType.ts │ │ ├── SendCancellationsMode.ts │ │ ├── SendInvitationsMode.ts │ │ ├── SendInvitationsOrCancellationsMode.ts │ │ ├── SendPrompt.ts │ │ ├── Sensitivity.ts │ │ ├── ServiceError.ts │ │ ├── ServiceErrorHandling.ts │ │ ├── ServiceObjectType.ts │ │ ├── ServiceResult.ts │ │ ├── SetClientExtensionActionId.ts │ │ ├── SortDirection.ts │ │ ├── StandardUser.ts │ │ ├── SuggestionQuality.ts │ │ ├── SyncFolderItemsScope.ts │ │ ├── TaskDelegationState.ts │ │ ├── TaskMode.ts │ │ ├── TaskStatus.ts │ │ ├── TeamMailboxLifecycleState.ts │ │ ├── TraceFlags.ts │ │ ├── UserConfigurationDictionaryObjectType.ts │ │ ├── UserConfigurationProperties.ts │ │ ├── UserSettingName.ts │ │ ├── ViewFilter.ts │ │ ├── WellKnownFolderName.ts │ │ └── XmlNamespace.ts │ ├── Exceptions │ │ ├── AccountIsLockedException.ts │ │ ├── ArgumentException.ts │ │ ├── AutodiscoverLocalException.ts │ │ ├── AutodiscoverRemoteException.ts │ │ ├── AutodiscoverResponseException.ts │ │ ├── BatchServiceResponseException.ts │ │ ├── CreateAttachmentException.ts │ │ ├── DeleteAttachmentException.ts │ │ ├── DnsException.ts │ │ ├── Exception.ts │ │ ├── InvalidOperationException.ts │ │ ├── JsonDeserializationNotImplementedException.ts │ │ ├── JsonSerializationNotImplementedException.ts │ │ ├── NotSupportedException.ts │ │ ├── PropertyException.ts │ │ ├── ServerBusyException.ts │ │ ├── ServiceJsonDeserializationException.ts │ │ ├── ServiceLocalException.ts │ │ ├── ServiceObjectPropertyException.ts │ │ ├── ServiceRemoteException.ts │ │ ├── ServiceRequestException.ts │ │ ├── ServiceRequestUnauthorizedException.ts │ │ ├── ServiceResponseException.ts │ │ ├── ServiceValidationException.ts │ │ ├── ServiceVersionException.ts │ │ ├── ServiceXmlDeserializationException.ts │ │ ├── ServiceXmlSerializationException.ts │ │ ├── TimeZoneConversionException.ts │ │ └── UpdateInboxRulesException.ts │ ├── ExchangeWebService.ts │ ├── ExtensionMethods.ts │ ├── Guid.ts │ ├── Interfaces.ts │ ├── Interfaces │ │ ├── ICalendarActionProvider.ts │ │ ├── ICustomXmlUpdateSerializer.ts │ │ ├── IEnumerable.ts │ │ ├── IEwsHttpWebRequest.ts │ │ ├── IEwsHttpWebRequestFactory.ts │ │ ├── IEwsHttpWebResponse.ts │ │ ├── IFileAttachmentContentHandler.ts │ │ ├── IJSonSerializable.ts │ │ ├── IJsonCollectionDeserializer.ts │ │ ├── IOutParam.ts │ │ ├── IOwnedProperty.ts │ │ ├── IRefParam.ts │ │ ├── ISearchStringProvider.ts │ │ ├── ISelfValidate.ts │ │ ├── ITraceListener.ts │ │ └── TypeGuards.ts │ ├── MailboxSearch │ │ ├── DiscoverySearchConfiguration.ts │ │ ├── ExtendedAttribute.ts │ │ ├── FailedSearchMailbox.ts │ │ ├── KeywordStatisticsSearchResult.ts │ │ ├── MailboxHoldResult.ts │ │ ├── MailboxHoldStatus.ts │ │ ├── MailboxQuery.ts │ │ ├── MailboxSearchScope.ts │ │ ├── MailboxStatisticsItem.ts │ │ ├── NonIndexableItem.ts │ │ ├── NonIndexableItemDetailsResult.ts │ │ ├── NonIndexableItemParameters.ts │ │ ├── NonIndexableItemStatistic.ts │ │ ├── PreviewItemMailbox.ts │ │ ├── PreviewItemResponseShape.ts │ │ ├── SearchMailboxesParameters.ts │ │ ├── SearchMailboxesResult.ts │ │ ├── SearchPreviewItem.ts │ │ ├── SearchRefinerItem.ts │ │ ├── SearchableMailbox.ts │ │ ├── SetHoldOnMailboxesParameters.ts │ │ └── Versioning.ts │ ├── Microsoft.Exchange.WebServices.d__.ts │ ├── Misc │ │ ├── AbstractFolderIdWrapper.ts │ │ ├── AbstractItemIdWrapper.ts │ │ ├── Availability │ │ │ ├── AttendeeInfo.ts │ │ │ ├── AvailabilityOptions.ts │ │ │ ├── GetUserAvailabilityResults.ts │ │ │ ├── LegacyAvailabilityTimeZone.ts │ │ │ ├── LegacyAvailabilityTimeZoneTime.ts │ │ │ ├── OofReply.ts │ │ │ └── TimeWindow.ts │ │ ├── CalendarActionResults.ts │ │ ├── ConversationAction.ts │ │ ├── DelegateInformation.ts │ │ ├── DelegateTypes.ts │ │ ├── EwsTraceListener.ts │ │ ├── ExpandGroupResults.ts │ │ ├── FolderIdWrapper.ts │ │ ├── FolderIdWrapperList.ts │ │ ├── FolderWrapper.ts │ │ ├── HangingTraceStream.ts │ │ ├── IdConversion │ │ │ ├── AlternateId.ts │ │ │ ├── AlternateIdBase.ts │ │ │ ├── AlternatePublicFolderId.ts │ │ │ └── AlternatePublicFolderItemId.ts │ │ ├── ImpersonatedUserId.ts │ │ ├── ItemIdWrapper.ts │ │ ├── ItemIdWrapperList.ts │ │ ├── ItemWrapper.ts │ │ ├── ManagementRoles.ts │ │ ├── MapiTypeConverter.ts │ │ ├── MapiTypeConverterMapEntry.ts │ │ ├── MobilePhone.ts │ │ ├── NameResolution.ts │ │ ├── NameResolutionCollection.ts │ │ ├── PrivilegedUserId.ts │ │ ├── SoapFaultDetails.ts │ │ ├── Time.ts │ │ └── UserConfiguration.ts │ ├── Notifications │ │ ├── FolderEvent.ts │ │ ├── GetEventsResults.ts │ │ ├── GetStreamingEventsResults.ts │ │ ├── ItemEvent.ts │ │ ├── NotificationEvent.ts │ │ ├── NotificationEventArgs.ts │ │ ├── NotificationGroup.ts │ │ ├── PullSubscription.ts │ │ ├── PushSubscription.ts │ │ ├── StreamingSubscription.ts │ │ ├── StreamingSubscriptionConnection.ts │ │ ├── SubscriptionBase.ts │ │ └── SubscriptionErrorEventArgs.ts │ ├── PropertyDefinitions │ │ ├── AttachmentsPropertyDefinition.ts │ │ ├── BoolPropertyDefinition.ts │ │ ├── ByteArrayPropertyDefinition.ts │ │ ├── ComplexPropertyDefinition.ts │ │ ├── ComplexPropertyDefinitionBase.ts │ │ ├── ContainedPropertyDefinition.ts │ │ ├── DateTimePropertyDefinition.ts │ │ ├── DoublePropertyDefinition.ts │ │ ├── EffectiveRightsPropertyDefinition.ts │ │ ├── ExtendedPropertyDefinition.ts │ │ ├── GenericPropertyDefinition.ts │ │ ├── GroupMemberPropertyDefinition.ts │ │ ├── IndexedPropertyDefinition.ts │ │ ├── IntPropertyDefinition.ts │ │ ├── ListValuePropertyDefinition.ts │ │ ├── MeetingTimeZonePropertyDefinition.ts │ │ ├── PermissionCollectionPropertyDefinition.ts │ │ ├── PermissionSetPropertyDefinition.ts │ │ ├── PropertyDefinition.ts │ │ ├── PropertyDefinitionBase.ts │ │ ├── RecurrencePropertyDefinition.ts │ │ ├── ResponseObjectsPropertyDefinition.ts │ │ ├── ScopedDateTimePropertyDefinition.ts │ │ ├── ServiceObjectPropertyDefinition.ts │ │ ├── StartTimeZonePropertyDefinition.ts │ │ ├── StringPropertyDefinition.ts │ │ ├── TaskDelegationStatePropertyDefinition.ts │ │ ├── TimeSpanPropertyDefinition.ts │ │ ├── TimeZonePropertyDefinition.ts │ │ └── TypedPropertyDefinition.ts │ ├── SchemaXML │ │ ├── messages.xsd │ │ └── types.xsd │ ├── Search │ │ ├── CalendarView.ts │ │ ├── ConversationIndexedItemView.ts │ │ ├── Filters │ │ │ ├── SearchFilter.ContainsSubstring.ts │ │ │ ├── SearchFilter.ExcludesBitmask.ts │ │ │ ├── SearchFilter.Exists.ts │ │ │ ├── SearchFilter.IsEqualTo.ts │ │ │ ├── SearchFilter.IsGreaterThan.ts │ │ │ ├── SearchFilter.IsGreaterThanOrEqualTo.ts │ │ │ ├── SearchFilter.IsLessThan.ts │ │ │ ├── SearchFilter.IsLessThanOrEqualTo.ts │ │ │ ├── SearchFilter.IsNotEqualTo.ts │ │ │ ├── SearchFilter.Not.ts │ │ │ ├── SearchFilter.PropertyBasedFilter.ts │ │ │ ├── SearchFilter.RelationalFilter.ts │ │ │ ├── SearchFilter.SearchFilterCollection.ts │ │ │ └── SearchFilter.ts │ │ ├── FindConversationResults.ts │ │ ├── FindFoldersResults.ts │ │ ├── FindItemsResults.ts │ │ ├── FolderView.ts │ │ ├── GroupedFindItemsResults.ts │ │ ├── Grouping.ts │ │ ├── ItemGroup.ts │ │ ├── ItemView.ts │ │ ├── OrderByCollection.ts │ │ ├── PagedView.ts │ │ ├── SeekToConditionItemView.ts │ │ └── ViewBase.ts │ ├── Security │ │ ├── SafeXmlDocument.ts │ │ ├── SafeXmlFactory.ts │ │ ├── SafeXmlSchema.ts │ │ ├── SecurityTimestamp.ts │ │ └── XmlDtdException.ts │ ├── Strings.ts │ ├── Sync │ │ ├── Change.ts │ │ ├── ChangeCollection.ts │ │ ├── FolderChange.ts │ │ └── ItemChange.ts │ ├── System.Constants.d.ts │ ├── System.Enums.d.ts │ ├── System.d.ts │ ├── TimeSpan.ts │ ├── TimeZoneInfo.ts │ ├── TypeContainer.ts │ ├── UnifiedMessaging │ │ ├── PhoneCall.ts │ │ ├── PhoneCallId.ts │ │ └── UnifiedMessaging.ts │ ├── Uri.ts │ ├── WebService.Extra.ts │ ├── WebServices.Data.Extra.d.ts │ ├── XHRBrowser.ts │ ├── XHRFactory.ts │ ├── XHROutlook.ts │ ├── operations │ │ ├── BulkTransfer │ │ │ └── BulkTransfer.ts │ │ ├── ExchangeMailboxData │ │ │ ├── Reminder.ts │ │ │ └── Utilities.ts │ │ ├── MailTips │ │ │ └── MailTips.ts │ │ ├── MessageTracking │ │ │ └── MessageTracking.ts │ │ ├── Persona │ │ │ └── Persona.ts │ │ ├── ServiceConfiguration │ │ │ └── ServiceConfiguration.ts │ │ ├── Sharing │ │ │ └── Sharing.ts │ │ └── UnifiedContactStore │ │ │ └── UnifiedContactStore.ts │ ├── string.js │ ├── testXML.xml │ ├── tzmapping.ts │ └── tzmappingex.ts └── lib │ ├── EwsOAuthHelper.ts │ └── HttpStatusCode.ts ├── test ├── ManualLiveTesting │ ├── AttachmentTest.ts │ ├── app.css │ ├── app.ts │ ├── app2.ts │ ├── index.html │ └── index2.html ├── MockXHRApi.ts ├── MockXHRData.ts └── mocha │ ├── AutoDiscoverTests.ts │ ├── Operations │ ├── ADOperations.ts │ ├── AttachmentOperationsTests.ts │ ├── CalendarOperationsTests.ts │ └── ItemOperationsTests.ts │ └── tests.html ├── tsconfig.build.json ├── tsconfig.json ├── typings ├── base64-js.d.ts ├── dom.d.ts ├── fetch.d.ts └── reflect-metadata.d.ts └── tzInfo.ps1 /.brackets.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript": { 3 | "target": "ES5", 4 | "module": "none", 5 | "noImplicitAny": true, 6 | "sources" : [ 7 | "src/**/*.ts", 8 | "src/**/*.d.ts" 9 | ] 10 | } 11 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore password file # 2 | ################### 3 | credentials.json 4 | 5 | # Ignore project related excludes 6 | ################### 7 | npm_release 8 | 9 | # Ignore Visual Studio Project # 10 | ################### 11 | *.user 12 | *.gpState 13 | *.suo 14 | bin 15 | obj 16 | /packages 17 | 18 | # Ignore Node, tsd & Bower 19 | ################### 20 | node_modules 21 | bower_components 22 | build 23 | .tmp 24 | .ntvs* 25 | typings-dev 26 | 27 | # Ignore Test reporters 28 | ################### 29 | **/test/coverage 30 | report 31 | 32 | 33 | # mongo db 34 | ################### 35 | #Don't commit Mongo Database files 36 | *.lock 37 | *.0 38 | *.1 39 | *.ns 40 | journal 41 | 42 | # Ignore Web Storm # 43 | .idea 44 | 45 | # Compiled source # 46 | ################### 47 | *.com 48 | *.class 49 | *.dll 50 | *.exe 51 | *.o 52 | *.so 53 | 54 | # Packages # 55 | ############ 56 | # it's better to unpack these files and commit the raw source 57 | # git has its own built in compression methods 58 | *.7z 59 | *.dmg 60 | *.gz 61 | *.iso 62 | *.jar 63 | *.rar 64 | *.tar 65 | *.xap 66 | *.zip 67 | 68 | # Logs and databases # 69 | ###################### 70 | *.log 71 | *.sql 72 | *.sqlite 73 | # *.sdf 74 | *.mdf 75 | *.ldf 76 | 77 | # OS generated files # 78 | ###################### 79 | .DS_Store* 80 | ehthumbs.db 81 | Icon? 82 | Thumbs.db -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | // Controls the rendering size of tabs in characters. Accepted values: "auto", 2, 4, 6, etc. If set to "auto", the value will be guessed when a file is opened. 4 | "editor.tabSize": 4, 5 | "files.exclude": { 6 | "**/.git": true, 7 | "**/.DS_Store": true, 8 | "build": false, 9 | "node_modules": true, 10 | } 11 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // Available variables which can be used inside of strings. 2 | // ${workspaceRoot}: the root folder of the team 3 | // ${file}: the current opened file 4 | // ${fileBasename}: the current opened file's basename 5 | // ${fileDirname}: the current opened file's dirname 6 | // ${fileExtname}: the current opened file's extension 7 | // ${cwd}: the current working directory of the spawned process 8 | 9 | { 10 | "version": "2.0.0", 11 | "command": "npm", 12 | "args": [ 13 | "run" 14 | ], 15 | "tasks": [ 16 | { 17 | "label": "build", 18 | "type": "shell", 19 | "command": "npm", 20 | "args": [ 21 | "run", 22 | "build" 23 | ], 24 | "problemMatcher": [], 25 | "group": { 26 | "_id": "build", 27 | "isDefault": false 28 | } 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | @xmldom/xmldom (https://github.com/xmldom/xmldom) 2 | selected MIT license (http://opensource.org/licenses/MIT) 3 | 4 | 5 | moment/moment-timezone (http://momentjs.com, https://github.com/moment/) 6 | MIT License 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2015 Gautam Singh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | | Version | Supported | 6 | | ---------- | ------------------ | 7 | | 0.15.0 | :white_check_mark: | 8 | | < 0.15.0 | :x: | 9 | 10 | ## Reporting a Vulnerability 11 | 12 | Please open an issue and I can provide contact information if needed. 13 | -------------------------------------------------------------------------------- /enums in a file to individual files.ps1: -------------------------------------------------------------------------------- 1 | return 2 | $enu = Get-Content enums.ts 3 | return 4 | 5 | 6 | $start = $false 7 | $name = "" 8 | $modulenameLine = "" 9 | $fin = $true 10 | $lines = @() 11 | $enu | %{ 12 | $l = $_; 13 | if($l.Contains("module M")){ 14 | $modulenameLine = $l 15 | } 16 | if($l.Contains(" enum ")) 17 | { 18 | $start = $true 19 | $fin = $false 20 | $lines = @() 21 | $name = $l -replace "//","" -replace "export enum","" -replace "{","" -replace " ","" 22 | $lines+=$modulenameLine 23 | } 24 | if(!$fin) 25 | { 26 | $lines += $l 27 | } 28 | if(!$fin -and $l.Contains("}")) 29 | { 30 | $lines += "}" 31 | $lines +="" 32 | $lines += "import _export = $($modulenameLine -replace 'module','' -replace '{','' -replace ' ','').$name;" 33 | $lines += "export = _export;" 34 | #$lines 35 | if($name -ne $null -and $name -ne "") 36 | { 37 | Write-Verbose $name -Verbose 38 | $lines | Out-File "$name.ts" -Append 39 | } 40 | "-------" 41 | $fin = $true 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /scripts/almond-build.js: -------------------------------------------------------------------------------- 1 | ({ 2 | baseUrl: ".", 3 | paths: { 4 | 'moment-timezone': 'empty:',//../../bower_components/moment-timezone/moment-timezone', 5 | 'moment': 'empty:',//../../bower_components/moment/moment', 6 | 'winjs-node': 'empty:',//../../bower_components/winjs/js/base', 7 | 'base64-js': 'empty:'//../../../../../../../node_modules/base64-js/lib/b64.js', 8 | }, 9 | 10 | optimize:'none', 11 | name: "ExchangeWebService", //../../../../../node_modules/almond/almond", 12 | /*almond - bundle winjs and moemnt with almond 13 | //include:['ExchangeWebService'], 14 | //insertRequire:['ExchangeWebService'], 15 | //wrap:true, 16 | // wrap: { 17 | // startFile: 'build.start', 18 | // endFile: 'build.end' 19 | // },*/ 20 | out:'../../test/ManualLiveTesting/ExchangeWebService.js' 21 | 22 | }) -------------------------------------------------------------------------------- /scripts/config/build.end: -------------------------------------------------------------------------------- 1 | //The modules for your project will be inlined above 2 | //this snippet. Ask almond to synchronously require the 3 | //module value for 'main' here and return it as the 4 | //value to use for the public API for the built file. 5 | 6 | return require('ExchangeWebService'); 7 | })); -------------------------------------------------------------------------------- /scripts/config/build.start: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | //Allow using this built library as an AMD module 4 | //in another project. That other project will only 5 | //see this AMD call, not the internal modules in 6 | //the closure below. 7 | define([], factory); 8 | } else { 9 | //Browser globals case. Just assign the 10 | //result to a property on the global. 11 | root.libGlobalName = factory(); 12 | } 13 | }(this, function () { 14 | //almond, and your modules will be inlined here 15 | -------------------------------------------------------------------------------- /scripts/config/tsd.end: -------------------------------------------------------------------------------- 1 | } -------------------------------------------------------------------------------- /scripts/config/tsd.start: -------------------------------------------------------------------------------- 1 | export * from "@ewsjs/xhr"; 2 | import * as moment from "moment-timezone"; 3 | declare module "ews-javascript-api" { 4 | -------------------------------------------------------------------------------- /src/js/Attributes/AttachableAttribute.ts: -------------------------------------------------------------------------------- 1 | // import 'reflect-metadata'; 2 | // export var AttachableAttributeMetadata = "AttachableAttribute"; 3 | // export function AttachableAttribute(value: boolean = false) { 4 | // return function(target: Function) { 5 | // Reflect.defineMetadata("AttachableAttribute", value, target.prototype); 6 | // } 7 | // } -------------------------------------------------------------------------------- /src/js/Attributes/EwsEnumAttribute.ts: -------------------------------------------------------------------------------- 1 | // import 'reflect-metadata'; 2 | // export function EwsEnumAttribute(schemaName: string) { 3 | // return function(target: Function) { 4 | // Reflect.defineMetadata("EwsEnumAttribute", schemaName, target); 5 | // } 6 | // } -------------------------------------------------------------------------------- /src/js/Attributes/RequiredServerVersionAttribute.ts: -------------------------------------------------------------------------------- 1 | // import 'reflect-metadata'; 2 | // import {ExchangeVersion} from "../Enumerations/ExchangeVersion"; 3 | // export function RequiredServerVersionAttribute(version: ExchangeVersion) { 4 | // return function(target: Function) { 5 | // Reflect.defineMetadata("AttachableAttribute", version, target); 6 | // } 7 | // } -------------------------------------------------------------------------------- /src/js/Attributes/SchemaAttribute.ts: -------------------------------------------------------------------------------- 1 | // 2 | // class SchemaAttribute extends System.Attribute { 3 | //} 4 | //export = SchemaAttribute; 5 | 6 | 7 | //------------modulename->Microsoft.Exchange.WebServices.Data------------ 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/js/Attributes/ServiceObjectDefinitionAttribute.ts: -------------------------------------------------------------------------------- 1 | // 2 | // class ServiceObjectDefinitionAttribute extends System.Attribute { 3 | // XmlElementName: string; 4 | // ReturnedByServer: boolean; 5 | // private xmlElementName: string; 6 | // private returnedByServer: boolean; 7 | //} 8 | //export = ServiceObjectDefinitionAttribute; 9 | 10 | 11 | //------------modulename->Microsoft.Exchange.WebServices.Data------------ 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/js/Autodiscover/AutodiscoverServiceDelegates.ts: -------------------------------------------------------------------------------- 1 | export interface AutodiscoverRedirectionUrlValidationCallback { 2 | (redirectionUrl: string): boolean; 3 | } 4 | //class AutodiscoverRedirectionUrlValidationCallback extends System.MulticastDelegate { 5 | // BeginInvoke(redirectionUrl: string, callback: System.AsyncCallback, object: any): System.IAsyncResult { throw new Error("AutodiscoverServiceDelegates.ts - BeginInvoke : Not implemented."); } 6 | // EndInvoke(result: System.IAsyncResult): boolean { throw new Error("AutodiscoverServiceDelegates.ts - EndInvoke : Not implemented."); } 7 | // Invoke(redirectionUrl: string): boolean { throw new Error("AutodiscoverServiceDelegates.ts - Invoke : Not implemented."); } 8 | //} 9 | -------------------------------------------------------------------------------- /src/js/Autodiscover/ComparisonHelpers.ts: -------------------------------------------------------------------------------- 1 | import { StringHelper } from "../ExtensionMethods"; 2 | 3 | /** 4 | * @internal Represents a set of helper methods for performing string comparisons. 5 | * @static 6 | */ 7 | export class ComparisonHelpers { 8 | /** 9 | * Case insensitive check if the collection contains the string. 10 | * 11 | * @param {any[]} collection The collection of objects, only strings are checked 12 | * @param {string} match String to match 13 | * @return {boolean} true, if match contained in the collection 14 | */ 15 | CaseInsensitiveContains(collection: any[], match: string): boolean { 16 | for (let obj of collection) { 17 | const str = obj as string; 18 | if (str != null) { 19 | if (StringHelper.Compare(str, match, true) == 0) { 20 | return true; 21 | } 22 | } 23 | } 24 | } 25 | } 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/js/Autodiscover/ConfigurationSettings/Outlook/OutlookUser.ts: -------------------------------------------------------------------------------- 1 | import {UserSettingName} from "../../../Enumerations/UserSettingName"; 2 | import {GetUserSettingsResponse} from "../../Responses/GetUserSettingsResponse"; 3 | import {EwsXmlReader} from "../../../Core/EwsXmlReader"; 4 | import {LazyMember} from "../../../Core/LazyMember"; 5 | export class OutlookUser { 6 | static AvailableUserSettings: UserSettingName[]; 7 | private displayName: string; 8 | private legacyDN: string; 9 | private deploymentId: string; 10 | private autodiscoverAMTPAddress: string; 11 | private static converterDictionary: LazyMember; 12 | ConvertToUserSettings(requestedSettings: UserSettingName[], response: GetUserSettingsResponse): any { throw new Error("OutlookUser.ts - ConvertToUserSettings : Not implemented."); } 13 | //LoadFromXml(reader: EwsXmlReader): any { throw new Error("OutlookUser.ts - LoadFromXml : Not implemented."); } 14 | } -------------------------------------------------------------------------------- /src/js/Autodiscover/DirectoryHelper.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeServiceBase} from "../Core/ExchangeServiceBase"; 2 | export class DirectoryHelper { 3 | Service: ExchangeServiceBase; 4 | //private service: ExchangeServiceBase; 5 | private static AutodiscoverMaxScpHops: number = 10; 6 | private static ScpUrlGuidString: string = "77378F46-2C66-4aa9-A6A6-3E7A48B19596"; 7 | private static ScpPtrGuidString: string = "67661d7F-8FC4-4fa7-BFAC-E1D7794C1F68"; 8 | private static ScpFilterString: string = "(&(objectClass=serviceConnectionPoint)(|(keywords=67661d7F-8FC4-4fa7-BFAC-E1D7794C1F68)(keywords=77378F46-2C66-4aa9-A6A6-3E7A48B19596)))"; 9 | 10 | GetAutodiscoverScpUrlsForDomain(domainName: string): string[] { throw new Error("DirectoryHelper.ts - GetAutodiscoverScpUrlsForDomain : Not implemented."); } 11 | GetScpUrlList(domainName: string, ldapPath: string, maxHops: any): string[] { throw new Error("DirectoryHelper.ts - GetScpUrlList : Not implemented."); } 12 | GetSiteName(): string { throw new Error("DirectoryHelper.ts - GetSiteName : Not implemented."); } 13 | TraceMessage(message: string): any { throw new Error("DirectoryHelper.ts - TraceMessage : Not implemented."); } 14 | } 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/js/ComplexProperties/AddressEntity.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | import {XmlElementNames} from "../Core/XmlElementNames"; 3 | 4 | import {ExtractedEntity} from "./ExtractedEntity"; 5 | /** 6 | * Represents an AddressEntity object. 7 | */ 8 | export class AddressEntity extends ExtractedEntity { 9 | 10 | /** 11 | * Gets the meeting suggestion Location. 12 | */ 13 | Address: string; 14 | 15 | /** 16 | * Initializes a new instance of the **AddressEntity** class. 17 | */ 18 | constructor() { 19 | super(); 20 | } 21 | 22 | /** 23 | * @internal Loads service object from XML. 24 | * 25 | * @param {any} jsObject Json Object converted from XML. 26 | * @param {ExchangeService} service The service. 27 | */ 28 | LoadFromXmlJsObject(jsObject: any, service: ExchangeService): void { 29 | super.LoadFromXmlJsObject(jsObject, service); 30 | 31 | for (let key in jsObject) { 32 | switch (key) { 33 | case XmlElementNames.NlgAddress: 34 | this.Address = jsObject[key]; 35 | break; 36 | default: 37 | break; 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/ApprovalRequestData.ts: -------------------------------------------------------------------------------- 1 | import {ComplexProperty} from "./ComplexProperty"; 2 | import {JsonObject} from "../Core/JsonObject"; 3 | import {ExchangeService} from "../Core/ExchangeService"; 4 | import {EwsServiceXmlReader} from "../Core/EwsServiceXmlReader"; 5 | export class ApprovalRequestData extends ComplexProperty { 6 | IsUndecidedApprovalRequest: boolean; 7 | ApprovalDecision: number; 8 | ApprovalDecisionMaker: string; 9 | ApprovalDecisionTime: Date; 10 | private isUndecidedApprovalRequest: boolean; 11 | private approvalDecision: number; 12 | private approvalDecisionMaker: string; 13 | private approvalDecisionTime: Date; 14 | LoadFromJson(jsonProperty: JsonObject, service: ExchangeService): any { throw new Error("ApprovalRequestData.ts - LoadFromJson : Not implemented."); } 15 | /**@internal */ 16 | ReadElementsFromXmlJsObject(reader: EwsServiceXmlReader): boolean { throw new Error("ApprovalRequestData.ts - TryReadElementFromXmlJsObject : Not implemented."); } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/js/ComplexProperties/ArchiveTag.ts: -------------------------------------------------------------------------------- 1 | import {Guid} from "../Guid"; 2 | import {XmlElementNames} from "../Core/XmlElementNames"; 3 | 4 | import {RetentionTagBase} from "./RetentionTagBase"; 5 | /** 6 | * Represents the archive tag of an item or folder. 7 | */ 8 | export class ArchiveTag extends RetentionTagBase { 9 | 10 | /** 11 | * Initializes a new instance of the **ArchiveTag** class. 12 | */ 13 | constructor(); 14 | /** 15 | * Initializes a new instance of the **ArchiveTag** class. 16 | * 17 | * @param {boolean} isExplicit Is explicit. 18 | * @param {Guid} retentionId Retention id. 19 | */ 20 | constructor(isExplicit: boolean, retentionId: Guid); 21 | constructor(isExplicit: boolean = false, retentionId: Guid = null) { 22 | super(XmlElementNames.ArchiveTag); 23 | this.IsExplicit = isExplicit; 24 | this.RetentionId = retentionId; 25 | } 26 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/ConversationId.ts: -------------------------------------------------------------------------------- 1 | import { XmlElementNames } from "../Core/XmlElementNames"; 2 | 3 | import { ServiceId } from "./ServiceId"; 4 | /** 5 | * Represents the Id of a Conversation. 6 | */ 7 | export class ConversationId extends ServiceId { 8 | 9 | /** 10 | * Initializes a new instance of **ConversationId**. 11 | */ 12 | constructor(); 13 | /** 14 | * Initializes a new instance of **ConversationId**. 15 | * 16 | * @param {string} uniqueId The unique Id used to initialize the **ConversationId**. 17 | */ 18 | constructor(uniqueId: string); 19 | constructor(uniqueId?: string) { 20 | arguments.length === 0 ? super() : super(uniqueId); 21 | } 22 | 23 | /** 24 | * @internal Gets the name of the XML element. 25 | * 26 | * @return {string} XML element name. 27 | */ 28 | GetXmlElementName(): string { 29 | return XmlElementNames.ConversationId; 30 | } 31 | 32 | /** 33 | * Gets a string representation of the Conversation Id. 34 | * 35 | * @return {string} The string representation of the conversation id. 36 | */ 37 | ToString(): string { 38 | // We have ignored the change key portion 39 | return this.UniqueId; 40 | } 41 | toString(): string { 42 | return this.ToString(); 43 | } 44 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/EmailAddressEntity.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | import {XmlElementNames} from "../Core/XmlElementNames"; 3 | 4 | import {ExtractedEntity} from "./ExtractedEntity"; 5 | /** 6 | * Represents an EmailAddressEntity object. 7 | */ 8 | export class EmailAddressEntity extends ExtractedEntity { 9 | 10 | /** 11 | * Gets the meeting suggestion Location. 12 | */ 13 | EmailAddress: string; 14 | 15 | /** 16 | * @internal Initializes a new instance of the **EmailAddressEntity** class. 17 | */ 18 | constructor() { 19 | super(); 20 | } 21 | 22 | /** 23 | * @internal Loads service object from XML. 24 | * 25 | * @param {any} jsObject Json Object converted from XML. 26 | * @param {ExchangeService} service The service. 27 | */ 28 | LoadFromXmlJsObject(jsObject: any, service: ExchangeService): void { 29 | super.LoadFromXmlJsObject(jsObject, service); 30 | 31 | for (let key in jsObject) { 32 | switch (key) { 33 | case XmlElementNames.NlgEmailAddress: 34 | this.EmailAddress = jsObject[key]; 35 | break; 36 | default: 37 | break; 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/GenericItemAttachment.ts: -------------------------------------------------------------------------------- 1 | //Moved to ItemAttachmentOf.ts for simplicity -------------------------------------------------------------------------------- /src/js/ComplexProperties/ItemAttachmentOf.ts: -------------------------------------------------------------------------------- 1 | import {Item} from "../Core/ServiceObjects/Items/Item"; 2 | 3 | import {ItemAttachment} from "./ItemAttachment"; 4 | /** 5 | * Represents a strongly typed item attachment. **Workaround of ItemAttachment** - not allowed in typescript to have two class, one generic and one non-generic 6 | */ 7 | export class ItemAttachmentOf extends ItemAttachment { 8 | /** 9 | * Gets the item associated with the attachment. 10 | */ 11 | get Item(): TItem { return this.item; } 12 | set Item(value: TItem) { /** this.Item = value; */ super._setItem(value)} 13 | 14 | /** 15 | * @internal Initializes a new instance of the **ItemAttachmentOf** class. 16 | * 17 | * @param {Item} owner The owner of the attachment. 18 | */ 19 | constructor(owner: Item) { 20 | super(owner); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/js/ComplexProperties/ItemId.ts: -------------------------------------------------------------------------------- 1 | import { XmlElementNames } from "../Core/XmlElementNames"; 2 | 3 | import { ServiceId } from "./ServiceId"; 4 | /** 5 | * Represents the Id of an Exchange item. 6 | * 7 | * @class ItemId 8 | * @extends {ServiceId} 9 | */ 10 | export class ItemId extends ServiceId { 11 | 12 | /** 13 | * Initializes a new instance of the **ItemId**. 14 | */ 15 | constructor(); 16 | /** 17 | * Initializes a new instance of the **ItemId**. 18 | * 19 | * @param {String} uniqueId The unique Id used to initialize the ItemId 20 | */ 21 | constructor(uniqueId: string); 22 | constructor(uniqueId?: string) { 23 | if (arguments.length === 0) { 24 | super(); 25 | return; 26 | } 27 | super(uniqueId); 28 | } 29 | 30 | /** 31 | * @internal Gets the name of the XML element. 32 | * 33 | * @return {string} XML element name. 34 | */ 35 | GetXmlElementName(): string { 36 | return XmlElementNames.ItemId; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/js/ComplexProperties/PhysicalAddressDictionary.ts: -------------------------------------------------------------------------------- 1 | import {DictionaryKeyType} from "../Enumerations/DictionaryKeyType"; 2 | import {IOutParam} from "../Interfaces/IOutParam"; 3 | import {PhysicalAddressEntry} from "./PhysicalAddressEntry"; 4 | import {PhysicalAddressKey} from "../Enumerations/PhysicalAddressKey"; 5 | import {DictionaryProperty} from "./DictionaryProperty"; 6 | export class PhysicalAddressDictionary extends DictionaryProperty { 7 | constructor() { 8 | super(DictionaryKeyType.PhysicalAddressKey); 9 | } 10 | _getItem(key: PhysicalAddressKey): PhysicalAddressEntry { 11 | return this.Entries.get(key); 12 | } 13 | 14 | _setItem(key: PhysicalAddressKey, value: PhysicalAddressEntry) { 15 | if (value == null) { 16 | this.InternalRemove(key); 17 | } 18 | else { 19 | value.Key = key; 20 | this.InternalAddOrReplace(value); 21 | } 22 | } 23 | CreateEntryInstance(): PhysicalAddressEntry { return new PhysicalAddressEntry(); } 24 | TryGetValue(key: PhysicalAddressKey, physicalAddress: IOutParam): boolean { return this.Entries.tryGetValue(key, physicalAddress); } 25 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/PolicyTag.ts: -------------------------------------------------------------------------------- 1 | import {Guid} from "../Guid"; 2 | import {XmlElementNames} from "../Core/XmlElementNames"; 3 | 4 | import {RetentionTagBase} from "./RetentionTagBase"; 5 | /** 6 | * Represents the policy tag of an item or folder. 7 | */ 8 | export class PolicyTag extends RetentionTagBase { 9 | 10 | /** 11 | * Initializes a new instance of the **PolicyTag** class. 12 | */ 13 | constructor(); 14 | /** 15 | * Initializes a new instance of the **PolicyTag** class. 16 | * 17 | * @param {boolean} isExplicit Is explicit. 18 | * @param {Guid} retentionId Retention id. 19 | */ 20 | constructor(isExplicit: boolean, retentionId: Guid); 21 | constructor(isExplicit: boolean = false, retentionId: Guid = null) { 22 | super(XmlElementNames.PolicyTag); 23 | this.IsExplicit = isExplicit; 24 | this.RetentionId = retentionId; 25 | } 26 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/Recurrence/Patterns/Recurrence.DailyPattern.ts: -------------------------------------------------------------------------------- 1 | import {DateTime} from "../../../DateTime"; 2 | import {XmlElementNames} from "../../../Core/XmlElementNames"; 3 | 4 | import {IntervalPattern} from "./Recurrence.IntervalPattern"; 5 | /** 6 | * Represents a recurrence pattern where each occurrence happens a specific number of days after the previous one. 7 | */ 8 | export class DailyPattern extends IntervalPattern { 9 | 10 | /** 11 | * @internal Gets the name of the XML element. 12 | * 13 | * @value The name of the XML element. 14 | */ 15 | get XmlElementName(): string { 16 | return XmlElementNames.DailyRecurrence; 17 | } 18 | 19 | /** 20 | * Initializes a new instance of the **DailyPattern** class. 21 | */ 22 | constructor(); 23 | /** 24 | * Initializes a new instance of the **DailyPattern** class. 25 | * 26 | * @param {DateTime} startDate The date and time when the recurrence starts. 27 | * @param {number} interval The number of days between each occurrence. 28 | */ 29 | constructor(startDate: DateTime, interval: number); 30 | constructor(startDate?: DateTime, interval?: number) { 31 | if (arguments.length === 0) { 32 | super(); 33 | return; 34 | } 35 | super(startDate, interval); 36 | } 37 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/RecurringAppointmentMasterId.ts: -------------------------------------------------------------------------------- 1 | import {XmlElementNames} from "../Core/XmlElementNames"; 2 | import {XmlAttributeNames} from "../Core/XmlAttributeNames"; 3 | import {ExchangeService} from "../Core/ExchangeService"; 4 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 5 | 6 | import {ItemId} from "./ItemId"; 7 | export class RecurringAppointmentMasterId extends ItemId { 8 | constructor(occurrenceId: string) { 9 | super(occurrenceId); 10 | } 11 | GetXmlElementName(): string { return XmlElementNames.RecurringMasterItemId; } 12 | /**@internal */ 13 | WriteAttributesToXml(writer: EwsServiceXmlWriter): void { 14 | writer.WriteAttributeValue(XmlAttributeNames.OccurrenceId, this.UniqueId); 15 | writer.WriteAttributeValue(XmlAttributeNames.ChangeKey, this.ChangeKey); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/js/ComplexProperties/RuleOperation.ts: -------------------------------------------------------------------------------- 1 | import {ComplexProperty} from "./ComplexProperty"; 2 | /** 3 | * Represents an operation to be performed on a rule. 4 | */ 5 | export abstract class RuleOperation extends ComplexProperty { 6 | 7 | /** 8 | * @internal Gets the XML element name of the rule operation. 9 | */ 10 | get XmlElementName(): string { 11 | throw new Error("abstract - must implement"); 12 | } 13 | 14 | /** 15 | * @internal Initializes a new instance of the **RuleOperation** class. 16 | */ 17 | constructor() { 18 | super(); 19 | } 20 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/SetClientExtensionAction.ts: -------------------------------------------------------------------------------- 1 | import {ClientExtension} from "./ClientExtension"; 2 | import {ComplexProperty} from "./ComplexProperty"; 3 | import {SetClientExtensionActionId} from "../Enumerations/SetClientExtensionActionId"; 4 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 5 | export class SetClientExtensionAction extends ComplexProperty { 6 | private setClientExtensionActionId: SetClientExtensionActionId; 7 | private extensionId: string; 8 | private clientExtension: ClientExtension; 9 | /**@internal */ 10 | WriteAttributesToXml(writer: EwsServiceXmlWriter): any { throw new Error("SetClientExtensionAction.ts - WriteAttributesToXml : Not implemented."); } 11 | /**@internal */ 12 | WriteElementsToXml(writer: EwsServiceXmlWriter): any { throw new Error("SetClientExtensionAction.ts - WriteElementsToXml : Not implemented."); } 13 | } 14 | 15 | 16 | //} 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/js/ComplexProperties/TextBody.ts: -------------------------------------------------------------------------------- 1 | import {BodyType} from "../Enumerations/BodyType"; 2 | 3 | import {MessageBody} from "./MessageBody"; 4 | /** 5 | * Represents the body of a message. 6 | */ 7 | export class TextBody extends MessageBody { 8 | 9 | /** 10 | * Initializes a new instance of the **TextBody** class. 11 | */ 12 | constructor(); 13 | /** 14 | * Initializes a new instance of the **TextBody** class. 15 | * 16 | * @param {string} text The text of the message body. 17 | */ 18 | constructor(text: string); 19 | constructor(text: string = null) { 20 | arguments.length === 0 ? super() : super(BodyType.Text, text); 21 | } 22 | } -------------------------------------------------------------------------------- /src/js/ComplexProperties/UrlEntity.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | import {XmlElementNames} from "../Core/XmlElementNames"; 3 | 4 | import {ExtractedEntity} from "./ExtractedEntity"; 5 | /** 6 | * Represents an UrlEntity object. 7 | */ 8 | export class UrlEntity extends ExtractedEntity { 9 | 10 | Url: string; 11 | 12 | /** 13 | * Initializes a new instance of the **UrlEntity** class. 14 | */ 15 | constructor() { 16 | super(); 17 | } 18 | 19 | /** 20 | * @internal Loads service object from XML. 21 | * 22 | * @param {any} jsObject Json Object converted from XML. 23 | * @param {ExchangeService} service The service. 24 | */ 25 | LoadFromXmlJsObject(jsObject: any, service: ExchangeService): void { 26 | super.LoadFromXmlJsObject(jsObject, service); 27 | 28 | for (let key in jsObject) { 29 | switch (key) { 30 | case XmlElementNames.NlgUrl: 31 | this.Url = jsObject[key] 32 | break; 33 | default: 34 | break; 35 | } 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /src/js/ConfigurationApi.ts: -------------------------------------------------------------------------------- 1 | import { XHRFactory } from "./XHRFactory"; 2 | import { IXHROptions, IXHRApi } from "./Interfaces"; 3 | 4 | export class ConfigurationApi { 5 | 6 | static ConfigureXHR(xhrApi: IXHRApi) { 7 | XHRFactory.xhrHelper = xhrApi; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/js/Core/EwsHttpWebRequest.ts: -------------------------------------------------------------------------------- 1 | // import {IEwsHttpWebRequest} from "../Interfaces/IEwsHttpWebRequest"; 2 | // export class EwsHttpWebRequest implements IEwsHttpWebRequest{ 3 | // private Accept: string; 4 | // private AllowAutoRedirect: boolean; 5 | // private ClientCertificates: any /*System.Security.Cryptography.X509Certificates.X509CertificateCollection*/; 6 | // private ContentType: string; 7 | // private CookieContainer: any /*System.Net.CookieContainer*/; 8 | // private Credentials: any /*System.Net.ICredentials*/; 9 | // private Headers: any /*System.Net.WebHeaderCollection*/; 10 | // private Method: string; 11 | // private Proxy: any /*System.Net.IWebProxy*/; 12 | // private PreAuthenticate: boolean; 13 | // private RequestUri: string /*Uri*/; 14 | // private Timeout: number; 15 | // private UseDefaultCredentials: boolean; 16 | // private UserAgent: string; 17 | // KeepAlive: boolean; 18 | // ConnectionGroupName: string; 19 | // private request: any /*System.Net.HttpWebRequest*/; 20 | // } 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/js/Core/EwsHttpWebRequestFactory.ts: -------------------------------------------------------------------------------- 1 | 2 | // class EwsHttpWebRequestFactory { 3 | // } 4 | // export = EwsHttpWebRequestFactory; 5 | 6 | 7 | //------------modulename->Microsoft.Exchange.WebServices.Data------------ 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/js/Core/EwsHttpWebResponse.ts: -------------------------------------------------------------------------------- 1 | // import {IEwsHttpWebResponse} from "../Interfaces/IEwsHttpWebResponse"; 2 | // export class EwsHttpWebResponse implements IEwsHttpWebResponse{ 3 | // private ContentEncoding: string; 4 | // private ContentType: string; 5 | // private Headers: any /*System.Net.WebHeaderCollection*/; 6 | // private ResponseUri: string /*Uri*/; 7 | // private StatusCode: any /*System.Net.HttpStatusCode*/; 8 | // private StatusDescription: string; 9 | // private ProtocolVersion: any /*System.Version*/; 10 | // private response: any /*System.Net.HttpWebResponse*/; 11 | // } 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/js/Core/EwsServiceMultiResponseXmlReader.ts: -------------------------------------------------------------------------------- 1 | import {EwsServiceXmlReader} from "./EwsServiceXmlReader"; 2 | import {ExchangeService} from "./ExchangeService"; 3 | /**@internal */ 4 | export class EwsServiceMultiResponseXmlReader extends EwsServiceXmlReader { 5 | Create(stream: any /*System.IO.Stream*/, service: ExchangeService): EwsServiceMultiResponseXmlReader{ throw new Error("EwsServiceMultiResponseXmlReader.ts - Create : Not implemented.");} 6 | CreateXmlReader(stream: any /*System.IO.Stream*/): any /*System.Xml.XmlReader*/{ throw new Error("EwsServiceMultiResponseXmlReader.ts - CreateXmlReader : Not implemented.");} 7 | InitializeXmlReader(stream: any /*System.IO.Stream*/): any /*System.Xml.XmlReader*/{ throw new Error("EwsServiceMultiResponseXmlReader.ts - InitializeXmlReader : Not implemented.");} 8 | } 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/js/Core/JsonNames.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * JSON names not shared with the XmlElementNames or XmlAttributeNames classes. 3 | */ 4 | export module JsonNames { 5 | export var Events: string = "Events"; 6 | export var NotificationType: string = "NotificationType"; 7 | export var OldFolderId: string = "OldFolderId"; 8 | export var OldItemId: string = "OldItemId"; 9 | export var PathToExtendedFieldType: string = "ExtendedPropertyUri"; 10 | export var PathToIndexedFieldType: string = "DictionaryPropertyUri"; 11 | export var PathToUnindexedFieldType: string = "PropertyUri"; 12 | export var Path: string = "Path"; 13 | export var RecurrencePattern: string = "RecurrencePattern"; 14 | export var RecurrenceRange: string = "RecurrenceRange"; 15 | } -------------------------------------------------------------------------------- /src/js/Core/JsonParser.ts: -------------------------------------------------------------------------------- 1 | import {JsonTokenizer} from "./JsonTokenizer"; 2 | import {JsonObject} from "./JsonObject"; 3 | import {JsonTokenType} from "../Enumerations/JsonTokenType"; 4 | export class JsonParser { 5 | private tokenizer: JsonTokenizer; 6 | Parse(): JsonObject{ throw new Error("JsonParser.ts - Parse : Not implemented.");} 7 | ParseArray(): any[]{ throw new Error("JsonParser.ts - ParseArray : Not implemented.");} 8 | ParseKeyValuePair(jsonObject: JsonObject): void{ throw new Error("JsonParser.ts - ParseKeyValuePair : Not implemented.");} 9 | ParseNumber(valueToken: string): any{ throw new Error("JsonParser.ts - ParseNumber : Not implemented.");} 10 | ParseObject(): JsonObject{ throw new Error("JsonParser.ts - ParseObject : Not implemented.");} 11 | ParseValue(): any{ throw new Error("JsonParser.ts - ParseValue : Not implemented.");} 12 | ReadAndValidateToken(token: string, expectedTokenTypes: JsonTokenType[]): JsonTokenType{ throw new Error("JsonParser.ts - ReadAndValidateToken : Not implemented.");} 13 | UnescapeString(value: string): string{ throw new Error("JsonParser.ts - UnescapeString : Not implemented.");} 14 | } 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/js/Core/Requests/AsyncRequestResult.ts: -------------------------------------------------------------------------------- 1 | import {ServiceRequestBase} from "./ServiceRequestBase"; 2 | import {IEwsHttpWebRequest} from "../../Interfaces/IEwsHttpWebRequest"; 3 | import {ExchangeService} from "../ExchangeService"; 4 | /** 5 | * ## @internal *Not Implemented* 6 | */ 7 | export class AsyncRequestResult { 8 | ServiceRequest: ServiceRequestBase; 9 | WebRequest: IEwsHttpWebRequest; 10 | WebAsyncResult: any /*System.IAsyncResult*/; 11 | AsyncState: any; 12 | AsyncWaitHandle: any /*System.Threading.WaitHandle*/; 13 | CompletedSynchronously: boolean; 14 | IsCompleted: boolean; 15 | ExtractServiceRequest(exchangeService: ExchangeService, asyncResult: any /*System.IAsyncResult*/): T{ throw new Error("AsyncRequestResult.ts - ExtractServiceRequest : Not implemented.");} 16 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/CopyFolderRequest.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 3 | import {MoveCopyFolderResponse} from "../Responses/MoveCopyFolderResponse"; 4 | import {XmlElementNames} from "../XmlElementNames"; 5 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 6 | import {MoveCopyFolderRequest} from "./MoveCopyFolderRequest"; 7 | /** @internal */ 8 | export class CopyFolderRequest extends MoveCopyFolderRequest { 9 | constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) { 10 | super(service, errorHandlingMode); 11 | } 12 | CreateServiceResponse(service: ExchangeService, responseIndex: number): MoveCopyFolderResponse { return new MoveCopyFolderResponse(); } 13 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 14 | GetResponseMessageXmlElementName(): string { return XmlElementNames.CopyFolderResponseMessage; } 15 | GetResponseXmlElementName(): string { return XmlElementNames.CopyFolderResponse; } 16 | GetXmlElementName(): string { return XmlElementNames.CopyFolder; } 17 | } 18 | -------------------------------------------------------------------------------- /src/js/Core/Requests/CopyItemRequest.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {XmlElementNames} from "../XmlElementNames"; 3 | import {MoveCopyItemResponse} from "../Responses/MoveCopyItemResponse"; 4 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 5 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 6 | import {MoveCopyItemRequest} from "./MoveCopyItemRequest"; 7 | /** @internal */ 8 | export class CopyItemRequest extends MoveCopyItemRequest { 9 | 10 | constructor(service: ExchangeService, errorHandlingModeServiceErrorHandling: ServiceErrorHandling) { 11 | super(service, errorHandlingModeServiceErrorHandling); 12 | } 13 | 14 | CreateServiceResponse(service: ExchangeService, responseIndex: number): MoveCopyItemResponse { return new MoveCopyItemResponse(); } 15 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 16 | GetResponseMessageXmlElementName(): string { return XmlElementNames.CopyItemResponseMessage; } 17 | GetResponseXmlElementName(): string { return XmlElementNames.CopyItemResponse; } 18 | GetXmlElementName(): string { return XmlElementNames.CopyItem; } 19 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/CreateItemRequest.ts: -------------------------------------------------------------------------------- 1 | import {Item} from "../ServiceObjects/Items/Item"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {ServiceResponse} from "../Responses/ServiceResponse"; 4 | import {CreateItemResponse} from "../Responses/CreateItemResponse"; 5 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 6 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 7 | import {CreateItemRequestBase} from "./CreateItemRequestBase"; 8 | /** @internal */ 9 | export class CreateItemRequest extends CreateItemRequestBase { 10 | constructor(service: ExchangeService, errorHandlingModeServiceErrorHandling: ServiceErrorHandling) { 11 | super(service, errorHandlingModeServiceErrorHandling); 12 | } 13 | CreateServiceResponse(service: ExchangeService, responseIndex: number): ServiceResponse { return new CreateItemResponse(this.Items[responseIndex]); } 14 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 15 | Validate(): void { 16 | super.Validate(); 17 | 18 | // Validate each item. 19 | for (var item of this.Items) { 20 | item.Validate(); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/CreateResponseObjectRequest.ts: -------------------------------------------------------------------------------- 1 | import {ServiceObject} from "../ServiceObjects/ServiceObject"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {CreateResponseObjectResponse} from "../Responses/CreateResponseObjectResponse"; 4 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 5 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 6 | import {CreateItemRequestBase} from "./CreateItemRequestBase"; 7 | /** @internal */ 8 | export class CreateResponseObjectRequest extends CreateItemRequestBase { 9 | constructor(service: ExchangeService, errorHandlingModeServiceErrorHandling: ServiceErrorHandling) { 10 | super(service, errorHandlingModeServiceErrorHandling); 11 | } 12 | CreateServiceResponse(service: ExchangeService, responseIndex: number): CreateResponseObjectResponse { return new CreateResponseObjectResponse(); } 13 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 14 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/FindFolderRequest.ts: -------------------------------------------------------------------------------- 1 | import {FindFolderResponse} from "../Responses/FindFolderResponse"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 4 | import {XmlElementNames} from "../XmlElementNames"; 5 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 6 | import {FindRequest} from "./FindRequest"; 7 | /** @internal */ 8 | export class FindFolderRequest extends FindRequest { 9 | constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) { 10 | super(service, errorHandlingMode); 11 | } 12 | CreateServiceResponse(service: ExchangeService, responseIndex: number): FindFolderResponse { return new FindFolderResponse(this.View.GetPropertySetOrDefault()); } 13 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 14 | GetResponseMessageXmlElementName(): string { return XmlElementNames.FindFolderResponseMessage; } 15 | GetResponseXmlElementName(): string { return XmlElementNames.FindFolderResponse; } 16 | GetXmlElementName(): string { return XmlElementNames.FindFolder; } 17 | } 18 | -------------------------------------------------------------------------------- /src/js/Core/Requests/GetFolderRequest.ts: -------------------------------------------------------------------------------- 1 |  2 | import {GetFolderResponse} from "../Responses/GetFolderResponse"; 3 | import {ExchangeService} from "../ExchangeService"; 4 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 5 | 6 | import {GetFolderRequestBase} from "./GetFolderRequestBase"; 7 | /** @internal */ 8 | export class GetFolderRequest extends GetFolderRequestBase { 9 | constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) { 10 | super(service, errorHandlingMode); 11 | } 12 | CreateServiceResponse(service: ExchangeService, responseIndex: number): GetFolderResponse { 13 | return new GetFolderResponse(this.FolderIds._getItem(responseIndex).GetFolder(), this.PropertySet); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/js/Core/Requests/GetFolderRequestForLoad.ts: -------------------------------------------------------------------------------- 1 | import {GetFolderResponse} from "../Responses/GetFolderResponse"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 4 | import {ServiceResponse} from "../Responses/ServiceResponse"; 5 | import {GetFolderRequestBase} from "./GetFolderRequestBase"; 6 | /** @internal */ 7 | export class GetFolderRequestForLoad extends GetFolderRequestBase { 8 | constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) { 9 | super(service, errorHandlingMode); 10 | } 11 | CreateServiceResponse(service: ExchangeService, responseIndex: number): ServiceResponse { 12 | return new GetFolderResponse(this.FolderIds._getItem(responseIndex).GetFolder(), this.PropertySet); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/js/Core/Requests/GetItemRequest.ts: -------------------------------------------------------------------------------- 1 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {GetItemResponse} from "../Responses/GetItemResponse"; 4 | import {GetItemRequestBase} from "./GetItemRequestBase"; 5 | /** @internal */ 6 | export class GetItemRequest extends GetItemRequestBase { 7 | constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) { 8 | super(service, errorHandlingMode); 9 | } 10 | CreateServiceResponse(service: ExchangeService, responseIndex: number): GetItemResponse { return new GetItemResponse(this.ItemIds[responseIndex], this.PropertySet); } 11 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/GetItemRequestForLoad.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {GetItemResponse} from "../Responses/GetItemResponse"; 3 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 4 | import {ServiceResponse} from "../Responses/ServiceResponse"; 5 | import {GetItemRequestBase} from "./GetItemRequestBase"; 6 | /** @internal */ 7 | export class GetItemRequestForLoad extends GetItemRequestBase { 8 | constructor(service: ExchangeService, errorHandlingModeServiceErrorHandling: ServiceErrorHandling) { 9 | super(service, errorHandlingModeServiceErrorHandling); 10 | } 11 | CreateServiceResponse(service: ExchangeService, responseIndex: number): ServiceResponse { return new GetItemResponse(this.ItemIds._getItem(responseIndex), this.PropertySet); } 12 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/HangingRequestDisconnectEventArgs.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "../../Exceptions/Exception"; 2 | import {HangingRequestDisconnectReason} from "../../Enumerations/HangingRequestDisconnectReason"; 3 | 4 | /** 5 | * @internal Represents a collection of arguments for the HangingServiceRequestBase.HangingRequestDisconnectHandler delegate method. 6 | */ 7 | export class HangingRequestDisconnectEventArgs { //extends EventArgs{ 8 | 9 | /** 10 | * Gets the reason that the user was disconnected. 11 | * 12 | * internal set 13 | */ 14 | Reason: HangingRequestDisconnectReason; 15 | 16 | /** 17 | * Gets the exception that caused the disconnection. Can be null. 18 | * 19 | * internal set 20 | */ 21 | Exception: Exception; 22 | 23 | /** 24 | * Initializes a new instance of the **HangingRequestDisconnectEventArgs** class. 25 | * 26 | * @param {HangingRequestDisconnectReason} reason The reason. 27 | * @param {Exception} exception The exception. 28 | */ 29 | constructor( 30 | reason: HangingRequestDisconnectReason, 31 | exception: Exception) { 32 | this.Reason = reason; 33 | this.Exception = exception; 34 | } 35 | } -------------------------------------------------------------------------------- /src/js/Core/Requests/MoveFolderRequest.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {MoveCopyFolderResponse} from "../Responses/MoveCopyFolderResponse"; 3 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 4 | import {XmlElementNames} from "../XmlElementNames"; 5 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 6 | import {MoveCopyFolderRequest} from "./MoveCopyFolderRequest"; 7 | /** @internal */ 8 | export class MoveFolderRequest extends MoveCopyFolderRequest { 9 | constructor(service: ExchangeService, errorHandlingMode: ServiceErrorHandling) { 10 | super(service, errorHandlingMode); 11 | } 12 | CreateServiceResponse(service: ExchangeService, responseIndex: number): MoveCopyFolderResponse { return new MoveCopyFolderResponse(); } 13 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 14 | GetResponseMessageXmlElementName(): string { return XmlElementNames.MoveFolderResponseMessage; } 15 | GetResponseXmlElementName(): string { return XmlElementNames.MoveFolderResponse; } 16 | GetXmlElementName(): string { return XmlElementNames.MoveFolder; } 17 | } 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/js/Core/Requests/MoveItemRequest.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {XmlElementNames} from "../XmlElementNames"; 3 | import {MoveCopyItemResponse} from "../Responses/MoveCopyItemResponse"; 4 | import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; 5 | import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; 6 | import {MoveCopyItemRequest} from "./MoveCopyItemRequest"; 7 | /** @internal */ 8 | export class MoveItemRequest extends MoveCopyItemRequest { 9 | 10 | constructor(service: ExchangeService, errorHandlingModeServiceErrorHandling: ServiceErrorHandling) { 11 | super(service, errorHandlingModeServiceErrorHandling); 12 | } 13 | 14 | CreateServiceResponse(service: ExchangeService, responseIndex: number): MoveCopyItemResponse { return new MoveCopyItemResponse(); } 15 | GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } 16 | GetResponseMessageXmlElementName(): string { return XmlElementNames.MoveItemResponseMessage; } 17 | GetResponseXmlElementName(): string { return XmlElementNames.MoveItemResponse; } 18 | GetXmlElementName(): string { return XmlElementNames.MoveItem; } 19 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/CreateItemResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceResult} from "../../Enumerations/ServiceResult"; 2 | import {Item} from "../ServiceObjects/Items/Item"; 3 | import {ExchangeService} from "../ExchangeService"; 4 | import {CreateItemResponseBase} from "./CreateItemResponseBase"; 5 | export class CreateItemResponse extends CreateItemResponseBase { 6 | private item: Item = null; 7 | constructor(item: Item) { 8 | super(); 9 | this.item = item; 10 | } 11 | GetObjectInstance(service: ExchangeService, xmlElementName: string): Item { return this.item; } 12 | Loaded(): void { 13 | if (this.Result == ServiceResult.Success) { 14 | this.item.ClearChangeLog(); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/CreateResponseObjectResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {Item} from "../ServiceObjects/Items/Item"; 3 | import {ItemInfo} from "../ServiceObjects/Items/ItemInfo"; 4 | import {CreateItemResponseBase} from "./CreateItemResponseBase"; 5 | export class CreateResponseObjectResponse extends CreateItemResponseBase { 6 | GetObjectInstance(service: ExchangeService, xmlElementName: string): Item { 7 | var itemInfo = new ItemInfo(); 8 | return itemInfo.CreateEwsObjectFromXmlElementName(service, xmlElementName); 9 | //return EwsUtilities.CreateEwsObjectFromXmlElementName(service, xmlElementName); 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/js/Core/Responses/DisableAppResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | 3 | import {ServiceResponse} from "./ServiceResponse"; 4 | /** 5 | * @internal Represents the response to a DisableApp operation. 6 | * Today this class doesn't add extra functionality. Keep this class here so future we can return extension info up-on installation complete. 7 | * 8 | * @sealed 9 | */ 10 | export class DisableAppResponse extends ServiceResponse { 11 | 12 | /** 13 | * @internal Initializes a new instance of the **DisableAppResponse** class. 14 | */ 15 | constructor() { 16 | super(); 17 | } 18 | 19 | /** 20 | * @internal Reads response elements from Xml JsObject. 21 | * 22 | * @param {any} jsObject The response object. 23 | * @param {ExchangeService} service The service. 24 | */ 25 | ReadElementsFromXmlJsObject(jsObject: any, service: ExchangeService): void { 26 | //does nothing, here to supress base class message about ReadElementsFromXmlJsObject when BatchProcessingStopped is false 27 | } 28 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/ExecuteDiagnosticMethodResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceResponse} from "./ServiceResponse"; 2 | import {EwsServiceXmlReader} from "../EwsServiceXmlReader"; 3 | /** 4 | * ## *Not Implemented* 5 | */ 6 | export class ExecuteDiagnosticMethodResponse extends ServiceResponse { 7 | ReturnValue: any;// System.Xml.XmlDocument; 8 | /**@internal */ 9 | ReadElementsFromXmlJsObject(reader: EwsServiceXmlReader): any { throw new Error("ExecuteDiagnosticMethodResponse.ts - ReadElementsFromXmlJsObject : Not implemented."); } 10 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/ExpandGroupResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {ExpandGroupResults} from "../../Misc/ExpandGroupResults"; 3 | import {ServiceResponse} from "./ServiceResponse"; 4 | export class ExpandGroupResponse extends ServiceResponse { 5 | private members: ExpandGroupResults = new ExpandGroupResults(); 6 | get Members(): ExpandGroupResults { 7 | return this.members; 8 | } 9 | ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { 10 | 11 | this.Members.LoadFromXmlJsObject(responseObject, service); 12 | } 13 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetAppMarketplaceUrlResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {XmlElementNames} from "../XmlElementNames"; 3 | 4 | import {ServiceResponse} from "./ServiceResponse"; 5 | /** 6 | * @internal Represents the response to a GetAppMarketplaceUrl operation 7 | * 8 | * @sealed 9 | */ 10 | export class GetAppMarketplaceUrlResponse extends ServiceResponse { 11 | 12 | private appMarketplaceUrl: string; 13 | 14 | /** 15 | * App Marketplace Url 16 | */ 17 | get AppMarketplaceUrl(): string { 18 | return this.appMarketplaceUrl; 19 | } 20 | 21 | /** 22 | * @internal Initializes a new instance of the **GetAppMarketplaceUrlResponse** class. 23 | */ 24 | constructor() { 25 | super(); 26 | } 27 | 28 | /** 29 | * @internal Reads response elements from Xml JsObject. 30 | * 31 | * @param {any} jsObject The response object. 32 | * @param {ExchangeService} service The service. 33 | */ 34 | ReadElementsFromXmlJsObject(jsObject: any, service: ExchangeService): void { 35 | 36 | this.appMarketplaceUrl = jsObject[XmlElementNames.AppMarketplaceUrl]; 37 | } 38 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetClientExtensionResponse.ts: -------------------------------------------------------------------------------- 1 | import {ClientExtension} from "../../ComplexProperties/ClientExtension"; 2 | import {ServiceResponse} from "./ServiceResponse"; 3 | import {EwsServiceXmlReader} from "../EwsServiceXmlReader"; 4 | /** 5 | * ## *Not Implemented* 6 | */ 7 | export class GetClientExtensionResponse extends ServiceResponse { 8 | ClientExtensions: ClientExtension[];//System.Collections.ObjectModel.Collection; 9 | RawMasterTableXml: string; 10 | private clientExtension: ClientExtension[];//System.Collections.ObjectModel.Collection; 11 | private rawMasterTableXml: string; 12 | /**@internal */ 13 | ReadElementsFromXmlJsObject(reader: EwsServiceXmlReader): any { throw new Error("GetClientExtensionResponse.ts - ReadElementsFromXmlJsObject : Not implemented."); } 14 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetEncryptionConfigurationResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceResponse} from "./ServiceResponse"; 2 | import {EwsServiceXmlReader} from "../EwsServiceXmlReader"; 3 | /** 4 | * ## *Not Implemented* 5 | */ 6 | export class GetEncryptionConfigurationResponse extends ServiceResponse { 7 | ImageBase64: string; 8 | EmailText: string; 9 | PortalText: string; 10 | DisclaimerText: string; 11 | private imageBase64: string; 12 | private emailText: string; 13 | private portalText: string; 14 | private disclaimerText: string; 15 | /**@internal */ 16 | ReadElementsFromXmlJsObject(reader: EwsServiceXmlReader): any { throw new Error("GetEncryptionConfigurationResponse.ts - ReadElementsFromXmlJsObject : Not implemented."); } 17 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetEventsResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | import {GetEventsResults} from "../../Notifications/GetEventsResults"; 3 | 4 | import {ServiceResponse} from "./ServiceResponse"; 5 | /** 6 | * @internal Represents the response to a subscription event retrieval operation. 7 | * 8 | * @sealed 9 | */ 10 | export class GetEventsResponse extends ServiceResponse { 11 | 12 | private results: GetEventsResults = new GetEventsResults(); 13 | 14 | /** 15 | * @internal Gets event results from subscription. 16 | */ 17 | get Results(): GetEventsResults { 18 | return this.results; 19 | } 20 | 21 | /** 22 | * @internal Initializes a new instance of the **GetEventsResponse** class. 23 | */ 24 | constructor() { 25 | super(); 26 | } 27 | 28 | /** 29 | * @internal Reads response elements from Xml JsObject. 30 | * 31 | * @param {any} jsObject The response object. 32 | * @param {ExchangeService} service The service. 33 | */ 34 | ReadElementsFromXmlJsObject(jsObject: any, service: ExchangeService): void { 35 | 36 | this.results.LoadFromXmlJsObject(jsObject, service); 37 | } 38 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetPasswordExpirationDateResponse.ts: -------------------------------------------------------------------------------- 1 | import {DateTime} from "../../DateTime"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {XmlElementNames} from "../XmlElementNames"; 4 | import {ServiceResponse} from "./ServiceResponse"; 5 | export class GetPasswordExpirationDateResponse extends ServiceResponse { 6 | private passwordExpirationDate: DateTime = null; 7 | get PasswordExpirationDate(): DateTime { 8 | return this.passwordExpirationDate; 9 | } 10 | ReadElementsFromJson(responseObject: any, service: ExchangeService): any { throw new Error("GetPasswordExpirationDateResponse.ts - ReadElementsFromJson : Not implemented."); } 11 | ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { 12 | 13 | this.passwordExpirationDate = service.ConvertUniversalDateTimeStringToLocalDateTime(responseObject[XmlElementNames.PasswordExpirationDate]); 14 | } 15 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetPhoneCallResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceResponse} from "./ServiceResponse"; 2 | import {PhoneCall} from "../../UnifiedMessaging/PhoneCall"; 3 | import {EwsServiceXmlReader} from "../EwsServiceXmlReader"; 4 | /** 5 | * ## *Not Implemented* 6 | */ 7 | export class GetPhoneCallResponse extends ServiceResponse { 8 | PhoneCall: PhoneCall; 9 | private phoneCall: PhoneCall; 10 | /**@internal */ 11 | ReadElementsFromXmlJsObject(reader: EwsServiceXmlReader): any { throw new Error("GetPhoneCallResponse.ts - ReadElementsFromXmlJsObject : Not implemented."); } 12 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/GetUserOofSettingsResponse.ts: -------------------------------------------------------------------------------- 1 | import {OofSettings} from "../../ComplexProperties/Availability/OofSettings"; 2 | 3 | import {ServiceResponse} from "./ServiceResponse"; 4 | /** 5 | * @internal Represents response to GetUserOofSettings request. 6 | */ 7 | export class GetUserOofSettingsResponse extends ServiceResponse { 8 | private oofSettings: OofSettings = null; 9 | 10 | /** 11 | * Gets or sets the OOF settings. 12 | * 13 | * @value The oof settings. 14 | */ 15 | get OofSettings(): OofSettings { 16 | return this.oofSettings; 17 | } 18 | set OofSettings(value: OofSettings) { 19 | this.oofSettings = value; 20 | } 21 | 22 | /** 23 | * @internal Initializes a new instance of the **GetUserOofSettingsResponse** class. 24 | */ 25 | constructor() { 26 | super(); 27 | } 28 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/InstallAppResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | 3 | import {ServiceResponse} from "./ServiceResponse"; 4 | /** 5 | * @internal Represents the response to a InstallApp operation. 6 | * Today this class doesn't add extra functionality. Keep this class here so future we can return extension info up-on installation complete. 7 | * 8 | * @sealed 9 | */ 10 | export class InstallAppResponse extends ServiceResponse { 11 | 12 | /** 13 | * @internal Initializes a new instance of the **InstallAppResponse** class. 14 | */ 15 | constructor() { 16 | super(); 17 | } 18 | 19 | /** 20 | * @internal Reads response elements from Xml JsObject. 21 | * 22 | * @param {any} jsObject The response object. 23 | * @param {ExchangeService} service The service. 24 | */ 25 | ReadElementsFromXmlJsObject(jsObject: any, service: ExchangeService): void { 26 | //does nothing, here to supress base class message about ReadElementsFromXmlJsObject when BatchProcessingStopped is false 27 | } 28 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/MarkAsJunkResponse.ts: -------------------------------------------------------------------------------- 1 | import {ItemId} from "../../ComplexProperties/ItemId"; 2 | import {XmlElementNames} from "../XmlElementNames"; 3 | import {ExchangeService} from "../ExchangeService"; 4 | import {ServiceResponse} from "./ServiceResponse"; 5 | export class MarkAsJunkResponse extends ServiceResponse { 6 | MovedItemId: ItemId = null; 7 | constructor() { 8 | super(); 9 | } 10 | //ReadElementsFromJson(responseObject: any, service: ExchangeService): any { throw new Error("MarkAsJunkResponse.ts - ReadElementsFromJson : Not implemented."); } 11 | ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { 12 | 13 | if (responseObject[XmlElementNames.Token]) { 14 | this.MovedItemId = new ItemId(); 15 | this.MovedItemId.LoadFromXmlJsObject(responseObject[XmlElementNames.MovedItemId], service); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/PlayOnPhoneResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceResponse} from "./ServiceResponse"; 2 | import {PhoneCallId} from "../../UnifiedMessaging/PhoneCallId"; 3 | import {JsonObject} from "../JsonObject"; 4 | import {ExchangeService} from "../ExchangeService"; 5 | import {EwsServiceXmlReader} from "../EwsServiceXmlReader"; 6 | /** 7 | * ## *Not Implemented* 8 | */ 9 | export class PlayOnPhoneResponse extends ServiceResponse { 10 | PhoneCallId: PhoneCallId; 11 | private phoneCallId: PhoneCallId; 12 | ReadElementsFromJson(responseObject: JsonObject, service: ExchangeService): any { throw new Error("PlayOnPhoneResponse.ts - ReadElementsFromJson : Not implemented."); } 13 | /**@internal */ 14 | ReadElementsFromXmlJsObject(reader: EwsServiceXmlReader): any { throw new Error("PlayOnPhoneResponse.ts - ReadElementsFromXmlJsObject : Not implemented."); } 15 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/ResolveNamesResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceError} from "../../Enumerations/ServiceError"; 2 | import {XmlElementNames} from "../XmlElementNames"; 3 | import {NameResolutionCollection} from "../../Misc/NameResolutionCollection"; 4 | import {ExchangeService} from "../ExchangeService"; 5 | import {EwsLogging} from "../EwsLogging"; 6 | import {ServiceResponse} from "./ServiceResponse"; 7 | export class ResolveNamesResponse extends ServiceResponse { 8 | private resolutions: NameResolutionCollection = null; 9 | get Resolutions(): NameResolutionCollection { 10 | return this.resolutions; 11 | } 12 | constructor(service: ExchangeService) { 13 | super(); 14 | EwsLogging.Assert(service !== null, "ResolveNamesResponse.ctor", "service is null"); 15 | this.resolutions = new NameResolutionCollection(service); 16 | } 17 | 18 | InternalThrowIfNecessary(): void { 19 | if (this.ErrorCode != ServiceError.ErrorNameResolutionNoResults) { 20 | super.InternalThrowIfNecessary(); 21 | } 22 | } 23 | ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { 24 | 25 | this.Resolutions.LoadFromXmlJsObject(responseObject[XmlElementNames.ResolutionSet], service); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/js/Core/Responses/SetEncryptionConfigurationResponse.ts: -------------------------------------------------------------------------------- 1 | import {ServiceResponse} from "./ServiceResponse"; 2 | /** 3 | * ## *Not Implemented* 4 | */ 5 | export class SetEncryptionConfigurationResponse extends ServiceResponse { 6 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/UninstallAppResponse.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../ExchangeService"; 2 | 3 | import {ServiceResponse} from "./ServiceResponse"; 4 | /** 5 | * @internal Represents the response to a UninstallApp operation. 6 | * Today this class doesn't add extra functionality. Keep this class here so future we can return extension info up-on installation complete. 7 | * 8 | * @sealed 9 | */ 10 | export class UninstallAppResponse extends ServiceResponse { 11 | 12 | /** 13 | * @internal Initializes a new instance of the **UninstallAppResponse** class. 14 | */ 15 | constructor() { 16 | super(); 17 | } 18 | 19 | /** 20 | * @internal Reads response elements from Xml JsObject. 21 | * 22 | * @param {any} jsObject The response object. 23 | * @param {ExchangeService} service The service. 24 | */ 25 | ReadElementsFromXmlJsObject(jsObject: any, service: ExchangeService): void { 26 | //does nothing, here to supress base class message about ReadElementsFromXmlJsObject when BatchProcessingStopped is false 27 | } 28 | } -------------------------------------------------------------------------------- /src/js/Core/Responses/UpdateFolderResponse.ts: -------------------------------------------------------------------------------- 1 | import {Folder} from "../ServiceObjects/Folders/Folder"; 2 | import {ExchangeService} from "../ExchangeService"; 3 | import {ServiceResult} from "../../Enumerations/ServiceResult"; 4 | import {EwsLogging} from "../EwsLogging"; 5 | import {ServiceResponse} from "./ServiceResponse"; 6 | export class UpdateFolderResponse extends ServiceResponse { 7 | private folder: Folder; 8 | constructor(folder: Folder) { 9 | super(); 10 | EwsLogging.Assert( 11 | folder != null, 12 | "UpdateFolderResponse.ctor", 13 | "folder is null"); 14 | this.folder = folder; 15 | } 16 | GetObjectInstance(session: ExchangeService, xmlElementName: string): Folder { return this.folder; } 17 | Loaded(): void { 18 | if (this.Result == ServiceResult.Success) { 19 | this.folder.ClearChangeLog(); 20 | } 21 | } 22 | ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { 23 | //debugger;//todo: check if this is needed. 24 | //throw new Error("UpdateFolderResponse.ts - ReadElementsFromXmlJsObject : Not implemented."); 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /src/js/Credentials/BasicAuthModuleForUTF8.ts: -------------------------------------------------------------------------------- 1 | //todo: not converted initially - pending 2 | //export = BasicAuthModuleForUTF8; 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/js/Credentials/ClientCertificateCredentials.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeCredentials} from "./ExchangeCredentials"; 2 | export class ClientCertificateCredentials extends ExchangeCredentials { 3 | ClientCertificates: /*System.Security.Cryptography.X509Certificates.X509CertificateCollection*/any; 4 | private clientCertificates: /*System.Security.Cryptography.X509Certificates.X509CertificateCollection*/any; 5 | PrepareWebRequest(request: /*IEwsHttpWebRequest*/any): any { throw new Error("ClientCertificateCredentials.ts - PrepareWebRequest : Not implemented."); } 6 | } 7 | -------------------------------------------------------------------------------- /src/js/Credentials/PartnerTokenCredentials.ts: -------------------------------------------------------------------------------- 1 | import {Uri} from "../Uri"; 2 | import {WSSecurityBasedCredentials} from "./WSSecurityBasedCredentials"; 3 | export class PartnerTokenCredentials extends WSSecurityBasedCredentials { 4 | private static WsSecuritySymmetricKeyPathSuffix: string = "/wssecurity/symmetrickey"; 5 | NeedSignature: boolean; 6 | private keyInfoNode: any; 7 | AdjustUrl(url: Uri): Uri { throw new Error("PartnerTokenCredentials.ts - AdjustUrl : Not implemented."); } 8 | //PrepareWebRequest(request: IEwsHttpWebRequest): any { throw new Error("PartnerTokenCredentials.ts - PrepareWebRequest : Not implemented.");} 9 | Sign(memoryStream: any): any { throw new Error("PartnerTokenCredentials.ts - Sign : Not implemented."); } 10 | } -------------------------------------------------------------------------------- /src/js/Credentials/TokenCredentials.ts: -------------------------------------------------------------------------------- 1 | import {WSSecurityBasedCredentials} from "./WSSecurityBasedCredentials"; 2 | export class TokenCredentials extends WSSecurityBasedCredentials { 3 | //PrepareWebRequest(request: IEwsHttpWebRequest): any { throw new Error("TokenCredentials.ts - PrepareWebRequest : Not implemented.");} 4 | } -------------------------------------------------------------------------------- /src/js/Credentials/WSSecurityUtilityIdSignedXml.ts: -------------------------------------------------------------------------------- 1 | export class WSSecurityUtilityIdSignedXml /*extends System.Security.Cryptography.Xml.SignedXml*/ { 2 | private document: /*System.Xml.XmlDocument*/any; 3 | private ids: /*System.Collections.Generic.Dictionary*/any; 4 | private static nextId: number; 5 | private static commonPrefix: string; 6 | AddReference(xpath: string): any { throw new Error("WSSecurityUtilityIdSignedXml.ts - AddReference : Not implemented."); } 7 | GetIdElement(document: /*System.Xml.XmlDocument*/any, idValue: string): /*System.Xml.XmlElement*/any { throw new Error("WSSecurityUtilityIdSignedXml.ts - GetIdElement : Not implemented."); } 8 | GetUniqueId(): string { throw new Error("WSSecurityUtilityIdSignedXml.ts - GetUniqueId : Not implemented."); } 9 | } -------------------------------------------------------------------------------- /src/js/Credentials/WebCredentials.ts: -------------------------------------------------------------------------------- 1 | import {Uri} from "../Uri"; 2 | import {ExchangeCredentials} from "./ExchangeCredentials"; 3 | export class WebCredentials extends ExchangeCredentials { 4 | // taken care by ExchangeCredentials 5 | //Credentials: /*System.Net.ICredentials*/any; 6 | //private credentials: /*System.Net.ICredentials*/any; 7 | //AdjustUrl(url: Uri): Uri { throw new Error("WebCredentials.ts - AdjustUrl : Not implemented."); } 8 | //PrepareWebRequest(request: IEwsHttpWebRequest): any { throw new Error("WebCredentials.ts - PrepareWebRequest : Not implemented.");} 9 | } -------------------------------------------------------------------------------- /src/js/Dns/DnsClient.ts: -------------------------------------------------------------------------------- 1 | export class DnsClient { 2 | private static Win32Success: number = 0; 3 | private static typeToDnsTypeMap: any /*LazyMember>*/; 4 | DnsQuer(domain: string, dnsServerAddress: any /*System.Net.IPAddress*/): T[] /*System.Collections.Generic.List*/{ throw new Error("DnsClient.ts - DnsQuer : Not implemented.");} 5 | } 6 | 7 | 8 | 9 | //------------modulename->Microsoft.Exchange.WebServices.Dns------------ 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/js/Dns/DnsNativeMethods.ts: -------------------------------------------------------------------------------- 1 | // import {DnsRecordType} from "../Enumerations/DnsRecordType"; 2 | // import {DnsQueryOptions} from "../Enumerations/DnsQueryOptions"; 3 | // import {FreeType} from "../Enumerations/FreeType"; 4 | // export class DnsNativeMethods { 5 | // private static DNSAPI: string = "dnsapi.dll"; 6 | // AllocDnsServerList(dnsServerAddress: any /*System.Net.IPAddress*/): number{ throw new Error("DnsNativeMethods.ts - AllocDnsServerList : Not implemented.");} 7 | // DnsQuery(pszName: string, wType: DnsRecordType, options: DnsQueryOptions, aipServers: number, ppQueryResults: number /*System.IntPtr&*/, pReserved: number): number{ throw new Error("DnsNativeMethods.ts - DnsQuery : Not implemented.");} 8 | // //DnsQuery(domain: string, dnsServerAddress: any /*System.Net.IPAddress*/, recordType: DnsRecordType, ppQueryResults: number /*System.IntPtr&*/): number{ throw new Error("DnsNativeMethods.ts - DnsQuery : Not implemented.");} 9 | // DnsRecordListFree(ptrRecords: number, freeType: FreeType): void{ throw new Error("DnsNativeMethods.ts - DnsRecordListFree : Not implemented.");} 10 | // FreeDnsQueryResults(ptrRecords: number): void{ throw new Error("DnsNativeMethods.ts - FreeDnsQueryResults : Not implemented.");} 11 | // } 12 | 13 | 14 | 15 | // //------------modulename->Microsoft.Exchange.WebServices.Dns------------ 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/js/Dns/DnsRecord.ts: -------------------------------------------------------------------------------- 1 | import {DnsRecordType} from "../Enumerations/DnsRecordType"; 2 | import {DnsRecordHeader} from "./DnsRecordHeader"; 3 | /**@internal */ 4 | export class DnsRecord { 5 | RecordType: DnsRecordType; 6 | Name: string; 7 | TimeToLive: any /*System.TimeSpan*/; 8 | private name: string; 9 | private timeToLive: number; 10 | Load(header: DnsRecordHeader, dataPointer: number): void{ throw new Error("DnsRecord.ts - Load : Not implemented.");} 11 | } 12 | 13 | 14 | 15 | //------------modulename->Microsoft.Exchange.WebServices.Dns------------ 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/js/Dns/DnsRecordHeader.ts: -------------------------------------------------------------------------------- 1 | import {DnsRecordType} from "../Enumerations/DnsRecordType"; 2 | /** @internal */ 3 | export class DnsRecordHeader { 4 | NextRecord: number; 5 | Name: string; 6 | RecordType: DnsRecordType; 7 | DataLength: number; 8 | Flags: number; 9 | Ttl: number; 10 | Reserved: number; 11 | } 12 | 13 | 14 | 15 | //------------modulename->Microsoft.Exchange.WebServices.Dns------------ 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/js/Dns/DnsSrvRecord.ts: -------------------------------------------------------------------------------- 1 | import {DnsRecord} from "./DnsRecord"; 2 | import {DnsRecordType} from "../Enumerations/DnsRecordType"; 3 | import {DnsRecordHeader} from "./DnsRecordHeader"; 4 | /** @internal */ 5 | export class DnsSrvRecord extends DnsRecord { 6 | RecordType: DnsRecordType; 7 | NameTarget: string; 8 | Priority: number; 9 | Weight: number; 10 | Port: number; 11 | private target: string; 12 | private priority: number; 13 | private weight: number; 14 | private port: number; 15 | Load(header: DnsRecordHeader, dataPointer: number): void{ throw new Error("DnsSrvRecord.ts - Load : Not implemented.");} 16 | } 17 | 18 | 19 | 20 | //------------modulename->Microsoft.Exchange.WebServices.Dns------------ 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/js/Enumerations/AffectedTaskOccurrence.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Indicates which occurrence of a recurring task should be deleted 4 | */ 5 | export enum AffectedTaskOccurrence { 6 | 7 | /** 8 | * All occurrences of the recurring task will be deleted. 9 | */ 10 | AllOccurrences = 0, 11 | 12 | /** 13 | * Only the current occurrence of the recurring task will be deleted. 14 | */ 15 | SpecifiedOccurrenceOnly = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/AggregateType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of aggregation to perform. 4 | */ 5 | export enum AggregateType { 6 | 7 | /** 8 | * The maximum value is calculated. 9 | */ 10 | Minimum = 0, 11 | 12 | /** 13 | * The minimum value is calculated. 14 | */ 15 | Maximum = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/AppointmentType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of an appointment. 4 | */ 5 | export enum AppointmentType { 6 | 7 | /** 8 | * The appointment is non-recurring. 9 | */ 10 | Single = 0, 11 | 12 | /** 13 | * The appointment is an occurrence of a recurring appointment. 14 | */ 15 | Occurrence = 1, 16 | 17 | /** 18 | * The appointment is an exception of a recurring appointment. 19 | */ 20 | Exception = 2, 21 | 22 | /** 23 | * The appointment is the recurring master of a series. 24 | */ 25 | RecurringMaster = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/AutodiscoverEndpoints.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines the types of Autodiscover endpoints that are available. 4 | * 5 | * [Flags] 6 | */ 7 | export enum AutodiscoverEndpoints { 8 | 9 | /** 10 | * No endpoints available. 11 | */ 12 | None = 0, 13 | 14 | /** 15 | * The "legacy" Autodiscover endpoint. 16 | */ 17 | Legacy = 1, 18 | 19 | /** 20 | * The SOAP endpoint. 21 | */ 22 | Soap = 2, 23 | 24 | /** 25 | * The WS-Security endpoint. 26 | */ 27 | WsSecurity = 4, 28 | 29 | /** 30 | * The WS-Security/SymmetricKey endpoint. 31 | */ 32 | WSSecuritySymmetricKey = 8, 33 | 34 | /** 35 | * The WS-Security/X509Cert endpoint. 36 | */ 37 | WSSecurityX509Cert = 16, 38 | 39 | /** 40 | * The OAuth endpoint 41 | */ 42 | OAuth = 32 43 | } -------------------------------------------------------------------------------- /src/js/Enumerations/AutodiscoverResponseType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines the types of response the Autodiscover service can return. 4 | */ 5 | export enum AutodiscoverResponseType { 6 | 7 | /** 8 | * The request returned an error. 9 | */ 10 | Error = 0, 11 | 12 | /** 13 | * A URL redirection is necessary. 14 | */ 15 | RedirectUrl = 1, 16 | 17 | /** 18 | * An address redirection is necessary. 19 | */ 20 | RedirectAddress = 2, 21 | 22 | /** 23 | * The request succeeded. 24 | */ 25 | Success = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/AvailabilityData.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of data that can be requested via GetUserAvailability. 4 | */ 5 | export enum AvailabilityData { 6 | 7 | /** 8 | * Only return free/busy data. 9 | */ 10 | FreeBusy = 0, 11 | 12 | /** 13 | * Only return suggestions. 14 | */ 15 | Suggestions = 1, 16 | 17 | /** 18 | * Return both free/busy data and suggestions. 19 | */ 20 | FreeBusyAndSuggestions = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/BasePropertySet.ts: -------------------------------------------------------------------------------- 1 |  2 | /** 3 | * Defines base property sets that are used as the base for custom property sets. 4 | */ 5 | export enum BasePropertySet { 6 | 7 | /** 8 | * Only includes the Id of items and folders. 9 | */ 10 | IdOnly = 0, 11 | 12 | /** 13 | * Includes all the first class properties of items and folders. 14 | */ 15 | FirstClassProperties = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/BodyType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of body of an item. 4 | */ 5 | export enum BodyType { 6 | 7 | /** 8 | * The body is formatted in HTML. 9 | */ 10 | HTML = 0, 11 | 12 | /** 13 | * The body is in plain text. 14 | */ 15 | Text = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ChangeType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of change of a synchronization event. 4 | */ 5 | export enum ChangeType { 6 | 7 | /** 8 | * An item or folder was created. 9 | */ 10 | Create = 0, 11 | 12 | /** 13 | * An item or folder was modified. 14 | */ 15 | Update = 1, 16 | 17 | /** 18 | * An item or folder was deleted. 19 | */ 20 | Delete = 2, 21 | 22 | /** 23 | * An item's IsRead flag was changed. 24 | */ 25 | ReadFlagChange = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ClientAccessTokenType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of ClientAccessTokenType 4 | */ 5 | export enum ClientAccessTokenType { 6 | 7 | /** 8 | * CallerIdentity 9 | */ 10 | CallerIdentity = 0, 11 | 12 | /** 13 | * ExtensionCallback. 14 | */ 15 | ExtensionCallback = 1, 16 | 17 | /** 18 | * ScopedToken 19 | */ 20 | ScopedToken = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ClientExtensionProvidedTo.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of ClientExtensionProvidedTo. 4 | */ 5 | export enum ClientExtensionProvidedTo { 6 | 7 | /** 8 | * Everyone 9 | */ 10 | Everyone = 0, 11 | 12 | /** 13 | * SpecificUsers 14 | */ 15 | SpecificUsers = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ComparisonMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the way values are compared in search filters. 4 | */ 5 | export enum ComparisonMode { 6 | 7 | /** 8 | * The comparison is exact. 9 | */ 10 | Exact = 0, 11 | 12 | /** 13 | * The comparison ignores casing. 14 | */ 15 | IgnoreCase = 1, 16 | 17 | /** 18 | * The comparison ignores spacing characters. 19 | */ 20 | IgnoreNonSpacingCharacters = 2, 21 | 22 | /** 23 | * The comparison ignores casing and spacing characters. 24 | */ 25 | IgnoreCaseAndNonSpacingCharacters = 3 26 | 27 | // Although the following four values are defined in the EWS schema, they are useless 28 | // as they are all technically equivalent to Loose. We are not exposing those values 29 | // in this API. When we encounter one of these values on an existing search folder 30 | // restriction, we map it to IgnoreCaseAndNonSpacingCharacters. 31 | // 32 | // Loose, 33 | // LooseAndIgnoreCase, 34 | // LooseAndIgnoreNonSpace, 35 | // LooseAndIgnoreCaseAndIgnoreNonSpace 36 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConflictResolutionMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines how conflict resolutions are handled in update operations. 4 | */ 5 | export enum ConflictResolutionMode { 6 | 7 | /** 8 | * Local property changes are discarded. 9 | */ 10 | NeverOverwrite = 0, 11 | 12 | /** 13 | * Local property changes are applied to the server unless the server-side copy is more recent than the local copy. 14 | */ 15 | AutoResolve = 1, 16 | 17 | /** 18 | * Local property changes overwrite server-side changes. 19 | */ 20 | AlwaysOverwrite = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConflictType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the conflict types that can be returned in meeting time suggestions. 4 | */ 5 | export enum ConflictType { 6 | 7 | /** 8 | * There is a conflict with an indicidual attendee. 9 | */ 10 | IndividualAttendeeConflict = 0, 11 | 12 | /** 13 | * There is a conflict with at least one member of a group. 14 | */ 15 | GroupConflict = 1, 16 | 17 | /** 18 | * There is a conflict with at least one member of a group, but the group was too big for detailed information to be returned. 19 | */ 20 | GroupTooBigConflict = 2, 21 | 22 | /** 23 | * There is a conflict with an unresolvable attendee or an attendee that is not a user, group, or contact. 24 | */ 25 | UnknownAttendeeConflict = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConnectingIdType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of Id of a ConnectingId object. 4 | */ 5 | export enum ConnectingIdType { 6 | 7 | /** 8 | * The connecting Id is a principal name. 9 | */ 10 | PrincipalName = 0, 11 | 12 | /** 13 | * The Id is an SID. 14 | */ 15 | SID = 1, 16 | 17 | /** 18 | * The Id is an SMTP address. 19 | */ 20 | SmtpAddress = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConnectionFailureCause.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * The ConnectionFailureCause enumeration 4 | */ 5 | export enum ConnectionFailureCause { 6 | 7 | /** 8 | * None 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * UserBusy 14 | */ 15 | UserBusy = 1, 16 | 17 | /** 18 | * NoAnswer 19 | */ 20 | NoAnswer = 2, 21 | 22 | /** 23 | * Unavailable 24 | */ 25 | Unavailable = 3, 26 | 27 | /** 28 | * Other 29 | */ 30 | Other = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConsentState.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * The consent states enumeration 4 | */ 5 | export enum ConsentState { 6 | 7 | /** 8 | * User has closed the consent page or has not responded yet. 9 | */ 10 | NotResponded = 0, 11 | 12 | 13 | /** 14 | * User has requested to disable the extension. 15 | */ 16 | NotConsented = 1, 17 | 18 | 19 | /** 20 | * User has requested to enable the extension. 21 | */ 22 | Consented = 2 23 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ContactSource.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the source of a contact or group. 4 | */ 5 | export enum ContactSource { 6 | 7 | /** 8 | * The contact or group is stored in the Global Address List 9 | */ 10 | ActiveDirectory = 0, 11 | 12 | /** 13 | * The contact or group is stored in Exchange. 14 | */ 15 | Store = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ContainmentMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the containment mode for Contains search filters. 4 | */ 5 | export enum ContainmentMode { 6 | 7 | /** 8 | * The comparison is between the full string and the constant. The property value and the supplied constant are precisely the same. 9 | */ 10 | FullString = 0, 11 | 12 | /** 13 | * The comparison is between the string prefix and the constant. 14 | */ 15 | Prefixed = 1, 16 | 17 | /** 18 | * The comparison is between a substring of the string and the constant. 19 | */ 20 | Substring = 2, 21 | 22 | /** 23 | * The comparison is between a prefix on individual words in the string and the constant. 24 | */ 25 | PrefixOnWords = 3, 26 | 27 | /** 28 | * The comparison is between an exact phrase in the string and the constant. 29 | */ 30 | ExactPhrase = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConversationActionType.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | /** 4 | * @internal Defines actions applicable to Conversation. 5 | */ 6 | export enum ConversationActionType { 7 | 8 | /** 9 | * Categorizes every current and future message in the conversation 10 | */ 11 | AlwaysCategorize = 0, 12 | 13 | /** 14 | * Deletes every current and future message in the conversation 15 | */ 16 | AlwaysDelete = 1, 17 | 18 | /** 19 | * Moves every current and future message in the conversation 20 | */ 21 | AlwaysMove = 2, 22 | 23 | /** 24 | * Deletes current item in context folder in the conversation 25 | */ 26 | Delete = 3, 27 | 28 | /** 29 | * Moves current item in context folder in the conversation 30 | */ 31 | Move = 4, 32 | 33 | /** 34 | * Copies current item in context folder in the conversation 35 | */ 36 | Copy = 5, 37 | 38 | /** 39 | * Marks current item in context folder in the conversation with provided read state 40 | */ 41 | SetReadState = 6, 42 | 43 | /** 44 | * Set retention policy. 45 | */ 46 | SetRetentionPolicy = 7, 47 | 48 | /** 49 | * Flag current items in context folder in the conversation with provided flag state. 50 | */ 51 | Flag = 8 52 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConversationFlagStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the flag status of a Conversation. 4 | */ 5 | export enum ConversationFlagStatus { 6 | 7 | /** 8 | * Not Flagged 9 | */ 10 | NotFlagged = 0, 11 | 12 | /** 13 | * Flagged 14 | */ 15 | Flagged = 1, 16 | 17 | /** 18 | * Complete 19 | */ 20 | Complete = 2 21 | } 22 | -------------------------------------------------------------------------------- /src/js/Enumerations/ConversationQueryTraversal.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the folder traversal depth in queries. 4 | */ 5 | export enum ConversationQueryTraversal { 6 | 7 | /** 8 | * Shallow traversal 9 | */ 10 | Shallow = 0, 11 | 12 | /** 13 | * Deep traversal 14 | */ 15 | Deep = 1 16 | } 17 | 18 | import { ExchangeVersion } from "./ExchangeVersion" 19 | export module ConversationQueryTraversal { 20 | 21 | /**RequiredServerVersionAttribute */ 22 | export function RequiredServerVersion(value: ConversationQueryTraversal): ExchangeVersion { 23 | if (value <= 1) //<= ConversationQueryTraversal.Deep 24 | return ExchangeVersion.Exchange2013; 25 | return ExchangeVersion.Exchange_Version_Not_Updated; 26 | } 27 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ConversationSortOrder.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the order in which conversation nodes should be returned by GetConversationItems. 4 | */ 5 | export enum ConversationSortOrder { 6 | 7 | /** 8 | * Tree order, ascending 9 | */ 10 | TreeOrderAscending = 0, 11 | 12 | /** 13 | * Tree order, descending. 14 | */ 15 | TreeOrderDescending = 1, 16 | 17 | /** 18 | * Chronological order, ascending. 19 | */ 20 | DateOrderAscending = 2, 21 | 22 | /** 23 | * Chronological order, descending. 24 | */ 25 | DateOrderDescending = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DateTimePrecision.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the precision for returned DateTime values 4 | */ 5 | export enum DateTimePrecision { 6 | 7 | /** 8 | * Default value. No SOAP header emitted. 9 | */ 10 | Default = 0, 11 | 12 | /** 13 | * Seconds 14 | */ 15 | Seconds = 1, 16 | 17 | /** 18 | * Milliseconds 19 | */ 20 | Milliseconds = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DayOfTheWeekIndex.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the index of a week day within a month. 4 | */ 5 | export enum DayOfTheWeekIndex { 6 | 7 | /** 8 | * The first specific day of the week in the month. For example, the first Tuesday of the month. 9 | */ 10 | First = 0, 11 | 12 | /** 13 | * The second specific day of the week in the month. For example, the second Tuesday of the month. 14 | */ 15 | Second = 1, 16 | 17 | /** 18 | * The third specific day of the week in the month. For example, the third Tuesday of the month. 19 | */ 20 | Third = 2, 21 | 22 | /** 23 | * The fourth specific day of the week in the month. For example, the fourth Tuesday of the month. 24 | */ 25 | Fourth = 3, 26 | 27 | /** 28 | * The last specific day of the week in the month. For example, the last Tuesday of the month. 29 | */ 30 | Last = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DayOfWeek.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Enum for the day of the week. 3 | * System.DayOfWeek 4 | */ 5 | export enum DayOfWeek { 6 | 7 | /** 8 | * Sunday 9 | */ 10 | Sunday = 0, 11 | 12 | /** 13 | * Monday 14 | */ 15 | Monday = 1, 16 | 17 | /** 18 | * Tuesday 19 | */ 20 | Tuesday = 2, 21 | 22 | /** 23 | * Wednesday 24 | */ 25 | Wednesday = 3, 26 | 27 | /** 28 | * Thursday 29 | */ 30 | Thursday = 4, 31 | 32 | /** 33 | * Friday 34 | */ 35 | Friday = 5, 36 | 37 | /** 38 | * Saturday 39 | */ 40 | Saturday = 6, 41 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DefaultExtendedPropertySet.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the default sets of extended properties. 4 | */ 5 | export enum DefaultExtendedPropertySet { 6 | 7 | /** 8 | * The Meeting extended property set. 9 | */ 10 | Meeting = 0, 11 | 12 | /** 13 | * The Appointment extended property set. 14 | */ 15 | Appointment = 1, 16 | 17 | /** 18 | * The Common extended property set. 19 | */ 20 | Common = 2, 21 | 22 | /** 23 | * The PublicStrings extended property set. 24 | */ 25 | PublicStrings = 3, 26 | 27 | /** 28 | * The Address extended property set. 29 | */ 30 | Address = 4, 31 | 32 | /** 33 | * The InternetHeaders extended property set. 34 | */ 35 | InternetHeaders = 5, 36 | 37 | /** 38 | * The CalendarAssistant extended property set. 39 | */ 40 | CalendarAssistant = 6, 41 | 42 | /** 43 | * The UnifiedMessaging extended property set. 44 | */ 45 | UnifiedMessaging = 7, 46 | 47 | /** 48 | * The Task extended property set. 49 | */ 50 | Task = 8 51 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DelegateFolderPermissionLevel.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * 4 | */ 5 | export enum DelegateFolderPermissionLevel { 6 | 7 | /** 8 | * The delegate has no permissions. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * The delegate has Editor permissions. 14 | */ 15 | Editor = 1, 16 | 17 | /** 18 | * The delegate has Reviewer permissions. 19 | */ 20 | Reviewer = 2, 21 | 22 | /** 23 | * The delegate has Author permissions. 24 | */ 25 | Author = 3, 26 | 27 | /** 28 | * The delegate has Custom permissions. 29 | */ 30 | Custom = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DeleteMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Represents deletion modes. 4 | */ 5 | export enum DeleteMode { 6 | 7 | /** 8 | * The item or folder will be permanently deleted. 9 | */ 10 | HardDelete = 0, 11 | 12 | /** 13 | * The item or folder will be moved to the dumpster. Items and folders in the dumpster can be recovered. 14 | */ 15 | SoftDelete = 1, 16 | 17 | /** 18 | * The item or folder will be moved to the mailbox' Deleted Items folder. 19 | */ 20 | MoveToDeletedItems = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DictionaryKeyType.ts: -------------------------------------------------------------------------------- 1 | export enum DictionaryKeyType{ 2 | EmailAddressKey, 3 | ImAddressKey, 4 | PhoneNumberKey, 5 | PhysicalAddressKey 6 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DisableReasonType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Disable reason type 4 | */ 5 | export enum DisableReasonType { 6 | /** 7 | * Extension is being disabled with no reason 8 | */ 9 | NoReason = 0, 10 | /** 11 | * Extension is being disabled from Outlook due to performance reasons 12 | */ 13 | OutlookClientPerformance = 1, 14 | /** 15 | * Extension is being disabled from OWA due to performance reasons 16 | */ 17 | OWAClientPerformance = 2, 18 | /** 19 | * Extension is being disabled from MOWA due to performance reasons 20 | */ 21 | MobileClientPerformance = 3 22 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DnsQueryOptions.ts: -------------------------------------------------------------------------------- 1 | // //todo - move to file where class Microsoft.Exchange.WebServices.Dns.DnsNativeMethods is located 2 | // module Microsoft.Exchange.WebServices.Dns.DnsNativeMethods { 3 | // export enum DnsQueryOptions { 4 | // DNS_QUERY_STANDARD = 0 5 | // } 6 | // } 7 | 8 | -------------------------------------------------------------------------------- /src/js/Enumerations/DnsRecordType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal DNS record types. 4 | */ 5 | export enum DnsRecordType { 6 | 7 | /** 8 | * RFC 1034/1035 Address Record 9 | */ 10 | A = 0x0001,//1 11 | 12 | /** 13 | * Canonical Name Record 14 | */ 15 | CNAME = 0x0005,//5 16 | 17 | /** 18 | * Start of Authority Record 19 | */ 20 | SOA = 0x0006,//6 21 | 22 | /** 23 | * Pointer Record 24 | */ 25 | PTR = 0x000c,//12 26 | 27 | /** 28 | * Mail Exchange Record 29 | */ 30 | MX = 0x000f,//15 31 | 32 | /** 33 | * Text Record 34 | */ 35 | TXT = 0x0010,//16, 36 | 37 | /** 38 | * RFC 1886 (IPv6 Address) 39 | */ 40 | AAAA = 0x001c,//28, 41 | 42 | /** 43 | * Service location - RFC 2052 44 | */ 45 | SRV = 0x0021,//33 46 | } -------------------------------------------------------------------------------- /src/js/Enumerations/DomainSettingName.ts: -------------------------------------------------------------------------------- 1 |  2 | /** 3 | * Domain setting names. 4 | */ 5 | export enum DomainSettingName { 6 | 7 | /** 8 | * The external URL of the Exchange Web Services. 9 | */ 10 | ExternalEwsUrl = 0, 11 | 12 | /** 13 | * The version of the Exchange server hosting the URL of the Exchange Web Services. 14 | */ 15 | ExternalEwsVersion = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/EffectiveRights.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the effective user rights associated with an item or folder. 4 | * 5 | * [Flags] 6 | */ 7 | export enum EffectiveRights { 8 | 9 | /** 10 | * The user has no acces right on the item or folder. 11 | */ 12 | None = 0, 13 | 14 | /** 15 | * The user can create associated items (FAI) 16 | */ 17 | CreateAssociated = 1, 18 | 19 | /** 20 | * The user can create items. 21 | */ 22 | CreateContents = 2, 23 | 24 | /** 25 | * The user can create sub-folders. 26 | */ 27 | CreateHierarchy = 4, 28 | 29 | /** 30 | * The user can delete items and/or folders. 31 | */ 32 | Delete = 8, 33 | 34 | /** 35 | * The user can modify the properties of items and/or folders. 36 | */ 37 | Modify = 16, 38 | 39 | /** 40 | * The user can read the contents of items. 41 | */ 42 | Read = 32, 43 | 44 | /** 45 | * The user can view private items. 46 | */ 47 | ViewPrivateItems = 64 48 | } -------------------------------------------------------------------------------- /src/js/Enumerations/EmailAddressKey.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines e-mail address entries for a contact. 4 | */ 5 | export enum EmailAddressKey { 6 | 7 | /** 8 | * The first e-mail address. 9 | */ 10 | EmailAddress1 = 0, 11 | 12 | /** 13 | * The second e-mail address. 14 | */ 15 | EmailAddress2 = 1, 16 | 17 | /** 18 | * The third e-mail address. 19 | */ 20 | EmailAddress3 = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/EmailPosition.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the email position of an extracted entity. 4 | */ 5 | export enum EmailPosition { 6 | 7 | /** 8 | * The position is in the latest reply. 9 | */ 10 | LatestReply = 0, 11 | 12 | /** 13 | * The position is not in the latest reply. 14 | */ 15 | Other = 1, 16 | 17 | /** 18 | * The position is in the subject. 19 | */ 20 | Subject = 2, 21 | 22 | /** 23 | * The position is in the signature. 24 | */ 25 | Signature = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/EnumToSchemaMappingHelper.ts: -------------------------------------------------------------------------------- 1 | /**custom created to simplify creation of above Enum(s) to ExchangeVersion mapping in EwsUtil, There is no c# like Attribute typesystem and reflection available */ 2 | export enum EnumToSchemaMappingHelper { 3 | WellKnownFolderName, 4 | /**Item Traversal */ 5 | ItemTraversal, 6 | ConversationQueryTraversal, 7 | FileAsMapping, 8 | EventType, 9 | MeetingRequestsDeliveryScope, 10 | ViewFilter, 11 | MailboxType, 12 | } 13 | -------------------------------------------------------------------------------- /src/js/Enumerations/ExtensionInstallScope.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of ExtensionInstallScope. 4 | */ 5 | export enum ExtensionInstallScope { 6 | 7 | /** 8 | * None 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * User 14 | */ 15 | User = 1, 16 | 17 | /** 18 | * Organization 19 | */ 20 | Organization = 2, 21 | 22 | /** 23 | * Exchange Default 24 | */ 25 | Default = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ExtensionType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of ExtensionType. 4 | */ 5 | export enum ExtensionType { 6 | 7 | /** 8 | * Default 9 | */ 10 | Default = 0, 11 | 12 | /** 13 | * Private 14 | */ 15 | Private = 1, 16 | 17 | /** 18 | * MarketPlace 19 | */ 20 | MarketPlace = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/FolderPermissionReadAccess.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines a user's read access permission on items in a non-calendar folder. 4 | */ 5 | export enum FolderPermissionReadAccess { 6 | 7 | /** 8 | * The user has no read access on the items in the folder. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * The user can read the start and end date and time of appointments. (Can only be applied to Calendar folders). 14 | */ 15 | TimeOnly = 1, 16 | 17 | /** 18 | * The user can read the start and end date and time, subject and location of appointments. (Can only be applied to Calendar folders). 19 | */ 20 | TimeAndSubjectAndLocation = 2, 21 | 22 | /** 23 | * The user has access to the full details of items. 24 | */ 25 | FullDetails = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/FolderTraversal.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the scope of FindFolders operations. 4 | */ 5 | export enum FolderTraversal { 6 | 7 | /** 8 | * Only direct sub-folders are retrieved. 9 | */ 10 | Shallow = 0, 11 | 12 | /** 13 | * The entire hierarchy of sub-folders is retrieved. 14 | */ 15 | Deep = 1, 16 | 17 | /** 18 | * Only soft deleted folders are retrieved. 19 | */ 20 | SoftDeleted = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/FreeType.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Dns.DnsNativeMethods is located 2 | // module Microsoft.Exchange.WebServices.Dns.DnsNativeMethods { 3 | // export enum FreeType { 4 | // RecordList = 1 5 | // } 6 | // } 7 | 8 | // import _export = Microsoft.Exchange.WebServices.Dns.DnsNativeMethods.FreeType; 9 | // export = _export; 10 | -------------------------------------------------------------------------------- /src/js/Enumerations/GetUserPhotoStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the response types from a GetUserPhoto request 4 | */ 5 | export enum GetUserPhotoStatus { 6 | /** 7 | * The photo was successfully returned 8 | */ 9 | PhotoReturned = 0, 10 | 11 | /** 12 | * The photo has not changed since it was last obtained 13 | */ 14 | PhotoUnchanged = 1, 15 | 16 | /** 17 | * The photo or user was not found on the server 18 | */ 19 | PhotoOrUserNotFound = 2, 20 | } -------------------------------------------------------------------------------- /src/js/Enumerations/HangingRequestDisconnectReason.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Data.HangingServiceRequestBase is located 2 | // - cant move - this is needed by shared eventargs type member 3 | 4 | /** 5 | * @internal Enumeration of reasons that a hanging request may disconnect. 6 | */ 7 | export enum HangingRequestDisconnectReason { 8 | 9 | /** 10 | * The server cleanly closed the connection. 11 | */ 12 | Clean = 0, 13 | 14 | /** 15 | * The client closed the connection. 16 | */ 17 | UserInitiated = 1, 18 | 19 | /** 20 | * The connection timed out do to a lack of a heartbeat received. 21 | */ 22 | Timeout = 2, 23 | 24 | /** 25 | * An exception occurred on the connection. 26 | */ 27 | Exception = 3 28 | } -------------------------------------------------------------------------------- /src/js/Enumerations/HoldAction.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the hold action. 4 | */ 5 | export enum HoldAction { 6 | 7 | /** 8 | * Create new hold 9 | */ 10 | Create = 0, 11 | 12 | /** 13 | * Update query associated with a hold 14 | */ 15 | Update = 1, 16 | 17 | /** 18 | * Release the hold 19 | */ 20 | Remove = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/HoldStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the hold status. 4 | */ 5 | export enum HoldStatus { 6 | 7 | /** 8 | * Not on hold 9 | */ 10 | NotOnHold = 0, 11 | 12 | /** 13 | * Placing/removing hold is in-progress 14 | */ 15 | Pending = 1, 16 | 17 | /** 18 | * On hold 19 | */ 20 | OnHold = 2, 21 | 22 | /** 23 | * Some mailboxes are on hold and some are not 24 | */ 25 | PartialHold = 3, 26 | 27 | /** 28 | * The hold operation failed 29 | */ 30 | Failed = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/IdFormat.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines supported Id formats in ConvertId operations. 4 | */ 5 | export enum IdFormat { 6 | 7 | /** 8 | * The EWS Id format used in Exchange 2007 RTM. 9 | */ 10 | EwsLegacyId = 0, 11 | 12 | /** 13 | * The EWS Id format used in Exchange 2007 SP1 and above. 14 | */ 15 | EwsId = 1, 16 | 17 | /** 18 | * The base64-encoded PR_ENTRYID property. 19 | */ 20 | EntryId = 2, 21 | 22 | /** 23 | * The hexadecimal representation of the PR_ENTRYID property. 24 | */ 25 | HexEntryId = 3, 26 | 27 | /** 28 | * The Store Id format. 29 | */ 30 | StoreId = 4, 31 | 32 | /** 33 | * The Outlook Web Access Id format. 34 | */ 35 | OwaId = 5 36 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ImAddressKey.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines Instant Messaging address entries for a contact. 4 | */ 5 | export enum ImAddressKey { 6 | 7 | /** 8 | * The first Instant Messaging address. 9 | */ 10 | ImAddress1 = 0, 11 | 12 | /** 13 | * The second Instant Messaging address. 14 | */ 15 | ImAddress2 = 1, 16 | 17 | /** 18 | * The third Instant Messaging address. 19 | */ 20 | ImAddress3 = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/Importance.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the importance of an item. 4 | */ 5 | export enum Importance { 6 | 7 | /** 8 | * Low importance. 9 | */ 10 | Low = 0, 11 | 12 | /** 13 | * Normal importance. 14 | */ 15 | Normal = 1, 16 | 17 | /** 18 | * High importance. 19 | */ 20 | High = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ItemFlagStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the flag status of an Item. 4 | */ 5 | export enum ItemFlagStatus { 6 | 7 | /** 8 | * Not Flagged. 9 | */ 10 | NotFlagged = 0, 11 | 12 | /** 13 | * Flagged. 14 | */ 15 | Flagged = 1, 16 | 17 | /** 18 | * Complete. 19 | */ 20 | Complete = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ItemIndexError.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Data.NonIndexableItem is located 2 | 3 | /** 4 | * Item index error 5 | */ 6 | export enum ItemIndexError { 7 | 8 | /** 9 | * None 10 | */ 11 | None = 0, 12 | 13 | /** 14 | * Generic Error 15 | */ 16 | GenericError = 1, 17 | 18 | /** 19 | * Timeout 20 | */ 21 | Timeout = 2, 22 | 23 | /** 24 | * Stale Event 25 | */ 26 | StaleEvent = 3, 27 | 28 | /** 29 | * Mailbox Offline 30 | */ 31 | MailboxOffline = 4, 32 | 33 | /** 34 | * Too many attachments to index 35 | */ 36 | AttachmentLimitReached = 5, 37 | 38 | /** 39 | * Data is truncated 40 | */ 41 | MarsWriterTruncation = 6 42 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ItemTraversal.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the scope of FindItems operations. 4 | */ 5 | export enum ItemTraversal { 6 | 7 | /** 8 | * All non deleted items in the specified folder are retrieved. 9 | */ 10 | Shallow = 0, 11 | 12 | /** 13 | * Only soft-deleted items are retrieved. 14 | */ 15 | SoftDeleted = 1, 16 | 17 | /** 18 | * Only associated items are retrieved (Exchange 2010 or later). 19 | */ 20 | Associated = 2 21 | } 22 | 23 | import { ExchangeVersion } from "./ExchangeVersion" 24 | export module ItemTraversal { 25 | 26 | /**RequiredServerVersionAttribute */ 27 | export function RequiredServerVersion(value: ItemTraversal): ExchangeVersion { 28 | if (value <= 1) //<= ItemTraversal.SoftDeleted 29 | return ExchangeVersion.Exchange2007_SP1; 30 | if (value == 2) // === Associated 31 | return ExchangeVersion.Exchange2010; 32 | 33 | return ExchangeVersion.Exchange_Version_Not_Updated; 34 | } 35 | } -------------------------------------------------------------------------------- /src/js/Enumerations/JsonTokenType.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Data.JsonTokenizer is located 2 | 3 | export enum JsonTokenType { 4 | String = 0, 5 | Number = 1, 6 | Boolean = 2, 7 | Null = 3, 8 | ObjectOpen = 4, 9 | ObjectClose = 5, 10 | ArrayOpen = 6, 11 | ArrayClose = 7, 12 | Colon = 8, 13 | Comma = 9, 14 | EndOfFile = 10 15 | } 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/js/Enumerations/LegacyFreeBusyStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the legacy free/busy status associated with an appointment. 4 | */ 5 | export enum LegacyFreeBusyStatus { 6 | 7 | /** 8 | * The time slot associated with the appointment appears as free. 9 | */ 10 | Free = 0, 11 | 12 | /** 13 | * The time slot associated with the appointment appears as tentative. 14 | */ 15 | Tentative = 1, 16 | 17 | /** 18 | * The time slot associated with the appointment appears as busy. 19 | */ 20 | Busy = 2, 21 | 22 | /** 23 | * The time slot associated with the appointment appears as Out of Office. 24 | */ 25 | OOF = 3, 26 | 27 | /** 28 | * The time slot associated with the appointment appears as working else where. 29 | */ 30 | WorkingElsewhere = 4, 31 | 32 | /** 33 | * No free/busy status is associated with the appointment. 34 | */ 35 | NoData = 5 36 | } -------------------------------------------------------------------------------- /src/js/Enumerations/LobbyBypass.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Data.OnlineMeetingSettings is located 2 | 3 | /** 4 | * Online Meeting Lobby Bypass options. 5 | */ 6 | export enum LobbyBypass { 7 | 8 | /** 9 | * Disabled. 10 | */ 11 | Disabled = 0, 12 | 13 | /** 14 | * Enabled for gateway participants. 15 | */ 16 | EnabledForGatewayParticipants = 1 17 | } -------------------------------------------------------------------------------- /src/js/Enumerations/LocationSource.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Source of resolution. 4 | */ 5 | export enum LocationSource { 6 | 7 | /** 8 | * Unresolved 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * Resolved by external location services (such as Bing, Google, etc) 14 | */ 15 | LocationServices = 1, 16 | 17 | /** 18 | * Resolved by external phonebook services (such as Bing, Google, etc) 19 | */ 20 | PhonebookServices = 2, 21 | 22 | /** 23 | * Revolved by a GPS enabled device (such as cellphone) 24 | */ 25 | Device = 3, 26 | 27 | /** 28 | * Sourced from a contact card 29 | */ 30 | Contact = 4, 31 | 32 | /** 33 | * Sourced from a resource (such as a conference room) 34 | */ 35 | Resource = 5 36 | } -------------------------------------------------------------------------------- /src/js/Enumerations/LogicalOperator.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines a logical operator as used by search filter collections. 4 | */ 5 | export enum LogicalOperator { 6 | 7 | /** 8 | * The AND operator. 9 | */ 10 | And = 0, 11 | 12 | /** 13 | * The OR operator. 14 | */ 15 | Or = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MailboxSearchLocation.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the location for mailbox search. 4 | */ 5 | export enum MailboxSearchLocation { 6 | 7 | /** 8 | * Primary only (Exchange 2013 or later). 9 | */ 10 | PrimaryOnly = 0, 11 | 12 | /** 13 | * Archive only (Exchange 2013 or later). 14 | */ 15 | ArchiveOnly = 1, 16 | 17 | /** 18 | * Both Primary and Archive (Exchange 2013 or later). 19 | */ 20 | All = 2 21 | } 22 | 23 | import { ExchangeVersion } from "./ExchangeVersion" 24 | export module MailboxSearchLocation { 25 | 26 | /**RequiredServerVersionAttribute */ 27 | export function RequiredServerVersion(value: MailboxSearchLocation): ExchangeVersion { 28 | if (value <= 2) //<= MailboxSearchLocation.All 29 | return ExchangeVersion.Exchange2013; 30 | 31 | return ExchangeVersion.Exchange_Version_Not_Updated; 32 | } 33 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MailboxSearchScopeType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Enum MailboxSearchScopeType 4 | */ 5 | export enum MailboxSearchScopeType { 6 | 7 | /** 8 | * The legacy exchange DN 9 | */ 10 | LegacyExchangeDN = 0, 11 | 12 | /** 13 | * The public folder 14 | */ 15 | PublicFolder = 1, 16 | 17 | /** 18 | * The recipient 19 | */ 20 | Recipient = 2, 21 | 22 | /** 23 | * The mailbox GUID 24 | */ 25 | MailboxGuid = 3, 26 | 27 | /** 28 | * All public folders 29 | */ 30 | AllPublicFolders = 4, 31 | 32 | /** 33 | * All mailboxes 34 | */ 35 | AllMailboxes = 5, 36 | 37 | /** 38 | * The saved search id 39 | */ 40 | SavedSearchId = 6, 41 | 42 | /** 43 | * The auto detect 44 | */ 45 | AutoDetect = 7 46 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MapiTypeConverterTypeSystem.ts: -------------------------------------------------------------------------------- 1 | /** shim to store type of data in MapiTypeConverterMapEntry */ 2 | export enum MapiTypeConverterTypeSystem { 3 | boolean, 4 | string, 5 | number, 6 | DateTime, 7 | guid, 8 | byteArray 9 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MeetingAttendeeType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * The attendee is the organizer of the meeting. 4 | */ 5 | export enum MeetingAttendeeType { 6 | 7 | /** 8 | * The attendee is the organizer of the meeting. 9 | */ 10 | Organizer = 0, 11 | 12 | /** 13 | * The attendee is required. 14 | */ 15 | Required = 1, 16 | 17 | /** 18 | * The attendee is optional. 19 | */ 20 | Optional = 2, 21 | 22 | /** 23 | * The attendee is a room. 24 | */ 25 | Room = 3, 26 | 27 | /** 28 | * The attendee is a resource. 29 | */ 30 | Resource = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MeetingRequestType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of a meeting request. 4 | */ 5 | export enum MeetingRequestType { 6 | 7 | /** 8 | * Undefined meeting request type. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * The meeting request is an update to the original meeting. 14 | */ 15 | FullUpdate = 1, 16 | 17 | /** 18 | * The meeting request is an information update. 19 | */ 20 | InformationalUpdate = 2, 21 | 22 | /** 23 | * The meeting request is for a new meeting. 24 | */ 25 | NewMeetingRequest = 3, 26 | 27 | /** 28 | * The meeting request is outdated. 29 | */ 30 | Outdated = 4, 31 | 32 | /** 33 | * The meeting update is a silent update to an existing meeting. 34 | */ 35 | SilentUpdate = 5, 36 | 37 | /** 38 | * The meeting update was forwarded to a delegate, and this copy is informational. 39 | */ 40 | PrincipalWantsCopy = 6 41 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MeetingResponseType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the types of response given to a meeting request. 4 | */ 5 | export enum MeetingResponseType { 6 | 7 | /** 8 | * The response type is unknown. 9 | */ 10 | Unknown = 0, 11 | 12 | /** 13 | * There was no response. The authenticated is the organizer of the meeting. 14 | */ 15 | Organizer = 1, 16 | 17 | /** 18 | * The meeting was tentatively accepted. 19 | */ 20 | Tentative = 2, 21 | 22 | /** 23 | * The meeting was accepted. 24 | */ 25 | Accept = 3, 26 | 27 | /** 28 | * The meeting was declined. 29 | */ 30 | Decline = 4, 31 | 32 | /** 33 | * No response was received for the meeting. 34 | */ 35 | NoResponseReceived = 5 36 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MemberStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the status of group members. 4 | */ 5 | export enum MemberStatus { 6 | 7 | /** 8 | * The member is unrecognized. 9 | */ 10 | Unrecognized = 0, 11 | 12 | /** 13 | * The member is normal. 14 | */ 15 | Normal = 1, 16 | 17 | /** 18 | * The member is demoted. 19 | */ 20 | Demoted = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/MessageDisposition.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines how messages are disposed of in CreateItem and UpdateItem operations. 4 | */ 5 | export enum MessageDisposition { 6 | 7 | /** 8 | * Messages are saved but not sent. 9 | */ 10 | SaveOnly = 0, 11 | 12 | /** 13 | * Messages are sent and a copy is saved. 14 | */ 15 | SendAndSaveCopy = 1, 16 | 17 | /** 18 | * Messages are sent but no copy is saved. 19 | */ 20 | SendOnly = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/Month.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines months of the year. 4 | */ 5 | export enum Month { 6 | 7 | /** 8 | * January. 9 | */ 10 | January = 1, 11 | 12 | /** 13 | * February. 14 | */ 15 | February = 2, 16 | 17 | /** 18 | * March. 19 | */ 20 | March = 3, 21 | 22 | /** 23 | * April. 24 | */ 25 | April = 4, 26 | 27 | /** 28 | * May. 29 | */ 30 | May = 5, 31 | 32 | /** 33 | * June. 34 | */ 35 | June = 6, 36 | 37 | /** 38 | * July. 39 | */ 40 | July = 7, 41 | 42 | /** 43 | * August. 44 | */ 45 | August = 8, 46 | 47 | /** 48 | * September. 49 | */ 50 | September = 9, 51 | 52 | /** 53 | * October. 54 | */ 55 | October = 10, 56 | 57 | /** 58 | * November. 59 | */ 60 | November = 11, 61 | 62 | /** 63 | * December. 64 | */ 65 | December = 12 66 | } -------------------------------------------------------------------------------- /src/js/Enumerations/OffsetBasePoint.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the offset's base point in a paged view. 4 | */ 5 | export enum OffsetBasePoint { 6 | 7 | /** 8 | * The offset is from the beginning of the view. 9 | */ 10 | Beginning = 0, 11 | 12 | /** 13 | * The offset is from the end of the view. 14 | */ 15 | End = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/OnlineMeetingAccessLevel.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Data.OnlineMeetingSettings is located 2 | 3 | /** 4 | * Online Meeting Access Level options. 5 | */ 6 | export enum OnlineMeetingAccessLevel { 7 | 8 | /** 9 | * Locked. 10 | */ 11 | Locked = 0, 12 | 13 | /** 14 | * Invited. 15 | */ 16 | Invited = 1, 17 | 18 | /** 19 | * Internal. 20 | */ 21 | Internal = 2, 22 | 23 | /** 24 | * Everyone. 25 | */ 26 | Everyone = 3 27 | } -------------------------------------------------------------------------------- /src/js/Enumerations/OofExternalAudience.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the external audience of an Out of Office notification. 4 | */ 5 | export enum OofExternalAudience { 6 | 7 | /** 8 | * No external recipients should receive Out of Office notifications. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * Only recipients that are in the user's Contacts frolder should receive Out of Office notifications. 14 | */ 15 | Known = 1, 16 | 17 | /** 18 | * All recipients should receive Out of Office notifications. 19 | */ 20 | All = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/OofState.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines a user's Out of Office Assistant status. 4 | */ 5 | export enum OofState { 6 | 7 | /** 8 | * The assistant is diabled. 9 | */ 10 | Disabled = 0, 11 | 12 | /** 13 | * The assistant is enabled. 14 | */ 15 | Enabled = 1, 16 | 17 | /** 18 | * The assistant is scheduled. 19 | */ 20 | Scheduled = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/OutlookProtocolType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines supported Outlook protocls. 4 | */ 5 | export enum OutlookProtocolType { 6 | 7 | /** 8 | * The Remote Procedure Call (RPC) protocol. 9 | */ 10 | Rpc = 0, 11 | 12 | /** 13 | * The Remote Procedure Call (RPC) over HTTP protocol. 14 | */ 15 | RpcOverHttp = 1, 16 | 17 | /** 18 | * The Web protocol. 19 | */ 20 | Web = 2, 21 | 22 | /** 23 | * The protocol is unknown. 24 | */ 25 | Unknown = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PermissionScope.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the scope of a user's permission on a folders. 4 | */ 5 | export enum PermissionScope { 6 | 7 | /** 8 | * The user does not have the associated permission. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * The user has the associated permission on items that it owns. 14 | */ 15 | Owned = 1, 16 | 17 | /** 18 | * The user has the associated permission on all items. 19 | */ 20 | All = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PhoneCallState.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * The PhoneCallState enumeration 4 | */ 5 | export enum PhoneCallState { 6 | 7 | /** 8 | * Idle. 9 | */ 10 | Idle = 0, 11 | 12 | /** 13 | * Connecting. 14 | */ 15 | Connecting = 1, 16 | 17 | /** 18 | * Alerted. 19 | */ 20 | Alerted = 2, 21 | 22 | /** 23 | * Connected. 24 | */ 25 | Connected = 3, 26 | 27 | /** 28 | * Disconnected. 29 | */ 30 | Disconnected = 4, 31 | 32 | /** 33 | * Incoming. 34 | */ 35 | Incoming = 5, 36 | 37 | /** 38 | * Transferring. 39 | */ 40 | Transferring = 6, 41 | 42 | /** 43 | * Forwarding. 44 | */ 45 | Forwarding = 7 46 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PhysicalAddressIndex.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines a physical address index. 4 | */ 5 | export enum PhysicalAddressIndex { 6 | 7 | /** 8 | * None. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * The business address. 14 | */ 15 | Business = 1, 16 | 17 | /** 18 | * The home address. 19 | */ 20 | Home = 2, 21 | 22 | /** 23 | * The alternate address. 24 | */ 25 | Other = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PhysicalAddressKey.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines physical address entries for a contact. 4 | */ 5 | export enum PhysicalAddressKey { 6 | 7 | /** 8 | * The business address. 9 | */ 10 | Business = 0, 11 | 12 | /** 13 | * The home address. 14 | */ 15 | Home = 1, 16 | 17 | /** 18 | * An alternate address. 19 | */ 20 | Other = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/Presenters.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Data.OnlineMeetingSettings is located 2 | 3 | /** 4 | * Online Meeting Presenters options. 5 | */ 6 | export enum Presenters { 7 | 8 | /** 9 | * Disabled. 10 | */ 11 | Disabled = 0, 12 | 13 | /** 14 | * Internal. 15 | */ 16 | Internal = 1, 17 | 18 | /** 19 | * Everyone. 20 | */ 21 | Everyone = 2 22 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PreviewItemBaseShape.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Preview item base shape 4 | */ 5 | export enum PreviewItemBaseShape { 6 | 7 | /** 8 | * Default (all properties required for showing preview by default) 9 | */ 10 | Default = 0, 11 | 12 | /** 13 | * Compact (only a set of core properties) 14 | */ 15 | Compact = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PrivilegedLogonType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines the type of PrivilegedLogonType. 4 | */ 5 | export enum PrivilegedLogonType { 6 | 7 | /** 8 | * Logon as Admin 9 | */ 10 | Admin = 0, 11 | 12 | /** 13 | * Logon as SystemService 14 | */ 15 | SystemService = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PrivilegedUserIdBudgetType.ts: -------------------------------------------------------------------------------- 1 | //todo - move to file where class Microsoft.Exchange.WebServices.Dns.PrivilegedUserId is located 2 | 3 | /** 4 | * @internal Interactive, charge against a copy of target mailbox budget. 5 | */ 6 | export enum PrivilegedUserIdBudgetType { 7 | 8 | /** 9 | * Interactive, charge against a copy of target mailbox budget. 10 | */ 11 | Default = 0, 12 | 13 | /** 14 | * Running as background load 15 | */ 16 | RunningAsBackgroundLoad = 1, 17 | 18 | /** 19 | * Unthrottled budget. 20 | */ 21 | Unthrottled = 2 22 | } -------------------------------------------------------------------------------- /src/js/Enumerations/PropertyDefinitionFlags.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines how a complex property behaves. 4 | * 5 | * [Flags] 6 | */ 7 | export enum PropertyDefinitionFlags { 8 | 9 | /** 10 | * No specific behavior. 11 | */ 12 | None = 0, 13 | 14 | /** 15 | * The property is automatically instantiated when it is read. 16 | */ 17 | AutoInstantiateOnRead = 1, 18 | 19 | /** 20 | * The existing instance of the property is reusable. 21 | */ 22 | ReuseInstance = 2, 23 | 24 | /** 25 | * The property can be set. 26 | */ 27 | CanSet = 4, 28 | 29 | /** 30 | * The property can be updated. 31 | */ 32 | CanUpdate = 8, 33 | 34 | /** 35 | * The property can be deleted. 36 | */ 37 | CanDelete = 16, 38 | 39 | /** 40 | * The property can be searched. 41 | */ 42 | CanFind = 32, 43 | 44 | /** 45 | * The property must be loaded explicitly 46 | */ 47 | MustBeExplicitlyLoaded = 64, 48 | 49 | /** 50 | * Only meaningful for "collection" property. 51 | * With this flag, the item in the collection gets updated, instead of creating and adding new items to the collection. 52 | * Should be used together with the ReuseInstance flag. 53 | */ 54 | UpdateCollectionItems = 128 55 | } -------------------------------------------------------------------------------- /src/js/Enumerations/RenderingMode.ts: -------------------------------------------------------------------------------- 1 |  2 | /** 3 | * The rendering method. 4 | */ 5 | export enum RenderingMode { 6 | 7 | /** 8 | * XML 9 | */ 10 | Xml = 0, 11 | 12 | /** 13 | * Javascript Object Notation 14 | */ 15 | JSON = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ResolveNameSearchLocation.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the location where a ResolveName operation searches for contacts. 4 | */ 5 | export enum ResolveNameSearchLocation { 6 | 7 | /** 8 | * The name is resolved against the Global Address List. 9 | */ 10 | DirectoryOnly = 0, 11 | 12 | /** 13 | * The name is resolved against the Global Address List and then against the Contacts folder if no match was found. 14 | */ 15 | DirectoryThenContacts = 1, 16 | 17 | /** 18 | * The name is resolved against the Contacts folder. 19 | */ 20 | ContactsOnly = 2, 21 | 22 | /** 23 | * The name is resolved against the Contacts folder and then against the Global Address List if no match was found. 24 | */ 25 | ContactsThenDirectory = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ResponseMessageType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of a ResponseMessage object. 4 | */ 5 | export enum ResponseMessageType { 6 | 7 | /** 8 | * The ResponseMessage is a reply to the sender of a message. 9 | */ 10 | Reply = 0, 11 | 12 | /** 13 | * The ResponseMessage is a reply to the sender and all the recipients of a message. 14 | */ 15 | ReplyAll = 1, 16 | 17 | /** 18 | * The ResponseMessage is a forward. 19 | */ 20 | Forward = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/RetentionActionType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the action of a retention policy tag. 4 | */ 5 | export enum RetentionActionType { 6 | 7 | /** 8 | * Never tags (RetentionEnabled = false) do not have retention action in the FAI. 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * Expired items will be moved to the Deleted Items folder. 14 | */ 15 | MoveToDeletedItems = 1, 16 | 17 | /** 18 | * Expired items will be moved to the organizational folder specified in the ExpirationDestination field. 19 | */ 20 | MoveToFolder = 2, 21 | 22 | /** 23 | * Expired items will be soft deleted. 24 | */ 25 | DeleteAndAllowRecovery = 3, 26 | 27 | /** 28 | * Expired items will be hard deleted. 29 | */ 30 | PermanentlyDelete = 4, 31 | 32 | /** 33 | * Expired items will be tagged as expired. 34 | */ 35 | MarkAsPastRetentionLimit = 5, 36 | 37 | /** 38 | * Expired items will be moved to the archive. 39 | */ 40 | MoveToArchive = 6 41 | } -------------------------------------------------------------------------------- /src/js/Enumerations/RetentionType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the retention type. 4 | */ 5 | export enum RetentionType { 6 | 7 | /** 8 | * Delete retention. 9 | */ 10 | Delete = 0, 11 | 12 | /** 13 | * Archive retention. 14 | */ 15 | Archive = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SearchFolderTraversal.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the scope of a search folder. 4 | */ 5 | export enum SearchFolderTraversal { 6 | 7 | /** 8 | * Items belonging to the root folder are retrieved. 9 | */ 10 | Shallow = 0, 11 | 12 | /** 13 | * Items belonging to the root folder and its sub-folders are retrieved. 14 | */ 15 | Deep = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SearchPageDirection.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the page direction for mailbox search. 4 | */ 5 | export enum SearchPageDirection { 6 | 7 | /** 8 | * Navigate to next page. 9 | */ 10 | Next = 0, 11 | 12 | /** 13 | * Navigate to previous page. 14 | */ 15 | Previous = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SearchResultType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of search result. 4 | */ 5 | export enum SearchResultType { 6 | 7 | /** 8 | * Keyword statistics only. 9 | */ 10 | StatisticsOnly = 0, 11 | 12 | /** 13 | * Preview only. 14 | */ 15 | PreviewOnly = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SendCancellationsMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines how meeting cancellations should be sent to attendees when an appointment is deleted. 4 | */ 5 | export enum SendCancellationsMode { 6 | 7 | /** 8 | * No meeting cancellation is sent. 9 | */ 10 | SendToNone = 0, 11 | 12 | /** 13 | * Meeting cancellations are sent to all attendees. 14 | */ 15 | SendOnlyToAll = 1, 16 | 17 | /** 18 | * Meeting cancellations are sent to all attendees and a copy of the cancellation message is saved in the organizer's Sent Items folder. 19 | */ 20 | SendToAllAndSaveCopy = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SendInvitationsMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines if/how meeting invitations are sent. 4 | */ 5 | export enum SendInvitationsMode { 6 | 7 | /** 8 | * No meeting invitation is sent. 9 | */ 10 | SendToNone = 0, 11 | 12 | /** 13 | * Meeting invitations are sent to all attendees. 14 | */ 15 | SendOnlyToAll = 1, 16 | 17 | /** 18 | * Meeting invitations are sent to all attendees and a copy of the invitation message is saved. 19 | */ 20 | SendToAllAndSaveCopy = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SendInvitationsOrCancellationsMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines if/how meeting invitations or cancellations should be sent to attendees when an appointment is updated. 4 | */ 5 | export enum SendInvitationsOrCancellationsMode { 6 | 7 | /** 8 | * No meeting invitation/cancellation is sent. 9 | */ 10 | SendToNone = 0, 11 | 12 | /** 13 | * Meeting invitations/cancellations are sent to all attendees. 14 | */ 15 | SendOnlyToAll = 1, 16 | 17 | /** 18 | * Meeting invitations/cancellations are sent only to attendees that have been added or modified. 19 | */ 20 | SendOnlyToChanged = 2, 21 | 22 | /** 23 | * Meeting invitations/cancellations are sent to all attendees and a copy is saved in the organizer's Sent Items folder. 24 | */ 25 | SendToAllAndSaveCopy = 3, 26 | 27 | /** 28 | * Meeting invitations/cancellations are sent only to attendees that have been added or modified and a copy is saved in the organizer's Sent Items folder. 29 | */ 30 | SendToChangedAndSaveCopy = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SendPrompt.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * The values indicate the types of item icons to display. 4 | */ 5 | export enum SendPrompt { 6 | 7 | /** 8 | * None 9 | */ 10 | None = 0, 11 | 12 | /** 13 | * Send 14 | */ 15 | Send = 1, 16 | 17 | /** 18 | * VotingOption 19 | */ 20 | VotingOption = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/Sensitivity.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the sensitivity of an item. 4 | */ 5 | export enum Sensitivity { 6 | 7 | /** 8 | * The item has a normal sensitivity. 9 | */ 10 | Normal = 0, 11 | 12 | /** 13 | * The item is personal. 14 | */ 15 | Personal = 1, 16 | 17 | /** 18 | * The item is private. 19 | */ 20 | Private = 2, 21 | 22 | /** 23 | * The item is confidential. 24 | */ 25 | Confidential = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ServiceErrorHandling.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines the type of error handling used for service method calls. 4 | */ 5 | export enum ServiceErrorHandling { 6 | 7 | /** 8 | * Service method should return the error(s). 9 | */ 10 | ReturnErrors = 0, 11 | 12 | /** 13 | * Service method should throw exception when error occurs. 14 | */ 15 | ThrowOnError = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ServiceObjectType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of a service object. 4 | */ 5 | export enum ServiceObjectType { 6 | 7 | /** 8 | * The object is a folder. 9 | */ 10 | Folder = 0, 11 | 12 | /** 13 | * The object is an item. 14 | */ 15 | Item = 1, 16 | 17 | /** 18 | * Data represents a conversation 19 | */ 20 | Conversation = 2, 21 | 22 | /** 23 | * Data represents a persona 24 | */ 25 | Persona = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/ServiceResult.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the result of a call to an EWS method. 4 | * Values in this enumeration have to be ordered from lowest to highest severity. 5 | */ 6 | export enum ServiceResult { 7 | 8 | /** 9 | * The call was successful 10 | */ 11 | Success = 0, 12 | 13 | /** 14 | * The call triggered at least one warning 15 | */ 16 | Warning = 1, 17 | 18 | /** 19 | * The call triggered at least one error 20 | */ 21 | Error = 2 22 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SetClientExtensionActionId.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the type of SetClientExtensionActionId. 4 | */ 5 | export enum SetClientExtensionActionId { 6 | 7 | /** 8 | * Install 9 | */ 10 | Install = 0, 11 | 12 | /** 13 | * Uninstall 14 | */ 15 | Uninstall = 1, 16 | 17 | /** 18 | * Configure 19 | */ 20 | Configure = 2 21 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SortDirection.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines a sort direction 4 | */ 5 | export enum SortDirection { 6 | 7 | /** 8 | * The sort is performed in ascending order. 9 | */ 10 | Ascending = 0, 11 | 12 | /** 13 | * The sort is performed in descending order. 14 | */ 15 | Descending = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/StandardUser.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines a standard delegate user. 4 | */ 5 | export enum StandardUser { 6 | 7 | /** 8 | * The Default delegate user, used to define default delegation permissions. 9 | */ 10 | Default = 0, 11 | 12 | /** 13 | * The Anonymous delegate user, used to define delegate permissions for unauthenticated users. 14 | */ 15 | Anonymous = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SuggestionQuality.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the quality of an availability suggestion. 4 | */ 5 | export enum SuggestionQuality { 6 | 7 | /** 8 | * The suggestion is excellent. 9 | */ 10 | Excellent = 0, 11 | 12 | /** 13 | * The suggestion is good. 14 | */ 15 | Good = 1, 16 | 17 | /** 18 | * The suggestion is fair. 19 | */ 20 | Fair = 2, 21 | 22 | /** 23 | * The suggestion is poor. 24 | */ 25 | Poor = 3 26 | } -------------------------------------------------------------------------------- /src/js/Enumerations/SyncFolderItemsScope.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Determines items to be included in a SyncFolderItems response. 4 | */ 5 | export enum SyncFolderItemsScope { 6 | 7 | /** 8 | * Include only normal items in the response. 9 | */ 10 | NormalItems = 0, 11 | 12 | /** 13 | * Include normal and associated items in the response. 14 | */ 15 | NormalAndAssociatedItems = 1 16 | } -------------------------------------------------------------------------------- /src/js/Enumerations/TaskDelegationState.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * This maps to the bogus TaskDelegationState in the EWS schema. 4 | * The schema enum has 6 values, but EWS should never return anything but values between 0 and 3, so we should be safe without mappings for EWS's Declined and Max values 5 | */ 6 | export enum TaskDelegationState { 7 | 8 | /** 9 | * The task is not delegated 10 | */ 11 | NoDelegation = 0, // Maps to NoMatch 12 | 13 | /** 14 | * The task's delegation state is unknown. 15 | */ 16 | Unknown = 1, // Maps to OwnNew 17 | 18 | /** 19 | * The task was delegated and the delegation was accepted. 20 | */ 21 | Accepted = 2, // Maps to Owned 22 | 23 | /** 24 | * The task was delegated but the delegation was declined. 25 | */ 26 | Declined = 3 // Maps to Accepted 27 | 28 | // The original Declined value has no mapping 29 | // The original Max value has no mapping 30 | } -------------------------------------------------------------------------------- /src/js/Enumerations/TaskMode.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the modes of a Task. 4 | */ 5 | export enum TaskMode { 6 | 7 | /** 8 | * The task is normal 9 | */ 10 | Normal = 0, 11 | 12 | /** 13 | * The task is a task assignment request 14 | */ 15 | Request = 1, 16 | 17 | /** 18 | * The task assignment request was accepted 19 | */ 20 | RequestAccepted = 2, 21 | 22 | /** 23 | * The task assignment request was declined 24 | */ 25 | RequestDeclined = 3, 26 | 27 | /** 28 | * The task has been updated 29 | */ 30 | Update = 4, 31 | 32 | /** 33 | * The task is self delegated 34 | */ 35 | SelfDelegated = 5 36 | } -------------------------------------------------------------------------------- /src/js/Enumerations/TaskStatus.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Defines the execution status of a task. 4 | */ 5 | export enum TaskStatus { 6 | 7 | /** 8 | * The execution of the task is not started. 9 | */ 10 | NotStarted = 0, 11 | 12 | /** 13 | * The execution of the task is in progress. 14 | */ 15 | InProgress = 1, 16 | 17 | /** 18 | * The execution of the task is completed. 19 | */ 20 | Completed = 2, 21 | 22 | /** 23 | * The execution of the task is waiting on others. 24 | */ 25 | WaitingOnOthers = 3, 26 | 27 | /** 28 | * The execution of the task is deferred. 29 | */ 30 | Deferred = 4 31 | } -------------------------------------------------------------------------------- /src/js/Enumerations/TeamMailboxLifecycleState.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * TeamMailbox lifecycle state 4 | */ 5 | export enum TeamMailboxLifecycleState { 6 | 7 | /** 8 | * Active 9 | */ 10 | Active = 0, 11 | 12 | /** 13 | * Closed 14 | */ 15 | Closed = 1, 16 | 17 | /** 18 | * Unlinked 19 | */ 20 | Unlinked = 2, 21 | 22 | /** 23 | * PendingDelete 24 | */ 25 | PendingDelete = 3 26 | } 27 | 28 | export module TeamMailboxLifecycleState { 29 | 30 | /**EwsEnumAttribute */ 31 | export function FromEwsEnumString(value: string): TeamMailboxLifecycleState { 32 | return TeamMailboxLifecycleState[value]; 33 | } 34 | 35 | /**EwsEnumAttribute */ 36 | export function ToEwsEnumString(value: TeamMailboxLifecycleState): string { 37 | return TeamMailboxLifecycleState[value]; 38 | } 39 | } -------------------------------------------------------------------------------- /src/js/Enumerations/UserConfigurationDictionaryObjectType.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Identifies the user configuration dictionary key and value types. 4 | */ 5 | export enum UserConfigurationDictionaryObjectType { 6 | 7 | /** 8 | * DateTime type. 9 | */ 10 | DateTime = 0, 11 | 12 | /** 13 | * Boolean type. 14 | */ 15 | Boolean = 1, 16 | 17 | /** 18 | * Byte type. 19 | */ 20 | Byte = 2, 21 | 22 | /** 23 | * String type. 24 | */ 25 | String = 3, 26 | 27 | /** 28 | * 32-bit integer type. 29 | */ 30 | Integer32 = 4, 31 | 32 | /** 33 | * 32-bit unsigned integer type. 34 | */ 35 | UnsignedInteger32 = 5, 36 | 37 | /** 38 | * 64-bit integer type. 39 | */ 40 | Integer64 = 6, 41 | 42 | /** 43 | * 64-bit unsigned integer type. 44 | */ 45 | UnsignedInteger64 = 7, 46 | 47 | /** 48 | * String array type. 49 | */ 50 | StringArray = 8, 51 | 52 | /** 53 | * Byte array type 54 | */ 55 | ByteArray = 9 56 | } -------------------------------------------------------------------------------- /src/js/Enumerations/UserConfigurationProperties.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Identifies the user configuration properties to retrieve. 4 | * 5 | * [Flags] 6 | */ 7 | export enum UserConfigurationProperties { 8 | 9 | /** 10 | * Retrieve the Id property. 11 | */ 12 | Id = 1, 13 | 14 | /** 15 | * Retrieve the Dictionary property. 16 | */ 17 | Dictionary = 2, 18 | 19 | /** 20 | * Retrieve the XmlData property. 21 | */ 22 | XmlData = 4, 23 | 24 | /** 25 | * Retrieve the BinaryData property. 26 | */ 27 | BinaryData = 8, 28 | 29 | /** 30 | * Retrieve all properties. 31 | */ 32 | All = UserConfigurationProperties.Id | UserConfigurationProperties.Dictionary | UserConfigurationProperties.XmlData | UserConfigurationProperties.BinaryData 33 | } -------------------------------------------------------------------------------- /src/js/Enumerations/XmlNamespace.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @internal Defines the namespaces as used by the EwsXmlReader, EwsServiceXmlReader, and EwsServiceXmlWriter classes. 4 | */ 5 | export enum XmlNamespace { 6 | 7 | /** 8 | * The namespace is not specified. 9 | */ 10 | NotSpecified = 0, 11 | 12 | /** 13 | * The EWS Messages namespace. 14 | */ 15 | Messages = 1, 16 | 17 | /** 18 | * The EWS Types namespace. 19 | */ 20 | Types = 2, 21 | 22 | /** 23 | * The EWS Errors namespace. 24 | */ 25 | Errors = 3, 26 | 27 | /** 28 | * The SOAP 1.1 namespace. 29 | */ 30 | Soap = 4, 31 | 32 | /** 33 | * The SOAP 1.2 namespace. 34 | */ 35 | Soap12 = 5, 36 | 37 | /** 38 | * XmlSchema-Instance namespace. 39 | */ 40 | XmlSchemaInstance = 6, 41 | 42 | /** 43 | * The Passport SOAP services SOAP fault namespace. 44 | */ 45 | PassportSoapFault = 7, 46 | 47 | /** 48 | * The WS-Trust February 2005 namespace. 49 | */ 50 | WSTrustFebruary2005 = 8, 51 | 52 | /** 53 | * The WS Addressing 1.0 namespace. 54 | */ 55 | WSAddressing = 9, 56 | 57 | /** 58 | * The Autodiscover SOAP service namespace. 59 | */ 60 | Autodiscover = 10 61 | } -------------------------------------------------------------------------------- /src/js/Exceptions/AccountIsLockedException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {Uri} from "../Uri"; 3 | 4 | import {ServiceRemoteException} from "./ServiceRemoteException"; 5 | /** 6 | * Represents an error that occurs when the account that is being accessed is locked and requires user interaction to be unlocked. 7 | */ 8 | export class AccountIsLockedException extends ServiceRemoteException { 9 | 10 | /** 11 | * Gets the URL of a web page where the user can navigate to unlock his or her account. 12 | * 13 | * internal set 14 | */ 15 | AccountUnlockUrl: Uri = null; 16 | 17 | /** 18 | * Initializes a new instance of the **AccountIsLockedException** class. 19 | * 20 | * @param {string} message Error message text. 21 | * @param {Uri} accountUnlockUrl URL for client to visit to unlock account. 22 | * @param {Exception} innerException Inner exception. 23 | */ 24 | constructor(message: string, accountUnlockUrl: Uri, innerException: Exception) { 25 | super(message, innerException); 26 | this.AccountUnlockUrl = accountUnlockUrl; 27 | } 28 | } -------------------------------------------------------------------------------- /src/js/Exceptions/AutodiscoverLocalException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {ServiceLocalException} from "./ServiceLocalException"; 3 | export class AutodiscoverLocalException extends ServiceLocalException { 4 | 5 | /** 6 | * Initializes a new instance of **AutodiscoverLocalException**. 7 | */ 8 | constructor(); 9 | /** 10 | * Initializes a new instance of **AutodiscoverLocalException**. 11 | * 12 | * @param {string} message The message that describes the error. 13 | */ 14 | constructor(message: string); 15 | /** 16 | * Initializes a new instance of **AutodiscoverLocalException**. 17 | * 18 | * @param {string} message The message that describes the error. 19 | * @param {Exception} innerException The exception that is the cause of the current exception. 20 | */ 21 | constructor(message: string, innerException: Exception); 22 | constructor(message: string = null, innerException: Exception = null) { 23 | super(message, innerException); 24 | } 25 | } -------------------------------------------------------------------------------- /src/js/Exceptions/AutodiscoverResponseException.ts: -------------------------------------------------------------------------------- 1 | import { AutodiscoverErrorCode } from "../Enumerations/AutodiscoverErrorCode"; 2 | import { ServiceRemoteException } from "./ServiceRemoteException"; 3 | 4 | /** 5 | * Represents an exception from an autodiscover error response. 6 | * 7 | * @extends {ServiceRemoteException} 8 | */ 9 | export class AutodiscoverResponseException extends ServiceRemoteException { 10 | /** 11 | * Error code when Autodiscover service operation failed remotely. 12 | */ 13 | private errorCode: AutodiscoverErrorCode; 14 | 15 | /** 16 | * Gets the ErrorCode for the exception. 17 | */ 18 | get ErrorCode(): AutodiscoverErrorCode { 19 | return this.errorCode; 20 | } 21 | 22 | /** 23 | * @internal Initializes a new instance of the **AutodiscoverResponseException** class. 24 | * 25 | * @param {AutodiscoverErrorCode} errorCode The error code. 26 | * @param {string} message The message. 27 | */ 28 | constructor(errorCode: AutodiscoverErrorCode, message: string) { 29 | super(message); 30 | this.errorCode = errorCode; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/js/Exceptions/CreateAttachmentException.ts: -------------------------------------------------------------------------------- 1 | import {CreateAttachmentResponse} from "../Core/Responses/CreateAttachmentResponse"; 2 | import {Exception} from "./Exception"; 3 | import {BatchServiceResponseException} from "./BatchServiceResponseException"; 4 | export class CreateAttachmentException extends BatchServiceResponseException { 5 | } -------------------------------------------------------------------------------- /src/js/Exceptions/DnsException.ts: -------------------------------------------------------------------------------- 1 | //class DnsException extends System.ComponentModel.Win32Exception { 2 | //} 3 | -------------------------------------------------------------------------------- /src/js/Exceptions/InvalidOperationException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | export class InvalidOperationException extends Exception { 3 | ParamName: string = null; 4 | constructor(); 5 | constructor(message: string); 6 | constructor(message: string, innerException: Exception); 7 | constructor(message: string = null, innerException: Exception = null) { 8 | super(message, innerException); 9 | } 10 | } -------------------------------------------------------------------------------- /src/js/Exceptions/JsonDeserializationNotImplementedException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {ServiceLocalException} from "./ServiceLocalException"; 3 | export class JsonDeserializationNotImplementedException extends ServiceLocalException { 4 | } -------------------------------------------------------------------------------- /src/js/Exceptions/JsonSerializationNotImplementedException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | export class JsonSerializationNotImplementedException extends Exception { //System.Exception { 3 | } -------------------------------------------------------------------------------- /src/js/Exceptions/NotSupportedException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | export class NotSupportedException extends Exception { 3 | ParamName: string = null; 4 | constructor(); 5 | constructor(message: string); 6 | constructor(message: string, innerException: Exception); 7 | constructor(message: string = null, innerException: Exception = null) { 8 | super(message, innerException); 9 | } 10 | } -------------------------------------------------------------------------------- /src/js/Exceptions/PropertyException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {ServiceLocalException} from "./ServiceLocalException"; 3 | export class PropertyException extends ServiceLocalException { 4 | Name: string; 5 | //private name: string; 6 | constructor(message: string, name: string = null, innerException: Exception = null) { 7 | super(message, innerException); 8 | this.Name = name; 9 | } 10 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServerBusyException.ts: -------------------------------------------------------------------------------- 1 |  2 | import {Exception} from "./Exception"; 3 | import {ServiceResponseException} from "./ServiceResponseException"; 4 | export class ServerBusyException extends ServiceResponseException { 5 | private static BackOffMillisecondsKey: string = "BackOffMilliseconds"; 6 | BackOffMilliseconds: number; 7 | private backOffMilliseconds: number; 8 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceJsonDeserializationException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {ServiceLocalException} from "./ServiceLocalException"; 3 | export class ServiceJsonDeserializationException extends ServiceLocalException { 4 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceLocalException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | /** 3 | * Represents an error that occurs when a service operation fails locally (e.g. validation error). 4 | */ 5 | export class ServiceLocalException extends Exception {// extends System.Exception { 6 | 7 | /** 8 | * Initializes a new instance of **ServiceVersionException**. 9 | */ 10 | constructor(); 11 | /** 12 | * Initializes a new instance of **ServiceVersionException**. 13 | * 14 | * @param {string} message The message that describes the error. 15 | */ 16 | constructor(message: string); 17 | /** 18 | * Initializes a new instance of **ServiceVersionException**. 19 | * 20 | * @param {string} message The message that describes the error. 21 | * @param {Exception} innerException The exception that is the cause of the current exception. 22 | */ 23 | constructor(message: string, innerException: Exception); 24 | constructor(message: string = null, innerException: Exception = null) { 25 | super(message, innerException); 26 | } 27 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceObjectPropertyException.ts: -------------------------------------------------------------------------------- 1 | import {PropertyDefinitionBase} from "../PropertyDefinitions/PropertyDefinitionBase"; 2 | import {Exception} from "./Exception"; 3 | import {PropertyException} from "./PropertyException"; 4 | export class ServiceObjectPropertyException extends PropertyException { 5 | PropertyDefinition: PropertyDefinitionBase; 6 | //private propertyDefinition: PropertyDefinitionBase; 7 | constructor(message: string, propertyDefinition: PropertyDefinitionBase, innerException?: Exception) { 8 | super(message, propertyDefinition.GetPrintableName(), innerException); 9 | this.PropertyDefinition = propertyDefinition; 10 | } 11 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceRemoteException.ts: -------------------------------------------------------------------------------- 1 | import { Exception } from "./Exception"; 2 | /** 3 | * Represents an error that occurs when a service operation fails remotely. 4 | */ 5 | export class ServiceRemoteException extends Exception { 6 | /** 7 | * ServiceRemoteException Constructor. 8 | */ 9 | constructor(); 10 | /** 11 | * ServiceRemoteException Constructor. 12 | * 13 | * @param {string} message Error message text. 14 | */ 15 | constructor(message: string); 16 | /** 17 | * ServiceRemoteException Constructor. 18 | * 19 | * @param {string} message Error message text. 20 | * @param {Exception} innerException Inner exception. 21 | */ 22 | constructor(message: string, innerException: Exception); 23 | constructor(message: string = null, innerException: Exception = null) { 24 | super(message, innerException); 25 | } 26 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceRequestException.ts: -------------------------------------------------------------------------------- 1 | import {ServiceRemoteException} from "./ServiceRemoteException"; 2 | export class ServiceRequestException extends ServiceRemoteException { 3 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceRequestUnauthorizedException.ts: -------------------------------------------------------------------------------- 1 | import {ServiceRequestException} from "./ServiceRequestException"; 2 | export class ServiceRequestUnauthorizedException extends ServiceRequestException { 3 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceValidationException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | 3 | import {ServiceLocalException} from "./ServiceLocalException"; 4 | /** 5 | * Represents an error that occurs when a validation check fails. 6 | * 7 | * @sealed 8 | */ 9 | export class ServiceValidationException extends ServiceLocalException { 10 | 11 | /** 12 | * Initializes a new instance of **ServiceValidationException**. 13 | */ 14 | constructor(); 15 | /** 16 | * Initializes a new instance of **ServiceValidationException**. 17 | * 18 | * @param {string} message The message that describes the error. 19 | */ 20 | constructor(message: string); 21 | /** 22 | * Initializes a new instance of **ServiceValidationException**. 23 | * 24 | * @param {string} message The message that describes the error. 25 | * @param {Exception} innerException The exception that is the cause of the current exception. 26 | */ 27 | constructor(message: string, innerException: Exception); 28 | constructor(message: string = null, innerException: Exception = null) { 29 | super(message, innerException); 30 | } 31 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceVersionException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | 3 | import {ServiceLocalException} from "./ServiceLocalException"; 4 | /** 5 | * Represents an error that occurs when a request cannot be handled due to a service version mismatch. 6 | * 7 | * @sealed 8 | */ 9 | export class ServiceVersionException extends ServiceLocalException { 10 | 11 | /** 12 | * Initializes a new instance of **ServiceVersionException**. 13 | */ 14 | constructor(); 15 | /** 16 | * Initializes a new instance of **ServiceVersionException**. 17 | * 18 | * @param {string} message The message that describes the error. 19 | */ 20 | constructor(message: string); 21 | /** 22 | * Initializes a new instance of **ServiceVersionException**. 23 | * 24 | * @param {string} message The message that describes the error. 25 | * @param {Exception} innerException The exception that is the cause of the current exception. 26 | */ 27 | constructor(message: string, innerException: Exception); 28 | constructor(message: string = null, innerException: Exception = null) { 29 | super(message, innerException); 30 | } 31 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceXmlDeserializationException.ts: -------------------------------------------------------------------------------- 1 |  2 | import {Exception} from "./Exception"; 3 | import {ServiceLocalException} from "./ServiceLocalException"; 4 | export class ServiceXmlDeserializationException extends ServiceLocalException { 5 | } -------------------------------------------------------------------------------- /src/js/Exceptions/ServiceXmlSerializationException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {ServiceLocalException} from "./ServiceLocalException"; 3 | export class ServiceXmlSerializationException extends ServiceLocalException { 4 | 5 | /** 6 | * Initializes a new instance of **ServiceXmlSerializationException**. 7 | */ 8 | constructor(); 9 | /** 10 | * Initializes a new instance of **ServiceXmlSerializationException**. 11 | * 12 | * @param {string} message The message that describes the error. 13 | */ 14 | constructor(message: string); 15 | /** 16 | * Initializes a new instance of **ServiceXmlSerializationException**. 17 | * 18 | * @param {string} message The message that describes the error. 19 | * @param {Exception} innerException The exception that is the cause of the current exception. 20 | */ 21 | constructor(message: string, innerException: Exception); 22 | constructor(message: string = null, innerException: Exception = null) { 23 | super(message, innerException); 24 | } 25 | } -------------------------------------------------------------------------------- /src/js/Exceptions/TimeZoneConversionException.ts: -------------------------------------------------------------------------------- 1 | import {Exception} from "./Exception"; 2 | import {ServiceLocalException} from "./ServiceLocalException"; 3 | export class TimeZoneConversionException extends ServiceLocalException { 4 | } -------------------------------------------------------------------------------- /src/js/Interfaces.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IXHROptions { 3 | type?: string; 4 | url: string; 5 | user?: string; 6 | password?: string; 7 | headers?: any; 8 | data?: any; 9 | responseType?: string; 10 | allowRedirect?: boolean; 11 | customRequestInitializer?: (request: XMLHttpRequest) => void; 12 | } 13 | 14 | export interface IXHRProgress { 15 | type: 'data' | 'header' | 'end' | 'error' 16 | data?: string; 17 | chunk?: string; 18 | progress?: number; 19 | done?: boolean; 20 | headers?: any; 21 | originalHeaders?: any; 22 | error?: any; 23 | } 24 | 25 | export interface IXHRApi { 26 | xhr(xhroptions: IXHROptions, progressDelegate?: (progressData: IXHRProgress) => void): Promise; 27 | xhrStream(xhroptions: IXHROptions, progressDelegate: (progressData: IXHRProgress) => void): Promise; 28 | disconnect(): void; 29 | apiName?: string; 30 | } -------------------------------------------------------------------------------- /src/js/Interfaces/ICalendarActionProvider.ts: -------------------------------------------------------------------------------- 1 | import {CalendarActionResults} from "../Misc/CalendarActionResults"; 2 | import {AcceptMeetingInvitationMessage} from "../Core/ServiceObjects/ResponseObjects/AcceptMeetingInvitationMessage"; 3 | import {DeclineMeetingInvitationMessage} from "../Core/ServiceObjects/ResponseObjects/DeclineMeetingInvitationMessage"; 4 | 5 | export interface ICalendarActionProvider { 6 | Accept(sendResponse: boolean): Promise; 7 | AcceptTentatively(sendResponse: boolean): Promise; 8 | CreateAcceptMessage(tentative: boolean): AcceptMeetingInvitationMessage; 9 | CreateDeclineMessage(): DeclineMeetingInvitationMessage; 10 | Decline(sendResponse: boolean): Promise; 11 | } -------------------------------------------------------------------------------- /src/js/Interfaces/ICustomXmlUpdateSerializer.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | import {ServiceObject} from "../Core/ServiceObjects/ServiceObject"; 3 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 4 | import {PropertyDefinition} from "../PropertyDefinitions/PropertyDefinition"; 5 | export interface ICustomUpdateSerializer { 6 | //WriteDeleteUpdateToJson(service: ExchangeService, ewsObject: ServiceObject, updates: /*System.Collections.Generic.List*/any): boolean; 7 | /** @internal */ 8 | WriteDeleteUpdateToXml(writer: EwsServiceXmlWriter, ewsObject: ServiceObject): boolean; 9 | //WriteSetUpdateToJson(service: ExchangeService, ewsObject: ServiceObject, propertyDefinition: PropertyDefinition, updates: /*System.Collections.Generic.List*/any): boolean; 10 | /** @internal */ 11 | WriteSetUpdateToXml(writer: EwsServiceXmlWriter, ewsObject: ServiceObject, propertyDefinition: PropertyDefinition): boolean; 12 | } -------------------------------------------------------------------------------- /src/js/Interfaces/IEnumerable.ts: -------------------------------------------------------------------------------- 1 | export interface IEnumerable { 2 | GetEnumerator(): Array 3 | } -------------------------------------------------------------------------------- /src/js/Interfaces/IEwsHttpWebRequest.ts: -------------------------------------------------------------------------------- 1 |  import {IEwsHttpWebResponse} from "./IEwsHttpWebResponse"; 2 | 3 | /** @internal */ 4 | export interface IEwsHttpWebRequest { 5 | Accept: string; 6 | AllowAutoRedirect: boolean; 7 | ClientCertificates: any /*System.Security.Cryptography.X509Certificates.X509CertificateCollection*/; 8 | ContentType: string; 9 | CookieContainer: any /*System.Net.CookieContainer*/; 10 | Credentials: any /*System.Net.ICredentials*/; 11 | Headers: any /*System.Net.WebHeaderCollection*/; 12 | Method: string; 13 | PreAuthenticate: boolean; 14 | Proxy: any /*System.Net.IWebProxy*/; 15 | RequestUri: string /*Uri*/; 16 | Timeout: number; 17 | UseDefaultCredentials: boolean; 18 | UserAgent: string; 19 | KeepAlive: boolean; 20 | ConnectionGroupName: string; 21 | Abort(): void; 22 | BeginGetRequestStream(callback: any /*System.AsyncCallback*/, state: any): any /*System.IAsyncResult*/; 23 | BeginGetResponse(callback: any /*System.AsyncCallback*/, state: any): any /*System.IAsyncResult*/; 24 | EndGetRequestStream(asyncResult: any /*System.IAsyncResult*/): any /*System.IO.Stream*/; 25 | EndGetResponse(asyncResult: any /*System.IAsyncResult*/): IEwsHttpWebResponse; 26 | GetRequestStream(): any /*System.IO.Stream*/; 27 | GetResponse(): IEwsHttpWebResponse; 28 | } 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/js/Interfaces/IEwsHttpWebRequestFactory.ts: -------------------------------------------------------------------------------- 1 | import { IEwsHttpWebResponse } from "./IEwsHttpWebResponse"; 2 | import { IEwsHttpWebRequest } from "./IEwsHttpWebRequest"; 3 | 4 | /** @internal */ 5 | export interface IEwsHttpWebRequestFactory { 6 | CreateExceptionResponse(exception: any /*System.Net.WebException*/): IEwsHttpWebResponse; 7 | CreateRequest(uri: string /*Uri*/): IEwsHttpWebRequest; 8 | } 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/js/Interfaces/IEwsHttpWebResponse.ts: -------------------------------------------------------------------------------- 1 | import { HttpStatusCode } from "../../lib/HttpStatusCode"; 2 | 3 | /** @internal */ 4 | export interface IEwsHttpWebResponse { 5 | ContentEncoding: string; 6 | ContentType: string; 7 | Headers: any /*System.Net.WebHeaderCollection*/; 8 | ResponseUri: string /*Uri*/; 9 | StatusCode: HttpStatusCode /*System.Net.HttpStatusCode*/; 10 | StatusDescription: string; 11 | ProtocolVersion: any /*System.Version*/; 12 | Close(): void; 13 | GetResponseStream(): any /*System.IO.Stream*/; 14 | } 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/js/Interfaces/IFileAttachmentContentHandler.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IFileAttachmentContentHandler { 3 | GetOutputStream(attachmentId: string): any /*System.IO.Stream*/; 4 | } 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/js/Interfaces/IJSonSerializable.ts: -------------------------------------------------------------------------------- 1 | import { ExchangeService } from "../Core/ExchangeService"; 2 | 3 | export interface IJsonSerializable { 4 | ToJson(service: ExchangeService): any; 5 | } 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/js/Interfaces/IJsonCollectionDeserializer.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | 3 | export interface IJsonCollectionDeserializer { 4 | CreateFromJsonCollection(jsonCollection: any[], service: ExchangeService): void; 5 | UpdateFromJsonCollection(jsonCollection: any[], service: ExchangeService): void; 6 | } 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/js/Interfaces/IOutParam.ts: -------------------------------------------------------------------------------- 1 | export interface IOutParam { 2 | outValue: T; 3 | exception?: any; 4 | success?: boolean; 5 | } -------------------------------------------------------------------------------- /src/js/Interfaces/IOwnedProperty.ts: -------------------------------------------------------------------------------- 1 | import {ServiceObject} from "../Core/ServiceObjects/ServiceObject"; 2 | export interface IOwnedProperty { 3 | Owner: ServiceObject; 4 | } 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/js/Interfaces/IRefParam.ts: -------------------------------------------------------------------------------- 1 | export interface IRefParam { 2 | getValue: () => T; 3 | //refGet:()=>T; 4 | setValue?: (value: T) => void; 5 | } 6 | 7 | -------------------------------------------------------------------------------- /src/js/Interfaces/ISearchStringProvider.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface ISearchStringProvider { 3 | GetSearchString(): string; 4 | } 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/js/Interfaces/ISelfValidate.ts: -------------------------------------------------------------------------------- 1 | export interface ISelfValidate { 2 | Validate(): any; 3 | } -------------------------------------------------------------------------------- /src/js/Interfaces/ITraceListener.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * ITraceListener handles message tracing. 3 | */ 4 | export interface ITraceListener { 5 | /** 6 | * Handles a trace message 7 | * 8 | * @param {string} traceType Type of trace message. 9 | * @param {string} traceMessage The trace message. 10 | */ 11 | Trace(traceType: string, traceMessage: string): void; 12 | } 13 | -------------------------------------------------------------------------------- /src/js/MailboxSearch/ExtendedAttribute.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Class ExtendedAttribute 4 | * 5 | * @sealed 6 | */ 7 | export class ExtendedAttribute { 8 | 9 | /** 10 | * Gets or sets the name. 11 | * 12 | * @value The name. 13 | */ 14 | Name: string = null; 15 | 16 | /** 17 | * Gets or sets the value. 18 | * 19 | * @value The value. 20 | */ 21 | Value: string = null; 22 | 23 | /** 24 | * Initializes a new instance of the **ExtendedAttribute** class. 25 | */ 26 | constructor(); 27 | /** 28 | * Initializes a new instance of the **ExtendedAttribute** class. 29 | * 30 | * @param {string} name The name. 31 | * @param {string} value The value. 32 | */ 33 | constructor(name: string, value: string); 34 | constructor(name: string = null, value: string = null) { 35 | this.Name = name; 36 | this.Value = value; 37 | } 38 | } 39 | 40 | // export class ExtendedAttributes extends Array { 41 | // } -------------------------------------------------------------------------------- /src/js/MailboxSearch/KeywordStatisticsSearchResult.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Represents the keyword statistics result. 3 | * 4 | * @sealed 5 | */ 6 | export class KeywordStatisticsSearchResult { 7 | 8 | /** 9 | * Keyword string 10 | */ 11 | Keyword: string; 12 | 13 | /** 14 | * Number of item hits 15 | */ 16 | ItemHits: number; 17 | 18 | /** 19 | * Total size 20 | * [CLSCompliant(false)] 21 | */ 22 | Size: number; 23 | } -------------------------------------------------------------------------------- /src/js/MailboxSearch/MailboxHoldStatus.ts: -------------------------------------------------------------------------------- 1 | import { HoldStatus } from "../Enumerations/HoldStatus"; 2 | 3 | /** 4 | * Represents mailbox hold status 5 | * 6 | * @sealed 7 | */ 8 | export class MailboxHoldStatus { 9 | 10 | /** 11 | * Mailbox 12 | */ 13 | Mailbox: string; 14 | 15 | /** 16 | * Hold Status 17 | */ 18 | Status: HoldStatus; 19 | 20 | /** 21 | * Additional Info 22 | */ 23 | AdditionalInfo: string; 24 | 25 | /** 26 | * Constructor 27 | */ 28 | constructor(); 29 | /** 30 | * Constructor 31 | * 32 | * @param {string} mailbox Mailbox 33 | * @param {HoldStatus} status Hold status 34 | * @param {string} additionalInfo Additional info 35 | */ 36 | constructor(mailbox: string, status: HoldStatus, additionalInfo: string); 37 | constructor(mailbox: string = null, status: HoldStatus = HoldStatus.NotOnHold, additionalInfo: string = null) { 38 | this.Mailbox = mailbox; 39 | this.Status = status; 40 | this.AdditionalInfo = additionalInfo; 41 | } 42 | } -------------------------------------------------------------------------------- /src/js/MailboxSearch/MailboxQuery.ts: -------------------------------------------------------------------------------- 1 | import { MailboxSearchScope } from "./MailboxSearchScope"; 2 | 3 | /** 4 | * Represents mailbox query object. 5 | * 6 | * @sealed 7 | */ 8 | export class MailboxQuery { 9 | 10 | /** 11 | * Search query 12 | */ 13 | Query: string = null; 14 | 15 | /** 16 | * Set of mailbox and scope pair 17 | */ 18 | MailboxSearchScopes: MailboxSearchScope[] = null; 19 | 20 | /** 21 | * Constructor 22 | * 23 | * @param {string} query Search query 24 | * @param {MailboxSearchScope[]} searchScopes Set of mailbox and scope pair 25 | */ 26 | constructor(query: string, searchScopes: MailboxSearchScope[]) { 27 | this.Query = query; 28 | this.MailboxSearchScopes = searchScopes; 29 | } 30 | } -------------------------------------------------------------------------------- /src/js/MailboxSearch/NonIndexableItemParameters.ts: -------------------------------------------------------------------------------- 1 | import { SearchPageDirection } from "../Enumerations/SearchPageDirection"; 2 | 3 | /** 4 | * Represents non indexable item parameters base class 5 | */ 6 | export abstract class NonIndexableItemParameters { 7 | 8 | /** 9 | * List of mailboxes (in legacy DN format) 10 | */ 11 | Mailboxes: string[] = null; 12 | 13 | /** 14 | * Search archive only 15 | */ 16 | SearchArchiveOnly: boolean = false; 17 | } 18 | 19 | /** 20 | * Represents get non indexable item statistics parameters. 21 | * 22 | * @sealed 23 | */ 24 | export class GetNonIndexableItemStatisticsParameters extends NonIndexableItemParameters { 25 | } 26 | 27 | /** 28 | * Represents get non indexable item details parameters. 29 | * 30 | * @sealed 31 | */ 32 | export class GetNonIndexableItemDetailsParameters extends NonIndexableItemParameters { 33 | 34 | /** 35 | * @Nullable Page size 36 | */ 37 | PageSize: number = null; //Nullable 38 | 39 | /** 40 | * Page item reference 41 | */ 42 | PageItemReference: string = null; 43 | 44 | /** 45 | * @Nullable Search page direction 46 | */ 47 | PageDirection: SearchPageDirection = null; //Nullable 48 | } -------------------------------------------------------------------------------- /src/js/MailboxSearch/PreviewItemMailbox.ts: -------------------------------------------------------------------------------- 1 |  2 | /** 3 | * Represents mailbox object for preview item. 4 | * 5 | * @sealed 6 | */ 7 | export class PreviewItemMailbox { 8 | 9 | /** 10 | * Mailbox id 11 | */ 12 | MailboxId: string = null; 13 | 14 | /** 15 | * Primary smtp address 16 | */ 17 | PrimarySmtpAddress: string = null; 18 | 19 | /** 20 | * Constructor 21 | */ 22 | constructor(); 23 | /** 24 | * Constructor 25 | * 26 | * @param {string} mailboxId Mailbox id 27 | * @param {string} primarySmtpAddress Primary smtp address 28 | */ 29 | constructor(mailboxId: string, primarySmtpAddress: string); 30 | constructor(mailboxId: string = null, primarySmtpAddress: string = null) { 31 | this.MailboxId = mailboxId; 32 | this.PrimarySmtpAddress = primarySmtpAddress; 33 | } 34 | } -------------------------------------------------------------------------------- /src/js/MailboxSearch/SetHoldOnMailboxesParameters.ts: -------------------------------------------------------------------------------- 1 | import { HoldAction } from "../Enumerations/HoldAction"; 2 | 3 | /** 4 | * Represents set hold on mailboxes parameters. 5 | * 6 | * @sealed 7 | */ 8 | export class SetHoldOnMailboxesParameters { 9 | 10 | /** 11 | * Action type 12 | */ 13 | ActionType: HoldAction = HoldAction.Create; 14 | 15 | /** 16 | * Hold id 17 | */ 18 | HoldId: string = null; 19 | 20 | /** 21 | * Query 22 | */ 23 | Query: string = null; 24 | 25 | /** 26 | * Collection of mailboxes 27 | */ 28 | Mailboxes: string[] = null; 29 | 30 | /** 31 | * Query language 32 | */ 33 | Language: string = null; 34 | 35 | /** 36 | * In-place hold identity 37 | */ 38 | InPlaceHoldIdentity: string = null; 39 | 40 | /** 41 | * Item hold period 42 | * *The text value can be "Unlimited" or the string value of any Timespan value.* 43 | * 44 | * per github issue #120 45 | */ 46 | ItemHoldPeriod: string = null; 47 | 48 | /** 49 | * Include Non Indexable Items 50 | * 51 | * per github issue #120 52 | */ 53 | IncludeNonIndexableItems: boolean = null; 54 | 55 | /** 56 | * Perform deduplication 57 | * 58 | * per github issue #120 59 | */ 60 | PerformDeduplication: boolean = null; 61 | } -------------------------------------------------------------------------------- /src/js/Misc/AbstractFolderIdWrapper.ts: -------------------------------------------------------------------------------- 1 | import {Folder} from "../Core/ServiceObjects/Folders/Folder"; 2 | import {ExchangeVersion} from "../Enumerations/ExchangeVersion"; 3 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 4 | export class AbstractFolderIdWrapper { //IJsonSerializable 5 | GetFolder(): Folder { return null; } 6 | //InternalToJson(service: ExchangeService): void { throw new Error("AbstractFolderIdWrapper.ts - InternalToJson : Not implemented."); } 7 | //object IJsonSerializable.ToJson(ExchangeService service) 8 | //{ 9 | // return this.InternalToJson(service); 10 | //} 11 | Validate(version: ExchangeVersion): void { /*throw new Error("Not implemented.");*/ } 12 | /**@internal */ 13 | WriteToXml(writer: EwsServiceXmlWriter): void { throw new Error("AbstractFolderIdWrapper.ts - WriteToXml - abstract; must implemented."); } 14 | } -------------------------------------------------------------------------------- /src/js/Misc/AbstractItemIdWrapper.ts: -------------------------------------------------------------------------------- 1 | import {Item} from "../Core/ServiceObjects/Items/Item"; 2 | import {ExchangeService} from "../Core/ExchangeService"; 3 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 4 | export class AbstractItemIdWrapper {//IJsonSerializable 5 | GetItem(): Item { return null;} 6 | IternalToJson(service: ExchangeService): any { throw new Error("AbstractItemIdWrapper.ts - IternalToJson : Not implemented."); } 7 | /**@internal */ 8 | WriteToXml(writer: EwsServiceXmlWriter): void {} 9 | } 10 | -------------------------------------------------------------------------------- /src/js/Misc/EwsTraceListener.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @internal EwsTraceListener logs request/responses to a text writer. 3 | */ 4 | export class EwsTraceListener { 5 | private writer: TextWriter = null; 6 | 7 | /** 8 | * @internal Initializes a new instance of the **EwsTraceListener** class. 9 | */ 10 | constructor(); 11 | /** 12 | * @internal Initializes a new instance of the **EwsTraceListener** class. 13 | * 14 | * @param {} writer The writer. 15 | */ 16 | constructor(writer: TextWriter); 17 | constructor(writer: TextWriter = { Write: console.log }) { 18 | this.writer = writer; 19 | } 20 | 21 | /** 22 | * Handles a trace message 23 | * 24 | * @param {string} traceType Type of trace message. 25 | * @param {string} traceMessage The trace message. 26 | */ 27 | Trace(traceType: string, traceMessage: string): void { 28 | this.writer.Write(traceMessage); 29 | } 30 | } 31 | 32 | export interface TextWriter { 33 | Write(message): void; 34 | } 35 | -------------------------------------------------------------------------------- /src/js/Misc/FolderIdWrapper.ts: -------------------------------------------------------------------------------- 1 | import {FolderId} from "../ComplexProperties/FolderId"; 2 | import {EwsLogging} from "../Core/EwsLogging"; 3 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 4 | import {ExchangeVersion} from "../Enumerations/ExchangeVersion"; 5 | 6 | import {AbstractFolderIdWrapper} from "./AbstractFolderIdWrapper"; 7 | export class FolderIdWrapper extends AbstractFolderIdWrapper { 8 | private folderId: FolderId; 9 | 10 | constructor(folderId: FolderId) { 11 | super(); 12 | EwsLogging.Assert( 13 | folderId != null, 14 | "FolderIdWrapper.ctor", 15 | "folderId is null"); 16 | 17 | this.folderId = folderId; 18 | } 19 | 20 | //InternalToJson(service: ExchangeService): any{ throw new Error("FolderIdWrapper.ts - InternalToJson : Not implemented.");} 21 | Validate(version: ExchangeVersion): void { this.folderId.Validate(version); } 22 | /**@internal */ 23 | WriteToXml(writer: EwsServiceXmlWriter): void { this.folderId.WriteToXml(writer); } 24 | } -------------------------------------------------------------------------------- /src/js/Misc/FolderWrapper.ts: -------------------------------------------------------------------------------- 1 | import {Folder} from "../Core/ServiceObjects/Folders/Folder"; 2 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 3 | import {EwsLogging} from "../Core/EwsLogging"; 4 | 5 | import {AbstractFolderIdWrapper} from "./AbstractFolderIdWrapper"; 6 | export class FolderWrapper extends AbstractFolderIdWrapper { 7 | private folder: Folder; 8 | 9 | constructor(folder: Folder) { 10 | super(); 11 | EwsLogging.Assert( 12 | folder != null, 13 | "FolderWrapper.ctor", 14 | "folder is null"); 15 | EwsLogging.Assert( 16 | !folder.IsNew, 17 | "FolderWrapper.ctor", 18 | "folder does not have an Id"); 19 | 20 | this.folder = folder; 21 | } 22 | 23 | GetFolder(): Folder { return this.folder; } 24 | //InternalToJson(service: ExchangeService): void{ throw new Error("FolderWrapper.ts - InternalToJson : Not implemented.");} 25 | /**@internal */ 26 | WriteToXml(writer: EwsServiceXmlWriter): void { this.folder.Id.WriteToXml(writer); } 27 | } -------------------------------------------------------------------------------- /src/js/Misc/HangingTraceStream.ts: -------------------------------------------------------------------------------- 1 | //import ExchangeService = require("../Core/ExchangeService"); 2 | // 3 | // class HangingTraceStream extends System.IO.Stream { 4 | // CanRead: boolean; 5 | // CanSeek: boolean; 6 | // CanWrite: boolean; 7 | // Length: number; 8 | // Position: number; 9 | // private underlyingStream: any /*System.IO.Stream*/; 10 | // private service: ExchangeService; 11 | // private responseCopy: any /*System.IO.MemoryStream*/; 12 | // Flush(): void{ throw new Error("HangingTraceStream.ts - Flush : Not implemented.");} 13 | // Read(buffer: any /*System.Byte[]*/, offset: number, count: number): number{ throw new Error("HangingTraceStream.ts - Read : Not implemented.");} 14 | // Seek(offset: number, origin: any /*System.IO.SeekOrigin*/): number{ throw new Error("HangingTraceStream.ts - Seek : Not implemented.");} 15 | // SetLength(value: number): void{ throw new Error("HangingTraceStream.ts - SetLength : Not implemented.");} 16 | // SetResponseCopy(responseCopy: any /*System.IO.MemoryStream*/): void{ throw new Error("HangingTraceStream.ts - SetResponseCopy : Not implemented.");} 17 | // Write(buffer: any /*System.Byte[]*/, offset: number, count: number): void{ throw new Error("HangingTraceStream.ts - Write : Not implemented.");} 18 | //} 19 | //export = HangingTraceStream; 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/js/Misc/ItemIdWrapper.ts: -------------------------------------------------------------------------------- 1 | import {ItemId} from "../ComplexProperties/ItemId"; 2 | import {ExchangeService} from "../Core/ExchangeService"; 3 | import {EwsLogging} from "../Core/EwsLogging"; 4 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 5 | import {AbstractItemIdWrapper} from "./AbstractItemIdWrapper"; 6 | 7 | export class ItemIdWrapper extends AbstractItemIdWrapper { 8 | private itemId: ItemId; 9 | constructor(itemId: ItemId) { 10 | super(); 11 | EwsLogging.Assert( 12 | itemId != null, 13 | "ItemIdWrapper.ctor", 14 | "itemId is null"); 15 | 16 | this.itemId = itemId; 17 | } 18 | IternalToJson(service: ExchangeService): any { throw new Error("ItemIdWrapper.ts - IternalToJson : Not implemented."); } 19 | /**@internal */ 20 | WriteToXml(writer: EwsServiceXmlWriter): void {this.itemId.WriteToXml(writer);} 21 | } -------------------------------------------------------------------------------- /src/js/Misc/ItemWrapper.ts: -------------------------------------------------------------------------------- 1 | import {AbstractItemIdWrapper} from "./AbstractItemIdWrapper"; 2 | import {Item} from "../Core/ServiceObjects/Items/Item"; 3 | import {ExchangeService} from "../Core/ExchangeService"; 4 | import {EwsLogging} from "../Core/EwsLogging"; 5 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 6 | export class ItemWrapper extends AbstractItemIdWrapper { 7 | private item: Item; 8 | constructor(item: Item) { 9 | super(); 10 | EwsLogging.Assert( 11 | item != null, 12 | "ItemWrapper.ctor", 13 | "item is null"); 14 | EwsLogging.Assert( 15 | !item.IsNew, 16 | "ItemWrapper.ctor", 17 | "item does not have an Id"); 18 | 19 | this.item = item; 20 | } 21 | GetItem(): Item { return this.item; } 22 | IternalToJson(service: ExchangeService): any { throw new Error("ItemWrapper.ts - IternalToJson : Not implemented."); } 23 | /**@internal */ 24 | WriteToXml(writer: EwsServiceXmlWriter): void { this.item.Id.WriteToXml(writer) } 25 | } -------------------------------------------------------------------------------- /src/js/Notifications/NotificationEventArgs.ts: -------------------------------------------------------------------------------- 1 | import {NotificationEvent} from "./NotificationEvent"; 2 | import {StreamingSubscription} from "./StreamingSubscription"; 3 | 4 | /** 5 | * Provides data to a StreamingSubscriptionConnection's OnNotificationEvent event. 6 | */ 7 | export class NotificationEventArgs {//extends System.EventArgs { 8 | 9 | /** 10 | * Gets the subscription for which notifications have been received. 11 | * 12 | * internal set 13 | */ 14 | Subscription: StreamingSubscription; 15 | 16 | /** 17 | * Gets the events that were received. 18 | * 19 | * internal set 20 | */ 21 | Events: NotificationEvent[]; 22 | 23 | /** 24 | * @internal Initializes a new instance of the **NotificationEventArgs** class. 25 | * 26 | * @param {StreamingSubscription} subscription The subscription for which notifications have been received. 27 | * @param {NotificationEvent[]} events The events that were received. 28 | */ 29 | constructor(subscription: StreamingSubscription, events: NotificationEvent[]) { 30 | this.Events = events; 31 | this.Subscription = subscription; 32 | } 33 | } -------------------------------------------------------------------------------- /src/js/Notifications/NotificationGroup.ts: -------------------------------------------------------------------------------- 1 | import {NotificationEvent} from "./NotificationEvent"; 2 | 3 | /** 4 | * @internal Structure to track a subscription and its associated notification events. 5 | */ 6 | export class NotificationGroup { 7 | 8 | /** 9 | * @internal Subscription Id 10 | */ 11 | SubscriptionId: string = null; 12 | 13 | /** 14 | * @internal Events in the response associated with the subscription id. 15 | */ 16 | Events: NotificationEvent[] = []; 17 | } -------------------------------------------------------------------------------- /src/js/Notifications/PushSubscription.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | 3 | import {SubscriptionBase} from "./SubscriptionBase"; 4 | /** 5 | * Represents a push subscriptions. 6 | * 7 | * @sealed 8 | */ 9 | export class PushSubscription extends SubscriptionBase { 10 | 11 | /** 12 | * @internal Initializes a new instance of the **PushSubscription** class. 13 | * 14 | * @param {ExchangeService} service The service. 15 | */ 16 | constructor(service: ExchangeService) { 17 | super(service); 18 | } 19 | } -------------------------------------------------------------------------------- /src/js/Notifications/StreamingSubscription.ts: -------------------------------------------------------------------------------- 1 | import {ExchangeService} from "../Core/ExchangeService"; 2 | 3 | import {SubscriptionBase} from "./SubscriptionBase"; 4 | /** 5 | * Represents a streaming subscription. 6 | * 7 | * @sealed 8 | */ 9 | export class StreamingSubscription extends SubscriptionBase { 10 | 11 | /** 12 | * Gets the service used to create this subscription. 13 | */ 14 | get Service(): ExchangeService { 15 | return this.service; 16 | } 17 | /** 18 | * Gets a value indicating whether this subscription uses watermarks. 19 | */ 20 | protected get UsesWatermark(): boolean { 21 | return false; 22 | } 23 | 24 | /** 25 | * @internal Initializes a new instance of the **StreamingSubscription** class. 26 | * 27 | * @param {ExchangeService} service The service. 28 | */ 29 | constructor(service: ExchangeService) { 30 | super(service); 31 | this.service = service; 32 | } 33 | 34 | /** 35 | * Unsubscribes from the streaming subscription. 36 | */ 37 | Unsubscribe(): Promise { return this.Service.Unsubscribe(this.Id); } 38 | } -------------------------------------------------------------------------------- /src/js/PropertyDefinitions/ListValuePropertyDefinition.ts: -------------------------------------------------------------------------------- 1 | import {GenericPropertyDefinition} from "./GenericPropertyDefinition"; 2 | /** @internal */ 3 | export class ListValuePropertyDefinition extends GenericPropertyDefinition { 4 | Parse(value: string): any { 5 | 6 | throw new Error("ListValuePropertyDefinition - Parse: Not implemented."); 7 | 8 | // xs:list values are sent as a space-separated list; convert to comma-separated for EwsUtilities.Parse. 9 | var commaSeparatedValue: string = value ? value : value.replace(' ', ','); 10 | //return EwsUtilities.Parse(commaSeparatedValue); 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /src/js/Search/FindConversationResults.ts: -------------------------------------------------------------------------------- 1 | import {Conversation} from "../Core/ServiceObjects/Items/Conversation"; 2 | import {HighlightTerm} from "../ComplexProperties/HighlightTerm"; 3 | 4 | /** 5 | * Represents the results of an conversation search operation. 6 | * 7 | * @sealed 8 | */ 9 | export class FindConversationResults { 10 | 11 | /** 12 | * Gets a collection containing the conversations that were found by the search operation. 13 | */ 14 | Conversations: Conversation[] = []; 15 | 16 | /** 17 | * Gets a collection containing the HighlightTerms that were returned by the search operation. 18 | */ 19 | HighlightTerms: HighlightTerm[] = []; 20 | 21 | /** 22 | * Gets the total count of conversations in view. 23 | */ 24 | TotalCount: number = null; 25 | 26 | /** 27 | * Gets the indexed offset of the first conversation by the search operation. 28 | */ 29 | IndexedOffset: number = null; 30 | 31 | /** 32 | * @internal Initializes a new instance of the **FindConversationResults** class. 33 | */ 34 | constructor() { 35 | } 36 | } -------------------------------------------------------------------------------- /src/js/Search/ItemGroup.ts: -------------------------------------------------------------------------------- 1 | import {EwsLogging} from "../Core/EwsLogging" 2 | import {Item} from "../Core/ServiceObjects/Items/Item"; 3 | export class ItemGroup { 4 | GroupIndex: string; 5 | Items: TItem[] = [];//System.Collections.ObjectModel.Collection; 6 | constructor(groupIndex: string, items: TItem[]) { 7 | EwsLogging.Assert( 8 | items != null, 9 | "ItemGroup.ctor", 10 | "items is null"); 11 | 12 | this.GroupIndex = groupIndex; 13 | this.Items = items; //new Collection(items); 14 | } 15 | } -------------------------------------------------------------------------------- /src/js/Security/SafeXmlDocument.ts: -------------------------------------------------------------------------------- 1 | 2 | // class SafeXmlDocument extends System.Xml.XmlDocument { 3 | // private settings: any /*System.Xml.XmlReaderSettings*/; 4 | // Load(inStream: any /*System.IO.Stream*/): void{ throw new Error("SafeXmlDocument.ts - Load : Not implemented.");} 5 | // //Load(filename: string): void{ throw new Error("SafeXmlDocument.ts - Load : Not implemented.");} 6 | // //Load(txtReader: any /*System.IO.TextReader*/): void{ throw new Error("SafeXmlDocument.ts - Load : Not implemented.");} 7 | // //Load(reader: any /*System.Xml.XmlReader*/): void{ throw new Error("SafeXmlDocument.ts - Load : Not implemented.");} 8 | // LoadXml(xml: string): void{ throw new Error("SafeXmlDocument.ts - LoadXml : Not implemented.");} 9 | //} 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/js/Security/SafeXmlSchema.ts: -------------------------------------------------------------------------------- 1 | 2 | // class SafeXmlSchema extends System.Xml.Schema.XmlSchema { 3 | // private static defaultSettings: any /*System.Xml.XmlReaderSettings*/; 4 | // Read(stream: any /*System.IO.Stream*/, validationEventHandler: any /*System.Xml.Schema.ValidationEventHandler*/): any /*System.Xml.Schema.XmlSchema*/{ throw new Error("SafeXmlSchema.ts - Read : Not implemented.");} 5 | // //Read(reader: any /*System.IO.TextReader*/, validationEventHandler: any /*System.Xml.Schema.ValidationEventHandler*/): any /*System.Xml.Schema.XmlSchema*/{ throw new Error("SafeXmlSchema.ts - Read : Not implemented.");} 6 | // //Read(reader: any /*System.Xml.XmlReader*/, validationEventHandler: any /*System.Xml.Schema.ValidationEventHandler*/): any /*System.Xml.Schema.XmlSchema*/{ throw new Error("SafeXmlSchema.ts - Read : Not implemented.");} 7 | //} 8 | //export = SafeXmlSchema; 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/js/Security/XmlDtdException.ts: -------------------------------------------------------------------------------- 1 | 2 | // class XmlDtdException extends System.Xml.XmlException { 3 | // Message: string; 4 | //} 5 | //export = XmlDtdException; 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/js/Sync/FolderChange.ts: -------------------------------------------------------------------------------- 1 | import {Folder} from "../Core/ServiceObjects/Folders/Folder"; 2 | import {FolderId} from "../ComplexProperties/FolderId"; 3 | import {ServiceId} from "../ComplexProperties/ServiceId"; 4 | 5 | import {Change} from "./Change"; 6 | /** 7 | * Represents a change on a folder as returned by a synchronization operation. 8 | * 9 | * @sealed 10 | */ 11 | export class FolderChange extends Change { 12 | 13 | /** 14 | * Gets the folder the change applies to. Folder is null when ChangeType is equal to ChangeType.Delete. In that case, use the FolderId property to retrieve the Id of the folder that was deleted. 15 | */ 16 | get Folder(): Folder { 17 | return this.ServiceObject; 18 | } 19 | 20 | /** 21 | * Gets the Id of the folder the change applies to. 22 | */ 23 | get FolderId(): FolderId { 24 | return this.Id; 25 | } 26 | 27 | /** 28 | * @internal Initializes a new instance of **FolderChange** class. 29 | */ 30 | constructor() { 31 | super(); 32 | } 33 | 34 | /** 35 | * @internal Creates an FolderId instance. 36 | * 37 | * @return {ServiceId} A FolderId. 38 | */ 39 | CreateId(): ServiceId { 40 | return new FolderId(); 41 | } 42 | } -------------------------------------------------------------------------------- /src/js/UnifiedMessaging/PhoneCallId.ts: -------------------------------------------------------------------------------- 1 | import {ComplexProperty} from "../ComplexProperties/ComplexProperty"; 2 | import {ExchangeService} from "../Core/ExchangeService"; 3 | import {JsonObject} from "../Core/JsonObject"; 4 | import {EwsServiceXmlReader} from "../Core/EwsServiceXmlReader"; 5 | import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; 6 | export class PhoneCallId extends ComplexProperty { 7 | Id: string; 8 | private id: string; 9 | InternalToJson(service: ExchangeService): any { throw new Error("PhoneCallId.ts - InternalToJson : Not implemented."); } 10 | LoadFromJson(jsonProperty: JsonObject, service: ExchangeService): any { throw new Error("PhoneCallId.ts - LoadFromJson : Not implemented."); } 11 | /**@internal */ 12 | ReadAttributesFromXmlJsObject(reader: EwsServiceXmlReader): any { throw new Error("PhoneCallId.ts - ReadAttributesFromXml : Not implemented."); } 13 | /**@internal */ 14 | WriteAttributesToXml(writer: EwsServiceXmlWriter): any { throw new Error("PhoneCallId.ts - WriteAttributesToXml : Not implemented."); } 15 | /**@internal */ 16 | WriteToXml(writer: EwsServiceXmlWriter): any { throw new Error("PhoneCallId.ts - WriteToXml : Not implemented."); } 17 | } 18 | 19 | 20 | //} 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/js/UnifiedMessaging/UnifiedMessaging.ts: -------------------------------------------------------------------------------- 1 | import {ItemId} from "../ComplexProperties/ItemId"; 2 | import {ExchangeService} from "../Core/ExchangeService"; 3 | import {PhoneCallId} from "./PhoneCallId"; 4 | import {PhoneCall} from "./PhoneCall"; 5 | export class UnifiedMessaging { 6 | private service: ExchangeService; 7 | constructor(service:ExchangeService){ 8 | this.service = service; 9 | } 10 | DisconnectPhoneCall(id: PhoneCallId): any { throw new Error("UnifiedMessaging.ts - DisconnectPhoneCall : Not implemented."); } 11 | GetPhoneCallInformation(id: PhoneCallId): PhoneCall { throw new Error("UnifiedMessaging.ts - GetPhoneCallInformation : Not implemented."); } 12 | PlayOnPhone(itemId: ItemId, dialString: string): PhoneCall { throw new Error("UnifiedMessaging.ts - PlayOnPhone : Not implemented."); } 13 | } 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/js/XHRFactory.ts: -------------------------------------------------------------------------------- 1 | import { IXHRApi } from "./Interfaces"; 2 | import { XhrApi } from "@ewsjs/xhr"; 3 | export class XHRFactory { 4 | 5 | static xhrHelper: IXHRApi; 6 | static get XHRApi() { 7 | if (typeof this.xhrHelper === 'undefined' || this.xhrHelper === null) { 8 | this.xhrHelper = new XhrApi(); 9 | } 10 | return this.xhrHelper; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/js/operations/BulkTransfer/BulkTransfer.ts: -------------------------------------------------------------------------------- 1 |  2 | //not available in my version of ews fork - UploadItems 3 | //not available in my version of ews fork - ExportItems 4 | //export = Conflict; 5 | 6 | -------------------------------------------------------------------------------- /src/js/operations/ExchangeMailboxData/Reminder.ts: -------------------------------------------------------------------------------- 1 |  2 | //// not implemented in EWS managed api in current fork i have 3 | ////GetRemindersResponse 4 | ////PerformReminderAction operation 5 | -------------------------------------------------------------------------------- /src/js/operations/ExchangeMailboxData/Utilities.ts: -------------------------------------------------------------------------------- 1 |  2 | //not implemented in ews api form i have - ExpandDL Operation 3 | //not implemented in ews api form i have - GetUserPhoto Operation 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/js/operations/MailTips/MailTips.ts: -------------------------------------------------------------------------------- 1 | // not available in ews for i have - GetMailTips -------------------------------------------------------------------------------- /src/js/operations/MessageTracking/MessageTracking.ts: -------------------------------------------------------------------------------- 1 |  2 | //not available in code from ews fork i have - FindMessageTrackingReport 3 | //not available in code from ews fork i have - GetMessageTrackingReport 4 | -------------------------------------------------------------------------------- /src/js/operations/Persona/Persona.ts: -------------------------------------------------------------------------------- 1 | // not availbale in my build of ews api 2 | //FindPeople operation 3 | 4 | //Exchange 2013 5 | 6 | 7 | //GetPersona operation 8 | 9 | -------------------------------------------------------------------------------- /src/js/operations/ServiceConfiguration/ServiceConfiguration.ts: -------------------------------------------------------------------------------- 1 |  2 | // GetServiceConfiguration - not avaulable in my fork of ews managed api repo 3 | //} -------------------------------------------------------------------------------- /src/js/operations/Sharing/Sharing.ts: -------------------------------------------------------------------------------- 1 |  2 | // //CreateItem(AcceptSharingInvitation) - not availbale or traceable in my fork of ews managed api repo. 3 | // //GetSharingFolder - not availbale or traceable in my fork of ews managed api repo. 4 | // //GetSharingMetadat - not availbale or traceable in my fork of ews managed api repo. 5 | // //RefreshSharingFolder - not availbale or traceable in my fork of ews managed api repo. 6 | //} 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/js/operations/UnifiedContactStore/UnifiedContactStore.ts: -------------------------------------------------------------------------------- 1 |  2 | // not available in my fork of ews repo. 3 | 4 | //AddNewImContactToGroup operation 5 | 6 | //Exchange 2013 7 | 8 | 9 | //AddImContactToGroup operation 10 | 11 | //Exchange 2013 12 | 13 | 14 | //AddImGroup operation 15 | 16 | //Exchange 2013 17 | 18 | 19 | //AddNewTelUriContactToGroup operation 20 | 21 | //Exchange 2013 22 | 23 | 24 | //AddDistributionGroupToImList operation 25 | 26 | //Exchange 2013 27 | 28 | 29 | //GetImItemList operation 30 | 31 | //Exchange 2013 32 | 33 | 34 | //GetImItems operation 35 | 36 | //Exchange 2013 37 | 38 | 39 | //RemoveContactFromImList operation 40 | 41 | //Exchange 2013 42 | 43 | 44 | //RemoveImContactFromGroup operation 45 | 46 | //Exchange 2013 47 | 48 | 49 | //RemoveDistributionGroupFromImList operation 50 | 51 | //Exchange 2013 52 | 53 | 54 | //RemoveImGroup operation 55 | 56 | //Exchange 2013 57 | 58 | 59 | //SetImGroup operation 60 | 61 | //Exchange 2013 62 | 63 | -------------------------------------------------------------------------------- /src/js/tzmappingex.ts: -------------------------------------------------------------------------------- 1 | export let CustomTimeZoneMappingData = { 2 | 'tzone://Microsoft/Utc':'UTC' 3 | } 4 | -------------------------------------------------------------------------------- /test/ManualLiveTesting/app.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: 'Segoe UI', sans-serif; 3 | } 4 | 5 | span { 6 | font-style: italic; 7 | } 8 | -------------------------------------------------------------------------------- /test/ManualLiveTesting/index2.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | TypeScript HTML App 7 | 8 | 9 | 10 | 11 |

TypeScript HTML App

12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /test/MockXHRApi.ts: -------------------------------------------------------------------------------- 1 | import { IXHROptions, IXHRApi } from "../src/js/Interfaces"; 2 | export class MockXHRApi implements IXHRApi { 3 | public xhrData = {}; 4 | requestXml: string[] = []; 5 | responseXml: string[] = []; 6 | constructor() { 7 | } 8 | xhr(xhroptions: IXHROptions): Promise { 9 | this.xhrData = xhroptions; 10 | return new Promise((successDelegate, errorDelegate) => { 11 | var result = { 12 | response: null, 13 | readyState: 4, 14 | responseText: null, 15 | status: 200, 16 | } 17 | result.response = this.responseXml.splice(0, 1).pop(); 18 | result.responseText = result.response; 19 | successDelegate(result); 20 | }); 21 | } 22 | xhrStream(x: any, y: any): Promise { 23 | throw new Error(); 24 | } 25 | disconnect():void{} 26 | get apiName(): string { 27 | return "mockXHR"; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/mocha/tests.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mocha Calculator Tests 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 19 | 20 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "noEmit": false, 6 | "rootDir": "src/", 7 | }, 8 | "exclude": [ 9 | "node_modules", 10 | "projects", 11 | "test", 12 | "build", 13 | "src/js/System.d.ts", 14 | "typings/ExchangeWebService.d.ts", 15 | "src/js/Microsoft.Exchange.WebServices.d__.ts" 16 | ] 17 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "CommonJS", 5 | // "moduleResolution": "node", 6 | "declaration": false, 7 | "noEmit": true, 8 | "outDir": "build/output/node", 9 | "noImplicitAny": false, 10 | "removeComments": false, 11 | "noLib": false, 12 | "strict": false, 13 | "skipLibCheck": true, 14 | "experimentalDecorators": true, 15 | "emitDecoratorMetadata": true, 16 | "allowUnreachableCode": true, 17 | "pretty": false, 18 | "sourceMap": true, 19 | "stripInternal": true, 20 | "lib": ["es2015", "es2016", "dom"], 21 | "typeRoots": ["typings", "node_modules/@types"] 22 | }, 23 | "compileOnSave": false, 24 | "exclude": [ 25 | "node_modules", 26 | "projects", 27 | "build", 28 | "src/js/System.d.ts", 29 | "typings/ExchangeWebService.d.ts", 30 | "src/js/Microsoft.Exchange.WebServices.d__.ts", 31 | "test/" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /typings/base64-js.d.ts: -------------------------------------------------------------------------------- 1 | declare module "base64-js"{ 2 | export function toByteArray(base64Str:string); 3 | export function fromByteArray(byteArray:number[]); 4 | } -------------------------------------------------------------------------------- /typings/dom.d.ts: -------------------------------------------------------------------------------- 1 | interface Node { 2 | localName: string; 3 | hasAttributes: Function; 4 | namespaceURI?: string; 5 | } 6 | --------------------------------------------------------------------------------