@backtomyfuture/exchange-cli-win32-x64 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/_internal/VCRUNTIME140.dll +0 -0
- package/bin/_internal/VCRUNTIME140_1.dll +0 -0
- package/bin/_internal/_asyncio.pyd +0 -0
- package/bin/_internal/_bz2.pyd +0 -0
- package/bin/_internal/_cffi_backend.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/_ctypes.pyd +0 -0
- package/bin/_internal/_decimal.pyd +0 -0
- package/bin/_internal/_elementtree.pyd +0 -0
- package/bin/_internal/_hashlib.pyd +0 -0
- package/bin/_internal/_lzma.pyd +0 -0
- package/bin/_internal/_multiprocessing.pyd +0 -0
- package/bin/_internal/_overlapped.pyd +0 -0
- package/bin/_internal/_queue.pyd +0 -0
- package/bin/_internal/_socket.pyd +0 -0
- package/bin/_internal/_ssl.pyd +0 -0
- package/bin/_internal/_uuid.pyd +0 -0
- package/bin/_internal/_wmi.pyd +0 -0
- package/bin/_internal/_zoneinfo.pyd +0 -0
- package/bin/_internal/ada92cb5d92a588d1b93__mypyc.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/api-ms-win-core-console-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-datetime-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-debug-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-fibers-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-fibers-l1-1-1.dll +0 -0
- package/bin/_internal/api-ms-win-core-file-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-file-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-file-l2-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-handle-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-heap-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-kernel32-legacy-l1-1-1.dll +0 -0
- package/bin/_internal/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-localization-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-memory-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
- package/bin/_internal/api-ms-win-core-profile-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-string-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-synch-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-synch-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-sysinfo-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-timezone-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-util-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-conio-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-convert-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-environment-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-heap-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-locale-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-math-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-process-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-string-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-time-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-utility-l1-1-0.dll +0 -0
- package/bin/_internal/base_library.zip +0 -0
- package/bin/_internal/certifi/cacert.pem +3959 -0
- package/bin/_internal/certifi/py.typed +0 -0
- package/bin/_internal/charset_normalizer/cd.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/charset_normalizer/md.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/click-8.4.2.dist-info/INSTALLER +1 -0
- package/bin/_internal/click-8.4.2.dist-info/METADATA +84 -0
- package/bin/_internal/click-8.4.2.dist-info/RECORD +40 -0
- package/bin/_internal/click-8.4.2.dist-info/WHEEL +4 -0
- package/bin/_internal/click-8.4.2.dist-info/licenses/LICENSE.txt +28 -0
- package/bin/_internal/cryptography/hazmat/bindings/_rust.pyd +0 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/INSTALLER +1 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/METADATA +110 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/RECORD +195 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/WHEEL +4 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/licenses/LICENSE +3 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/licenses/LICENSE.APACHE +202 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/licenses/LICENSE.BSD +27 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json +1362 -0
- package/bin/_internal/cryptography-48.0.1.dist-info/sboms/sbom.json +43 -0
- package/bin/_internal/exchangelib/__init__.py +120 -0
- package/bin/_internal/exchangelib/account.py +896 -0
- package/bin/_internal/exchangelib/attachments.py +268 -0
- package/bin/_internal/exchangelib/autodiscover/__init__.py +24 -0
- package/bin/_internal/exchangelib/autodiscover/cache.py +150 -0
- package/bin/_internal/exchangelib/autodiscover/discovery.py +491 -0
- package/bin/_internal/exchangelib/autodiscover/protocol.py +58 -0
- package/bin/_internal/exchangelib/configuration.py +106 -0
- package/bin/_internal/exchangelib/credentials.py +319 -0
- package/bin/_internal/exchangelib/errors.py +1710 -0
- package/bin/_internal/exchangelib/ewsdatetime.py +309 -0
- package/bin/_internal/exchangelib/extended_properties.py +311 -0
- package/bin/_internal/exchangelib/fields.py +1842 -0
- package/bin/_internal/exchangelib/folders/__init__.py +249 -0
- package/bin/_internal/exchangelib/folders/base.py +954 -0
- package/bin/_internal/exchangelib/folders/collections.py +576 -0
- package/bin/_internal/exchangelib/folders/known_folders.py +856 -0
- package/bin/_internal/exchangelib/folders/queryset.py +187 -0
- package/bin/_internal/exchangelib/folders/roots.py +390 -0
- package/bin/_internal/exchangelib/indexed_properties.py +96 -0
- package/bin/_internal/exchangelib/items/__init__.py +147 -0
- package/bin/_internal/exchangelib/items/base.py +241 -0
- package/bin/_internal/exchangelib/items/calendar_item.py +466 -0
- package/bin/_internal/exchangelib/items/contact.py +263 -0
- package/bin/_internal/exchangelib/items/item.py +413 -0
- package/bin/_internal/exchangelib/items/message.py +201 -0
- package/bin/_internal/exchangelib/items/post.py +38 -0
- package/bin/_internal/exchangelib/items/task.py +139 -0
- package/bin/_internal/exchangelib/properties.py +2364 -0
- package/bin/_internal/exchangelib/protocol.py +823 -0
- package/bin/_internal/exchangelib/queryset.py +691 -0
- package/bin/_internal/exchangelib/recurrence.py +349 -0
- package/bin/_internal/exchangelib/restriction.py +568 -0
- package/bin/_internal/exchangelib/services/__init__.py +117 -0
- package/bin/_internal/exchangelib/services/archive_item.py +33 -0
- package/bin/_internal/exchangelib/services/common.py +983 -0
- package/bin/_internal/exchangelib/services/convert_id.py +45 -0
- package/bin/_internal/exchangelib/services/copy_item.py +7 -0
- package/bin/_internal/exchangelib/services/create_attachment.py +34 -0
- package/bin/_internal/exchangelib/services/create_folder.py +45 -0
- package/bin/_internal/exchangelib/services/create_item.py +97 -0
- package/bin/_internal/exchangelib/services/create_user_configuration.py +19 -0
- package/bin/_internal/exchangelib/services/delete_attachment.py +28 -0
- package/bin/_internal/exchangelib/services/delete_folder.py +21 -0
- package/bin/_internal/exchangelib/services/delete_item.py +51 -0
- package/bin/_internal/exchangelib/services/delete_user_configuration.py +19 -0
- package/bin/_internal/exchangelib/services/empty_folder.py +25 -0
- package/bin/_internal/exchangelib/services/expand_dl.py +21 -0
- package/bin/_internal/exchangelib/services/export_items.py +27 -0
- package/bin/_internal/exchangelib/services/find_folder.py +80 -0
- package/bin/_internal/exchangelib/services/find_item.py +112 -0
- package/bin/_internal/exchangelib/services/find_people.py +106 -0
- package/bin/_internal/exchangelib/services/get_attachment.py +117 -0
- package/bin/_internal/exchangelib/services/get_delegate.py +45 -0
- package/bin/_internal/exchangelib/services/get_events.py +39 -0
- package/bin/_internal/exchangelib/services/get_folder.py +65 -0
- package/bin/_internal/exchangelib/services/get_item.py +41 -0
- package/bin/_internal/exchangelib/services/get_mail_tips.py +43 -0
- package/bin/_internal/exchangelib/services/get_persona.py +31 -0
- package/bin/_internal/exchangelib/services/get_room_lists.py +21 -0
- package/bin/_internal/exchangelib/services/get_rooms.py +21 -0
- package/bin/_internal/exchangelib/services/get_searchable_mailboxes.py +48 -0
- package/bin/_internal/exchangelib/services/get_server_time_zones.py +39 -0
- package/bin/_internal/exchangelib/services/get_streaming_events.py +102 -0
- package/bin/_internal/exchangelib/services/get_user_availability.py +67 -0
- package/bin/_internal/exchangelib/services/get_user_configuration.py +43 -0
- package/bin/_internal/exchangelib/services/get_user_oof_settings.py +40 -0
- package/bin/_internal/exchangelib/services/get_user_settings.py +87 -0
- package/bin/_internal/exchangelib/services/inbox_rules.py +104 -0
- package/bin/_internal/exchangelib/services/mark_as_junk.py +27 -0
- package/bin/_internal/exchangelib/services/move_folder.py +27 -0
- package/bin/_internal/exchangelib/services/move_item.py +28 -0
- package/bin/_internal/exchangelib/services/resolve_names.py +104 -0
- package/bin/_internal/exchangelib/services/send_item.py +26 -0
- package/bin/_internal/exchangelib/services/send_notification.py +43 -0
- package/bin/_internal/exchangelib/services/set_user_oof_settings.py +34 -0
- package/bin/_internal/exchangelib/services/subscribe.py +125 -0
- package/bin/_internal/exchangelib/services/sync_folder_hierarchy.py +95 -0
- package/bin/_internal/exchangelib/services/sync_folder_items.py +77 -0
- package/bin/_internal/exchangelib/services/unsubscribe.py +21 -0
- package/bin/_internal/exchangelib/services/update_folder.py +158 -0
- package/bin/_internal/exchangelib/services/update_item.py +113 -0
- package/bin/_internal/exchangelib/services/update_user_configuration.py +17 -0
- package/bin/_internal/exchangelib/services/upload_items.py +47 -0
- package/bin/_internal/exchangelib/settings.py +88 -0
- package/bin/_internal/exchangelib/transport.py +214 -0
- package/bin/_internal/exchangelib/util.py +894 -0
- package/bin/_internal/exchangelib/version.py +320 -0
- package/bin/_internal/exchangelib/winzone.py +662 -0
- package/bin/_internal/exchangelib-5.6.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/exchangelib-5.6.0.dist-info/METADATA +77 -0
- package/bin/_internal/exchangelib-5.6.0.dist-info/RECORD +184 -0
- package/bin/_internal/exchangelib-5.6.0.dist-info/WHEEL +5 -0
- package/bin/_internal/exchangelib-5.6.0.dist-info/licenses/LICENSE +21 -0
- package/bin/_internal/exchangelib-5.6.0.dist-info/top_level.txt +1 -0
- package/bin/_internal/libcrypto-3.dll +0 -0
- package/bin/_internal/libffi-8.dll +0 -0
- package/bin/_internal/libssl-3.dll +0 -0
- package/bin/_internal/lxml/_elementpath.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/lxml/builder.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/lxml/etree.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/lxml/html/_difflib.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/lxml/html/diff.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/lxml/isoschematron/resources/rng/iso-schematron.rng +709 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl +75 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl +77 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl +313 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl +1160 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl +55 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl +1796 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl +588 -0
- package/bin/_internal/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt +84 -0
- package/bin/_internal/lxml/objectify.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/lxml/sax.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/pyexpat.pyd +0 -0
- package/bin/_internal/python3.dll +0 -0
- package/bin/_internal/python312.dll +0 -0
- package/bin/_internal/select.pyd +0 -0
- package/bin/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +2 -0
- package/bin/_internal/sspilib/raw/_context_attributes.pyd +0 -0
- package/bin/_internal/sspilib/raw/_credential.pyd +0 -0
- package/bin/_internal/sspilib/raw/_credential_attributes.pyd +0 -0
- package/bin/_internal/sspilib/raw/_message.pyd +0 -0
- package/bin/_internal/sspilib/raw/_ntstatus.pyd +0 -0
- package/bin/_internal/sspilib/raw/_security_buffer.pyd +0 -0
- package/bin/_internal/sspilib/raw/_security_context.pyd +0 -0
- package/bin/_internal/sspilib/raw/_security_package.pyd +0 -0
- package/bin/_internal/sspilib/raw/_text.pyd +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Abidjan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Accra +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Addis_Ababa +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Algiers +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Asmara +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Asmera +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Bamako +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Bangui +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Banjul +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Bissau +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Blantyre +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Brazzaville +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Bujumbura +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Cairo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Casablanca +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Ceuta +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Conakry +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Dakar +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Dar_es_Salaam +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Djibouti +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Douala +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/El_Aaiun +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Freetown +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Gaborone +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Harare +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Johannesburg +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Juba +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Kampala +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Khartoum +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Kigali +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Kinshasa +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Lagos +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Libreville +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Lome +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Luanda +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Lubumbashi +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Lusaka +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Malabo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Maputo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Maseru +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Mbabane +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Mogadishu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Monrovia +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Nairobi +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Ndjamena +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Niamey +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Nouakchott +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Ouagadougou +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Porto-Novo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Sao_Tome +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Timbuktu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Tripoli +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Tunis +0 -0
- package/bin/_internal/tzdata/zoneinfo/Africa/Windhoek +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Adak +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Anchorage +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Anguilla +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Antigua +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Araguaina +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Buenos_Aires +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Catamarca +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/ComodRivadavia +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Cordoba +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Jujuy +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/La_Rioja +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Mendoza +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Rio_Gallegos +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Salta +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/San_Juan +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/San_Luis +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Tucuman +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Argentina/Ushuaia +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Aruba +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Asuncion +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Atikokan +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Atka +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Bahia +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Bahia_Banderas +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Barbados +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Belem +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Belize +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Blanc-Sablon +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Boa_Vista +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Bogota +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Boise +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Buenos_Aires +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Cambridge_Bay +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Campo_Grande +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Cancun +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Caracas +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Catamarca +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Cayenne +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Cayman +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Chicago +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Chihuahua +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Ciudad_Juarez +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Coral_Harbour +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Cordoba +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Costa_Rica +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Coyhaique +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Creston +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Cuiaba +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Curacao +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Danmarkshavn +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Dawson +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Dawson_Creek +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Denver +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Detroit +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Dominica +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Edmonton +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Eirunepe +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/El_Salvador +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Ensenada +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Fort_Nelson +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Fort_Wayne +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Fortaleza +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Glace_Bay +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Godthab +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Goose_Bay +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Grand_Turk +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Grenada +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Guadeloupe +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Guatemala +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Guayaquil +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Guyana +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Halifax +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Havana +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Hermosillo +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Indianapolis +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Knox +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Marengo +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Petersburg +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Tell_City +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Vevay +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Vincennes +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indiana/Winamac +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Indianapolis +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Inuvik +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Iqaluit +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Jamaica +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Jujuy +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Juneau +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Kentucky/Louisville +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Kentucky/Monticello +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Knox_IN +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Kralendijk +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/La_Paz +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Lima +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Los_Angeles +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Louisville +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Lower_Princes +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Maceio +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Managua +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Manaus +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Marigot +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Martinique +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Matamoros +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Mazatlan +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Mendoza +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Menominee +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Merida +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Metlakatla +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Mexico_City +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Miquelon +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Moncton +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Monterrey +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Montevideo +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Montreal +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Montserrat +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Nassau +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/New_York +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Nipigon +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Nome +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Noronha +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/North_Dakota/Beulah +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/North_Dakota/Center +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/North_Dakota/New_Salem +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Nuuk +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Ojinaga +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Panama +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Pangnirtung +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Paramaribo +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Phoenix +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Port-au-Prince +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Port_of_Spain +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Porto_Acre +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Porto_Velho +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Puerto_Rico +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Punta_Arenas +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Rainy_River +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Rankin_Inlet +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Recife +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Regina +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Resolute +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Rio_Branco +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Rosario +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Santa_Isabel +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Santarem +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Santiago +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Santo_Domingo +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Sao_Paulo +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Scoresbysund +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Shiprock +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Sitka +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/St_Barthelemy +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/St_Johns +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/St_Kitts +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/St_Lucia +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/St_Thomas +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/St_Vincent +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Swift_Current +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Tegucigalpa +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Thule +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Thunder_Bay +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Tijuana +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Toronto +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Tortola +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Vancouver +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Virgin +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Whitehorse +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Winnipeg +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Yakutat +0 -0
- package/bin/_internal/tzdata/zoneinfo/America/Yellowknife +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Casey +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Davis +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/DumontDUrville +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Macquarie +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Mawson +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/McMurdo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Palmer +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Rothera +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/South_Pole +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Syowa +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Troll +0 -0
- package/bin/_internal/tzdata/zoneinfo/Antarctica/Vostok +0 -0
- package/bin/_internal/tzdata/zoneinfo/Arctic/Longyearbyen +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Aden +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Almaty +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Amman +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Anadyr +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Aqtau +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Aqtobe +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ashgabat +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ashkhabad +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Atyrau +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Baghdad +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Bahrain +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Baku +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Bangkok +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Barnaul +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Beirut +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Bishkek +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Brunei +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Calcutta +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Chita +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Choibalsan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Chongqing +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Chungking +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Colombo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Dacca +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Damascus +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Dhaka +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Dili +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Dubai +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Dushanbe +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Famagusta +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Gaza +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Harbin +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Hebron +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Hong_Kong +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Hovd +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Irkutsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Istanbul +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Jakarta +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Jayapura +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Jerusalem +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kabul +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kamchatka +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Karachi +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kashgar +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kathmandu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Katmandu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Khandyga +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kolkata +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Krasnoyarsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kuala_Lumpur +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kuching +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Kuwait +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Macao +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Macau +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Magadan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Makassar +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Manila +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Muscat +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Nicosia +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Novokuznetsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Novosibirsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Omsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Oral +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Phnom_Penh +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Pontianak +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Pyongyang +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Qatar +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Qostanay +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Qyzylorda +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Rangoon +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Riyadh +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Saigon +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Sakhalin +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Samarkand +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Seoul +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Shanghai +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Singapore +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Srednekolymsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Taipei +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Tashkent +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Tbilisi +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Tehran +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Tel_Aviv +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Thimbu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Thimphu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Tokyo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Tomsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ujung_Pandang +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ulaanbaatar +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ulan_Bator +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Urumqi +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Ust-Nera +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Vientiane +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Vladivostok +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Yakutsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Yangon +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Yekaterinburg +0 -0
- package/bin/_internal/tzdata/zoneinfo/Asia/Yerevan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Azores +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Bermuda +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Canary +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Cape_Verde +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Faeroe +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Faroe +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Jan_Mayen +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Madeira +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Reykjavik +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/South_Georgia +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/St_Helena +0 -0
- package/bin/_internal/tzdata/zoneinfo/Atlantic/Stanley +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/ACT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Adelaide +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Brisbane +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Broken_Hill +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Canberra +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Currie +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Darwin +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Eucla +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Hobart +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/LHI +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Lindeman +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Lord_Howe +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Melbourne +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/NSW +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/North +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Perth +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Queensland +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/South +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Sydney +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Tasmania +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Victoria +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/West +0 -0
- package/bin/_internal/tzdata/zoneinfo/Australia/Yancowinna +0 -0
- package/bin/_internal/tzdata/zoneinfo/Brazil/Acre +0 -0
- package/bin/_internal/tzdata/zoneinfo/Brazil/DeNoronha +0 -0
- package/bin/_internal/tzdata/zoneinfo/Brazil/East +0 -0
- package/bin/_internal/tzdata/zoneinfo/Brazil/West +0 -0
- package/bin/_internal/tzdata/zoneinfo/CET +0 -0
- package/bin/_internal/tzdata/zoneinfo/CST6CDT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Atlantic +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Central +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Eastern +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Mountain +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Newfoundland +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Pacific +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Saskatchewan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Canada/Yukon +0 -0
- package/bin/_internal/tzdata/zoneinfo/Chile/Continental +0 -0
- package/bin/_internal/tzdata/zoneinfo/Chile/EasterIsland +0 -0
- package/bin/_internal/tzdata/zoneinfo/Cuba +0 -0
- package/bin/_internal/tzdata/zoneinfo/EET +0 -0
- package/bin/_internal/tzdata/zoneinfo/EST +0 -0
- package/bin/_internal/tzdata/zoneinfo/EST5EDT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Egypt +0 -0
- package/bin/_internal/tzdata/zoneinfo/Eire +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+0 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+1 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+10 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+11 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+12 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+2 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+3 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+4 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+5 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+6 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+7 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+8 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT+9 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-0 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-1 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-10 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-11 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-12 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-13 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-14 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-2 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-3 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-4 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-5 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-6 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-7 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-8 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT-9 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/GMT0 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/Greenwich +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/UCT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/UTC +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/Universal +0 -0
- package/bin/_internal/tzdata/zoneinfo/Etc/Zulu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Amsterdam +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Andorra +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Astrakhan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Athens +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Belfast +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Belgrade +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Berlin +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Bratislava +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Brussels +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Bucharest +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Budapest +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Busingen +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Chisinau +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Copenhagen +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Dublin +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Gibraltar +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Guernsey +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Helsinki +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Isle_of_Man +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Istanbul +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Jersey +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Kaliningrad +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Kiev +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Kirov +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Kyiv +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Lisbon +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Ljubljana +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/London +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Luxembourg +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Madrid +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Malta +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Mariehamn +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Minsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Monaco +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Moscow +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Nicosia +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Oslo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Paris +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Podgorica +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Prague +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Riga +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Rome +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Samara +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/San_Marino +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Sarajevo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Saratov +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Simferopol +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Skopje +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Sofia +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Stockholm +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Tallinn +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Tirane +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Tiraspol +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Ulyanovsk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Uzhgorod +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Vaduz +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Vatican +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Vienna +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Vilnius +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Volgograd +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Warsaw +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Zagreb +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Zaporozhye +0 -0
- package/bin/_internal/tzdata/zoneinfo/Europe/Zurich +0 -0
- package/bin/_internal/tzdata/zoneinfo/Factory +0 -0
- package/bin/_internal/tzdata/zoneinfo/GB +0 -0
- package/bin/_internal/tzdata/zoneinfo/GB-Eire +0 -0
- package/bin/_internal/tzdata/zoneinfo/GMT +0 -0
- package/bin/_internal/tzdata/zoneinfo/GMT+0 +0 -0
- package/bin/_internal/tzdata/zoneinfo/GMT-0 +0 -0
- package/bin/_internal/tzdata/zoneinfo/GMT0 +0 -0
- package/bin/_internal/tzdata/zoneinfo/Greenwich +0 -0
- package/bin/_internal/tzdata/zoneinfo/HST +0 -0
- package/bin/_internal/tzdata/zoneinfo/Hongkong +0 -0
- package/bin/_internal/tzdata/zoneinfo/Iceland +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Antananarivo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Chagos +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Christmas +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Cocos +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Comoro +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Kerguelen +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Mahe +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Maldives +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Mauritius +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Mayotte +0 -0
- package/bin/_internal/tzdata/zoneinfo/Indian/Reunion +0 -0
- package/bin/_internal/tzdata/zoneinfo/Iran +0 -0
- package/bin/_internal/tzdata/zoneinfo/Israel +0 -0
- package/bin/_internal/tzdata/zoneinfo/Jamaica +0 -0
- package/bin/_internal/tzdata/zoneinfo/Japan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Kwajalein +0 -0
- package/bin/_internal/tzdata/zoneinfo/Libya +0 -0
- package/bin/_internal/tzdata/zoneinfo/MET +0 -0
- package/bin/_internal/tzdata/zoneinfo/MST +0 -0
- package/bin/_internal/tzdata/zoneinfo/MST7MDT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Mexico/BajaNorte +0 -0
- package/bin/_internal/tzdata/zoneinfo/Mexico/BajaSur +0 -0
- package/bin/_internal/tzdata/zoneinfo/Mexico/General +0 -0
- package/bin/_internal/tzdata/zoneinfo/NZ +0 -0
- package/bin/_internal/tzdata/zoneinfo/NZ-CHAT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Navajo +0 -0
- package/bin/_internal/tzdata/zoneinfo/PRC +0 -0
- package/bin/_internal/tzdata/zoneinfo/PST8PDT +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Apia +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Auckland +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Bougainville +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Chatham +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Chuuk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Easter +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Efate +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Enderbury +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Fakaofo +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Fiji +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Funafuti +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Galapagos +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Gambier +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Guadalcanal +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Guam +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Honolulu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Johnston +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Kanton +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Kiritimati +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Kosrae +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Kwajalein +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Majuro +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Marquesas +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Midway +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Nauru +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Niue +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Norfolk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Noumea +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Pago_Pago +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Palau +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Pitcairn +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Pohnpei +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Ponape +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Port_Moresby +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Rarotonga +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Saipan +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Samoa +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Tahiti +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Tarawa +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Tongatapu +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Truk +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Wake +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Wallis +0 -0
- package/bin/_internal/tzdata/zoneinfo/Pacific/Yap +0 -0
- package/bin/_internal/tzdata/zoneinfo/Poland +0 -0
- package/bin/_internal/tzdata/zoneinfo/Portugal +0 -0
- package/bin/_internal/tzdata/zoneinfo/ROC +0 -0
- package/bin/_internal/tzdata/zoneinfo/ROK +0 -0
- package/bin/_internal/tzdata/zoneinfo/Singapore +0 -0
- package/bin/_internal/tzdata/zoneinfo/Turkey +0 -0
- package/bin/_internal/tzdata/zoneinfo/UCT +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Alaska +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Aleutian +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Arizona +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Central +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/East-Indiana +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Eastern +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Hawaii +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Indiana-Starke +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Michigan +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Mountain +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Pacific +0 -0
- package/bin/_internal/tzdata/zoneinfo/US/Samoa +0 -0
- package/bin/_internal/tzdata/zoneinfo/UTC +0 -0
- package/bin/_internal/tzdata/zoneinfo/Universal +0 -0
- package/bin/_internal/tzdata/zoneinfo/W-SU +0 -0
- package/bin/_internal/tzdata/zoneinfo/WET +0 -0
- package/bin/_internal/tzdata/zoneinfo/Zulu +0 -0
- package/bin/_internal/tzdata/zoneinfo/iso3166.tab +279 -0
- package/bin/_internal/tzdata/zoneinfo/leapseconds +86 -0
- package/bin/_internal/tzdata/zoneinfo/tzdata.zi +4180 -0
- package/bin/_internal/tzdata/zoneinfo/zone.tab +448 -0
- package/bin/_internal/tzdata/zoneinfo/zone1970.tab +375 -0
- package/bin/_internal/tzdata/zoneinfo/zonenow.tab +299 -0
- package/bin/_internal/tzdata/zones +598 -0
- package/bin/_internal/ucrtbase.dll +0 -0
- package/bin/_internal/unicodedata.pyd +0 -0
- package/bin/exchange-cli.exe +0 -0
- package/package.json +20 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue, InvalidTypeError
|
|
2
|
+
from ..properties import ID_FORMATS, AlternateId, AlternatePublicFolderId, AlternatePublicFolderItemId
|
|
3
|
+
from ..util import create_element, set_xml_value
|
|
4
|
+
from .common import EWSService
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ConvertId(EWSService):
|
|
8
|
+
"""Take a list of IDs to convert. Returns a list of converted IDs or exception instances, in the same order as the
|
|
9
|
+
input list.
|
|
10
|
+
|
|
11
|
+
MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/convertid-operation
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
SERVICE_NAME = "ConvertId"
|
|
15
|
+
cls_map = {cls.response_tag(): cls for cls in (AlternateId, AlternatePublicFolderId, AlternatePublicFolderItemId)}
|
|
16
|
+
|
|
17
|
+
def call(self, items, destination_format):
|
|
18
|
+
if destination_format not in ID_FORMATS:
|
|
19
|
+
raise InvalidEnumValue("destination_format", destination_format, ID_FORMATS)
|
|
20
|
+
return self._elems_to_objs(
|
|
21
|
+
self._chunked_get_elements(self.get_payload, items=items, destination_format=destination_format)
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
def _elem_to_obj(self, elem):
|
|
25
|
+
return self.cls_map[elem.tag].from_xml(elem, account=None)
|
|
26
|
+
|
|
27
|
+
def get_payload(self, items, destination_format):
|
|
28
|
+
supported_item_classes = AlternateId, AlternatePublicFolderId, AlternatePublicFolderItemId
|
|
29
|
+
payload = create_element(f"m:{self.SERVICE_NAME}", attrs=dict(DestinationFormat=destination_format))
|
|
30
|
+
item_ids = create_element("m:SourceIds")
|
|
31
|
+
for item in items:
|
|
32
|
+
if not isinstance(item, supported_item_classes):
|
|
33
|
+
raise InvalidTypeError("item", item, supported_item_classes)
|
|
34
|
+
set_xml_value(item_ids, item, version=None)
|
|
35
|
+
payload.append(item_ids)
|
|
36
|
+
return payload
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def _get_elements_in_container(cls, container):
|
|
40
|
+
# We may have other elements in here, e.g. 'ResponseCode'. Filter away those.
|
|
41
|
+
return (
|
|
42
|
+
container.findall(AlternateId.response_tag())
|
|
43
|
+
+ container.findall(AlternatePublicFolderId.response_tag())
|
|
44
|
+
+ container.findall(AlternatePublicFolderItemId.response_tag())
|
|
45
|
+
)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from ..attachments import FileAttachment, ItemAttachment
|
|
2
|
+
from ..items import BaseItem
|
|
3
|
+
from ..properties import ParentItemId
|
|
4
|
+
from ..util import MNS, create_element, set_xml_value
|
|
5
|
+
from .common import EWSAccountService, to_item_id
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CreateAttachment(EWSAccountService):
|
|
9
|
+
"""MSDN:
|
|
10
|
+
https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/createattachment-operation
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
SERVICE_NAME = "CreateAttachment"
|
|
14
|
+
element_container_name = f"{{{MNS}}}Attachments"
|
|
15
|
+
cls_map = {cls.response_tag(): cls for cls in (FileAttachment, ItemAttachment)}
|
|
16
|
+
|
|
17
|
+
def call(self, parent_item, items):
|
|
18
|
+
return self._elems_to_objs(self._chunked_get_elements(self.get_payload, items=items, parent_item=parent_item))
|
|
19
|
+
|
|
20
|
+
def _elem_to_obj(self, elem):
|
|
21
|
+
return self.cls_map[elem.tag].from_xml(elem=elem, account=self.account)
|
|
22
|
+
|
|
23
|
+
def get_payload(self, items, parent_item):
|
|
24
|
+
payload = create_element(f"m:{self.SERVICE_NAME}")
|
|
25
|
+
version = self.account.version
|
|
26
|
+
if isinstance(parent_item, BaseItem):
|
|
27
|
+
# to_item_id() would convert this to a normal ItemId, but the service wants a ParentItemId
|
|
28
|
+
parent_item = ParentItemId(parent_item.id, parent_item.changekey)
|
|
29
|
+
set_xml_value(payload, to_item_id(parent_item, ParentItemId), version=self.account.version)
|
|
30
|
+
attachments = create_element("m:Attachments")
|
|
31
|
+
for item in items:
|
|
32
|
+
set_xml_value(attachments, item, version=version)
|
|
33
|
+
payload.append(attachments)
|
|
34
|
+
return payload
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from ..errors import ErrorFolderExists
|
|
2
|
+
from ..util import MNS, create_element
|
|
3
|
+
from .common import EWSAccountService, folder_ids_element, parse_folder_elem, set_xml_value
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class CreateFolder(EWSAccountService):
|
|
7
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/createfolder-operation"""
|
|
8
|
+
|
|
9
|
+
SERVICE_NAME = "CreateFolder"
|
|
10
|
+
element_container_name = f"{{{MNS}}}Folders"
|
|
11
|
+
ERRORS_TO_CATCH_IN_RESPONSE = EWSAccountService.ERRORS_TO_CATCH_IN_RESPONSE + (ErrorFolderExists,)
|
|
12
|
+
|
|
13
|
+
def __init__(self, *args, **kwargs):
|
|
14
|
+
super().__init__(*args, **kwargs)
|
|
15
|
+
self.folders = [] # A hack to communicate parsing args to _elems_to_objs()
|
|
16
|
+
|
|
17
|
+
def call(self, parent_folder, folders):
|
|
18
|
+
# We can't easily find the correct folder class from the returned XML. Instead, return objects with the same
|
|
19
|
+
# class as the folder instance it was requested with.
|
|
20
|
+
self.folders = list(folders) # Convert to a list, in case 'folders' is a generator. We're iterating twice.
|
|
21
|
+
return self._elems_to_objs(
|
|
22
|
+
self._chunked_get_elements(
|
|
23
|
+
self.get_payload,
|
|
24
|
+
items=self.folders,
|
|
25
|
+
parent_folder=parent_folder,
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
def _elems_to_objs(self, elems):
|
|
30
|
+
for folder, elem in zip(self.folders, elems):
|
|
31
|
+
if isinstance(elem, Exception):
|
|
32
|
+
yield elem
|
|
33
|
+
continue
|
|
34
|
+
yield parse_folder_elem(elem=elem, folder=folder)
|
|
35
|
+
|
|
36
|
+
def get_payload(self, folders, parent_folder):
|
|
37
|
+
payload = create_element(f"m:{self.SERVICE_NAME}")
|
|
38
|
+
payload.append(
|
|
39
|
+
folder_ids_element(folders=[parent_folder], version=self.account.version, tag="m:ParentFolderId")
|
|
40
|
+
)
|
|
41
|
+
folder_elems = create_element("m:Folders")
|
|
42
|
+
for folder in folders:
|
|
43
|
+
set_xml_value(folder_elems, folder, version=self.account.version)
|
|
44
|
+
payload.append(folder_elems)
|
|
45
|
+
return payload
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue, InvalidTypeError
|
|
2
|
+
from ..folders import BaseFolder
|
|
3
|
+
from ..items import (
|
|
4
|
+
MESSAGE_DISPOSITION_CHOICES,
|
|
5
|
+
SAVE_ONLY,
|
|
6
|
+
SEND_AND_SAVE_COPY,
|
|
7
|
+
SEND_MEETING_INVITATIONS_CHOICES,
|
|
8
|
+
SEND_ONLY,
|
|
9
|
+
BulkCreateResult,
|
|
10
|
+
)
|
|
11
|
+
from ..properties import FolderId
|
|
12
|
+
from ..util import MNS, create_element, set_xml_value
|
|
13
|
+
from .common import EWSAccountService, folder_ids_element
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class CreateItem(EWSAccountService):
|
|
17
|
+
"""Take a folder and a list of items. Return the result of creation as a list of tuples (success[True|False],
|
|
18
|
+
errormessage), in the same order as the input list.
|
|
19
|
+
|
|
20
|
+
MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/createitem-operation
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
SERVICE_NAME = "CreateItem"
|
|
24
|
+
element_container_name = f"{{{MNS}}}Items"
|
|
25
|
+
|
|
26
|
+
def call(self, items, folder, message_disposition, send_meeting_invitations):
|
|
27
|
+
if message_disposition not in MESSAGE_DISPOSITION_CHOICES:
|
|
28
|
+
raise InvalidEnumValue("message_disposition", message_disposition, MESSAGE_DISPOSITION_CHOICES)
|
|
29
|
+
if send_meeting_invitations not in SEND_MEETING_INVITATIONS_CHOICES:
|
|
30
|
+
raise InvalidEnumValue(
|
|
31
|
+
"send_meeting_invitations", send_meeting_invitations, SEND_MEETING_INVITATIONS_CHOICES
|
|
32
|
+
)
|
|
33
|
+
if folder is not None:
|
|
34
|
+
if not isinstance(folder, (BaseFolder, FolderId)):
|
|
35
|
+
raise InvalidTypeError("folder", folder, (BaseFolder, FolderId))
|
|
36
|
+
if folder.account != self.account:
|
|
37
|
+
raise ValueError("Folder must belong to account")
|
|
38
|
+
if message_disposition == SAVE_ONLY and folder is None:
|
|
39
|
+
raise AttributeError("Folder must be supplied when in save-only mode")
|
|
40
|
+
if message_disposition == SEND_AND_SAVE_COPY and folder is None:
|
|
41
|
+
folder = self.account.sent # 'Sent' is default EWS behaviour
|
|
42
|
+
if message_disposition == SEND_ONLY and folder is not None:
|
|
43
|
+
raise AttributeError("Folder must be None in send-ony mode")
|
|
44
|
+
return self._elems_to_objs(
|
|
45
|
+
self._chunked_get_elements(
|
|
46
|
+
self.get_payload,
|
|
47
|
+
items=items,
|
|
48
|
+
folder=folder,
|
|
49
|
+
message_disposition=message_disposition,
|
|
50
|
+
send_meeting_invitations=send_meeting_invitations,
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
def _elem_to_obj(self, elem):
|
|
55
|
+
if isinstance(elem, bool):
|
|
56
|
+
return elem
|
|
57
|
+
return BulkCreateResult.from_xml(elem=elem, account=self.account)
|
|
58
|
+
|
|
59
|
+
@classmethod
|
|
60
|
+
def _get_elements_in_container(cls, container):
|
|
61
|
+
res = super()._get_elements_in_container(container)
|
|
62
|
+
return res or [True]
|
|
63
|
+
|
|
64
|
+
def get_payload(self, items, folder, message_disposition, send_meeting_invitations):
|
|
65
|
+
"""Take a list of Item objects (CalendarItem, Message etc.) and return the XML for a CreateItem request.
|
|
66
|
+
convert items to XML Elements.
|
|
67
|
+
|
|
68
|
+
MessageDisposition is only applicable to email messages, where it is required.
|
|
69
|
+
|
|
70
|
+
SendMeetingInvitations is required for calendar items. It is also applicable to tasks, meeting request
|
|
71
|
+
responses (see
|
|
72
|
+
https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/createitem-operation-meeting-request
|
|
73
|
+
) and sharing
|
|
74
|
+
invitation accepts (see
|
|
75
|
+
https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/createitem-acceptsharinginvitation
|
|
76
|
+
). The last two are not supported yet.
|
|
77
|
+
|
|
78
|
+
:param items:
|
|
79
|
+
:param folder:
|
|
80
|
+
:param message_disposition:
|
|
81
|
+
:param send_meeting_invitations:
|
|
82
|
+
"""
|
|
83
|
+
payload = create_element(
|
|
84
|
+
f"m:{self.SERVICE_NAME}",
|
|
85
|
+
attrs=dict(MessageDisposition=message_disposition, SendMeetingInvitations=send_meeting_invitations),
|
|
86
|
+
)
|
|
87
|
+
if folder:
|
|
88
|
+
payload.append(
|
|
89
|
+
folder_ids_element(folders=[folder], version=self.account.version, tag="m:SavedItemFolderId")
|
|
90
|
+
)
|
|
91
|
+
item_elems = create_element("m:Items")
|
|
92
|
+
for item in items:
|
|
93
|
+
if not item.account:
|
|
94
|
+
item.account = self.account
|
|
95
|
+
set_xml_value(item_elems, item, version=self.account.version)
|
|
96
|
+
payload.append(item_elems)
|
|
97
|
+
return payload
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from ..util import create_element, set_xml_value
|
|
2
|
+
from .common import EWSAccountService
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class CreateUserConfiguration(EWSAccountService):
|
|
6
|
+
"""MSDN:
|
|
7
|
+
https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/createuserconfiguration-operation
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
SERVICE_NAME = "CreateUserConfiguration"
|
|
11
|
+
returns_elements = False
|
|
12
|
+
|
|
13
|
+
def call(self, user_configuration):
|
|
14
|
+
return self._get_elements(payload=self.get_payload(user_configuration=user_configuration))
|
|
15
|
+
|
|
16
|
+
def get_payload(self, user_configuration):
|
|
17
|
+
return set_xml_value(
|
|
18
|
+
create_element(f"m:{self.SERVICE_NAME}"), user_configuration, version=self.protocol.version
|
|
19
|
+
)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from ..properties import RootItemId
|
|
2
|
+
from ..util import create_element, set_xml_value
|
|
3
|
+
from .common import EWSAccountService, attachment_ids_element
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DeleteAttachment(EWSAccountService):
|
|
7
|
+
"""MSDN:
|
|
8
|
+
https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/deleteattachment-operation
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
SERVICE_NAME = "DeleteAttachment"
|
|
12
|
+
|
|
13
|
+
def call(self, items):
|
|
14
|
+
return self._elems_to_objs(self._chunked_get_elements(self.get_payload, items=items))
|
|
15
|
+
|
|
16
|
+
def _elem_to_obj(self, elem):
|
|
17
|
+
return RootItemId.from_xml(elem=elem, account=self.account)
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def _get_elements_in_container(cls, container):
|
|
21
|
+
return container.findall(RootItemId.response_tag())
|
|
22
|
+
|
|
23
|
+
def get_payload(self, items):
|
|
24
|
+
return set_xml_value(
|
|
25
|
+
create_element(f"m:{self.SERVICE_NAME}"),
|
|
26
|
+
attachment_ids_element(items=items, version=self.account.version),
|
|
27
|
+
version=self.account.version,
|
|
28
|
+
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue
|
|
2
|
+
from ..items import DELETE_TYPE_CHOICES
|
|
3
|
+
from ..util import create_element
|
|
4
|
+
from .common import EWSAccountService, folder_ids_element
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class DeleteFolder(EWSAccountService):
|
|
8
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/deletefolder-operation"""
|
|
9
|
+
|
|
10
|
+
SERVICE_NAME = "DeleteFolder"
|
|
11
|
+
returns_elements = False
|
|
12
|
+
|
|
13
|
+
def call(self, folders, delete_type):
|
|
14
|
+
if delete_type not in DELETE_TYPE_CHOICES:
|
|
15
|
+
raise InvalidEnumValue("delete_type", delete_type, DELETE_TYPE_CHOICES)
|
|
16
|
+
return self._chunked_get_elements(self.get_payload, items=folders, delete_type=delete_type)
|
|
17
|
+
|
|
18
|
+
def get_payload(self, folders, delete_type):
|
|
19
|
+
payload = create_element(f"m:{self.SERVICE_NAME}", attrs=dict(DeleteType=delete_type))
|
|
20
|
+
payload.append(folder_ids_element(folders=folders, version=self.account.version))
|
|
21
|
+
return payload
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue
|
|
2
|
+
from ..items import AFFECTED_TASK_OCCURRENCES_CHOICES, DELETE_TYPE_CHOICES, SEND_MEETING_CANCELLATIONS_CHOICES
|
|
3
|
+
from ..util import create_element
|
|
4
|
+
from ..version import EXCHANGE_2013_SP1
|
|
5
|
+
from .common import EWSAccountService, item_ids_element
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DeleteItem(EWSAccountService):
|
|
9
|
+
"""Take a folder and a list of (id, changekey) tuples. Return result of deletion as a list of tuples
|
|
10
|
+
(success[True|False], errormessage), in the same order as the input list.
|
|
11
|
+
|
|
12
|
+
MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/deleteitem-operation
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
SERVICE_NAME = "DeleteItem"
|
|
16
|
+
returns_elements = False
|
|
17
|
+
|
|
18
|
+
def call(self, items, delete_type, send_meeting_cancellations, affected_task_occurrences, suppress_read_receipts):
|
|
19
|
+
if delete_type not in DELETE_TYPE_CHOICES:
|
|
20
|
+
raise InvalidEnumValue("delete_type", delete_type, DELETE_TYPE_CHOICES)
|
|
21
|
+
if send_meeting_cancellations not in SEND_MEETING_CANCELLATIONS_CHOICES:
|
|
22
|
+
raise InvalidEnumValue(
|
|
23
|
+
"send_meeting_cancellations", send_meeting_cancellations, SEND_MEETING_CANCELLATIONS_CHOICES
|
|
24
|
+
)
|
|
25
|
+
if affected_task_occurrences not in AFFECTED_TASK_OCCURRENCES_CHOICES:
|
|
26
|
+
raise InvalidEnumValue(
|
|
27
|
+
"affected_task_occurrences", affected_task_occurrences, AFFECTED_TASK_OCCURRENCES_CHOICES
|
|
28
|
+
)
|
|
29
|
+
return self._chunked_get_elements(
|
|
30
|
+
self.get_payload,
|
|
31
|
+
items=items,
|
|
32
|
+
delete_type=delete_type,
|
|
33
|
+
send_meeting_cancellations=send_meeting_cancellations,
|
|
34
|
+
affected_task_occurrences=affected_task_occurrences,
|
|
35
|
+
suppress_read_receipts=suppress_read_receipts,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def get_payload(
|
|
39
|
+
self, items, delete_type, send_meeting_cancellations, affected_task_occurrences, suppress_read_receipts
|
|
40
|
+
):
|
|
41
|
+
# Takes a list of (id, changekey) tuples or Item objects and returns the XML for a DeleteItem request.
|
|
42
|
+
attrs = dict(
|
|
43
|
+
DeleteType=delete_type,
|
|
44
|
+
SendMeetingCancellations=send_meeting_cancellations,
|
|
45
|
+
AffectedTaskOccurrences=affected_task_occurrences,
|
|
46
|
+
)
|
|
47
|
+
if self.account.version.build >= EXCHANGE_2013_SP1:
|
|
48
|
+
attrs["SuppressReadReceipts"] = suppress_read_receipts
|
|
49
|
+
payload = create_element(f"m:{self.SERVICE_NAME}", attrs=attrs)
|
|
50
|
+
payload.append(item_ids_element(items=items, version=self.account.version))
|
|
51
|
+
return payload
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from ..util import create_element, set_xml_value
|
|
2
|
+
from .common import EWSAccountService
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DeleteUserConfiguration(EWSAccountService):
|
|
6
|
+
"""MSDN:
|
|
7
|
+
https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/deleteuserconfiguration-operation
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
SERVICE_NAME = "DeleteUserConfiguration"
|
|
11
|
+
returns_elements = False
|
|
12
|
+
|
|
13
|
+
def call(self, user_configuration_name):
|
|
14
|
+
return self._get_elements(payload=self.get_payload(user_configuration_name=user_configuration_name))
|
|
15
|
+
|
|
16
|
+
def get_payload(self, user_configuration_name):
|
|
17
|
+
return set_xml_value(
|
|
18
|
+
create_element(f"m:{self.SERVICE_NAME}"), user_configuration_name, version=self.account.version
|
|
19
|
+
)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue
|
|
2
|
+
from ..items import DELETE_TYPE_CHOICES
|
|
3
|
+
from ..util import create_element
|
|
4
|
+
from .common import EWSAccountService, folder_ids_element
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class EmptyFolder(EWSAccountService):
|
|
8
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/emptyfolder-operation"""
|
|
9
|
+
|
|
10
|
+
SERVICE_NAME = "EmptyFolder"
|
|
11
|
+
returns_elements = False
|
|
12
|
+
|
|
13
|
+
def call(self, folders, delete_type, delete_sub_folders):
|
|
14
|
+
if delete_type not in DELETE_TYPE_CHOICES:
|
|
15
|
+
raise InvalidEnumValue("delete_type", delete_type, DELETE_TYPE_CHOICES)
|
|
16
|
+
return self._chunked_get_elements(
|
|
17
|
+
self.get_payload, items=folders, delete_type=delete_type, delete_sub_folders=delete_sub_folders
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
def get_payload(self, folders, delete_type, delete_sub_folders):
|
|
21
|
+
payload = create_element(
|
|
22
|
+
f"m:{self.SERVICE_NAME}", attrs=dict(DeleteType=delete_type, DeleteSubFolders=delete_sub_folders)
|
|
23
|
+
)
|
|
24
|
+
payload.append(folder_ids_element(folders=folders, version=self.account.version))
|
|
25
|
+
return payload
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from ..errors import ErrorNameResolutionMultipleResults
|
|
2
|
+
from ..properties import Mailbox
|
|
3
|
+
from ..util import MNS, create_element, set_xml_value
|
|
4
|
+
from .common import EWSService
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ExpandDL(EWSService):
|
|
8
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/expanddl-operation"""
|
|
9
|
+
|
|
10
|
+
SERVICE_NAME = "ExpandDL"
|
|
11
|
+
element_container_name = f"{{{MNS}}}DLExpansion"
|
|
12
|
+
WARNINGS_TO_IGNORE_IN_RESPONSE = ErrorNameResolutionMultipleResults
|
|
13
|
+
|
|
14
|
+
def call(self, distribution_list):
|
|
15
|
+
return self._elems_to_objs(self._get_elements(payload=self.get_payload(distribution_list=distribution_list)))
|
|
16
|
+
|
|
17
|
+
def _elem_to_obj(self, elem):
|
|
18
|
+
return Mailbox.from_xml(elem, account=None)
|
|
19
|
+
|
|
20
|
+
def get_payload(self, distribution_list):
|
|
21
|
+
return set_xml_value(create_element(f"m:{self.SERVICE_NAME}"), distribution_list, version=self.protocol.version)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from ..errors import ResponseMessageError
|
|
2
|
+
from ..util import MNS, create_element
|
|
3
|
+
from .common import EWSAccountService, item_ids_element
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ExportItems(EWSAccountService):
|
|
7
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/exportitems-operation"""
|
|
8
|
+
|
|
9
|
+
ERRORS_TO_CATCH_IN_RESPONSE = ResponseMessageError
|
|
10
|
+
SERVICE_NAME = "ExportItems"
|
|
11
|
+
element_container_name = f"{{{MNS}}}Data"
|
|
12
|
+
|
|
13
|
+
def call(self, items):
|
|
14
|
+
return self._elems_to_objs(self._chunked_get_elements(self.get_payload, items=items))
|
|
15
|
+
|
|
16
|
+
def _elem_to_obj(self, elem):
|
|
17
|
+
return elem.text # All we want is the 64bit string in the 'Data' tag
|
|
18
|
+
|
|
19
|
+
def get_payload(self, items):
|
|
20
|
+
payload = create_element(f"m:{self.SERVICE_NAME}")
|
|
21
|
+
payload.append(item_ids_element(items=items, version=self.account.version))
|
|
22
|
+
return payload
|
|
23
|
+
|
|
24
|
+
# We need to override this since ExportItemsResponseMessage is formatted a bit differently.
|
|
25
|
+
@classmethod
|
|
26
|
+
def _get_elements_in_container(cls, container):
|
|
27
|
+
return [container]
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue
|
|
2
|
+
from ..folders import Folder
|
|
3
|
+
from ..folders.queryset import FOLDER_TRAVERSAL_CHOICES
|
|
4
|
+
from ..items import SHAPE_CHOICES
|
|
5
|
+
from ..util import MNS, TNS, create_element
|
|
6
|
+
from ..version import EXCHANGE_2010
|
|
7
|
+
from .common import EWSPagingService, folder_ids_element, shape_element
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FindFolder(EWSPagingService):
|
|
11
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/findfolder-operation"""
|
|
12
|
+
|
|
13
|
+
SERVICE_NAME = "FindFolder"
|
|
14
|
+
element_container_name = f"{{{TNS}}}Folders"
|
|
15
|
+
paging_container_name = f"{{{MNS}}}RootFolder"
|
|
16
|
+
|
|
17
|
+
def __init__(self, *args, **kwargs):
|
|
18
|
+
super().__init__(*args, **kwargs)
|
|
19
|
+
self.root = None # A hack to communicate parsing args to _elems_to_objs()
|
|
20
|
+
|
|
21
|
+
def call(self, folders, additional_fields, restriction, shape, depth, max_items, offset):
|
|
22
|
+
"""Find sub-folders of a folder.
|
|
23
|
+
|
|
24
|
+
:param folders: the folders to act on
|
|
25
|
+
:param additional_fields: the extra fields that should be returned with the folder, as FieldPath objects
|
|
26
|
+
:param restriction: Restriction object that defines the filters for the query
|
|
27
|
+
:param shape: The set of attributes to return
|
|
28
|
+
:param depth: How deep in the folder structure to search for folders
|
|
29
|
+
:param max_items: The maximum number of items to return
|
|
30
|
+
:param offset: the offset relative to the first item in the item collection. Usually 0.
|
|
31
|
+
|
|
32
|
+
:return: XML elements for the matching folders
|
|
33
|
+
"""
|
|
34
|
+
if shape not in SHAPE_CHOICES:
|
|
35
|
+
raise InvalidEnumValue("shape", shape, SHAPE_CHOICES)
|
|
36
|
+
if depth not in FOLDER_TRAVERSAL_CHOICES:
|
|
37
|
+
raise InvalidEnumValue("depth", depth, FOLDER_TRAVERSAL_CHOICES)
|
|
38
|
+
roots = {f.root for f in folders}
|
|
39
|
+
if len(roots) != 1:
|
|
40
|
+
raise ValueError(f"All folders must have the same root hierarchy ({roots})")
|
|
41
|
+
self.root = roots.pop()
|
|
42
|
+
return self._elems_to_objs(
|
|
43
|
+
self._paged_call(
|
|
44
|
+
payload_func=self.get_payload,
|
|
45
|
+
max_items=max_items,
|
|
46
|
+
folders=folders,
|
|
47
|
+
**dict(
|
|
48
|
+
additional_fields=additional_fields,
|
|
49
|
+
restriction=restriction,
|
|
50
|
+
shape=shape,
|
|
51
|
+
depth=depth,
|
|
52
|
+
page_size=self.page_size,
|
|
53
|
+
offset=offset,
|
|
54
|
+
),
|
|
55
|
+
)
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
def _elem_to_obj(self, elem):
|
|
59
|
+
return Folder.from_xml_with_root(elem=elem, root=self.root)
|
|
60
|
+
|
|
61
|
+
def get_payload(self, folders, additional_fields, restriction, shape, depth, page_size, offset=0):
|
|
62
|
+
payload = create_element(f"m:{self.SERVICE_NAME}", attrs=dict(Traversal=depth))
|
|
63
|
+
payload.append(
|
|
64
|
+
shape_element(
|
|
65
|
+
tag="m:FolderShape", shape=shape, additional_fields=additional_fields, version=self.account.version
|
|
66
|
+
)
|
|
67
|
+
)
|
|
68
|
+
if self.account.version.build >= EXCHANGE_2010:
|
|
69
|
+
indexed_page_folder_view = create_element(
|
|
70
|
+
"m:IndexedPageFolderView",
|
|
71
|
+
attrs=dict(MaxEntriesReturned=page_size, Offset=offset, BasePoint="Beginning"),
|
|
72
|
+
)
|
|
73
|
+
payload.append(indexed_page_folder_view)
|
|
74
|
+
else:
|
|
75
|
+
if offset != 0:
|
|
76
|
+
raise NotImplementedError("'offset' is only supported for Exchange 2010 servers and later")
|
|
77
|
+
if restriction:
|
|
78
|
+
payload.append(restriction.to_xml(version=self.account.version))
|
|
79
|
+
payload.append(folder_ids_element(folders=folders, version=self.protocol.version, tag="m:ParentFolderIds"))
|
|
80
|
+
return payload
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
from ..errors import InvalidEnumValue
|
|
2
|
+
from ..folders.base import BaseFolder
|
|
3
|
+
from ..items import ID_ONLY, ITEM_TRAVERSAL_CHOICES, SHAPE_CHOICES, Item
|
|
4
|
+
from ..util import MNS, TNS, create_element, set_xml_value
|
|
5
|
+
from .common import EWSPagingService, folder_ids_element, shape_element
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class FindItem(EWSPagingService):
|
|
9
|
+
"""MSDN: https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/finditem-operation"""
|
|
10
|
+
|
|
11
|
+
SERVICE_NAME = "FindItem"
|
|
12
|
+
element_container_name = f"{{{TNS}}}Items"
|
|
13
|
+
paging_container_name = f"{{{MNS}}}RootFolder"
|
|
14
|
+
|
|
15
|
+
def __init__(self, *args, **kwargs):
|
|
16
|
+
super().__init__(*args, **kwargs)
|
|
17
|
+
# A hack to communicate parsing args to _elems_to_objs()
|
|
18
|
+
self.additional_fields = None
|
|
19
|
+
self.shape = None
|
|
20
|
+
|
|
21
|
+
def call(
|
|
22
|
+
self,
|
|
23
|
+
folders,
|
|
24
|
+
additional_fields,
|
|
25
|
+
restriction,
|
|
26
|
+
order_fields,
|
|
27
|
+
shape,
|
|
28
|
+
query_string,
|
|
29
|
+
depth,
|
|
30
|
+
calendar_view,
|
|
31
|
+
max_items,
|
|
32
|
+
offset,
|
|
33
|
+
):
|
|
34
|
+
"""Find items in an account.
|
|
35
|
+
|
|
36
|
+
:param folders: the folders to act on
|
|
37
|
+
:param additional_fields: the extra fields that should be returned with the item, as FieldPath objects
|
|
38
|
+
:param restriction: a Restriction object for
|
|
39
|
+
:param order_fields: the fields to sort the results by
|
|
40
|
+
:param shape: The set of attributes to return
|
|
41
|
+
:param query_string: a QueryString object
|
|
42
|
+
:param depth: How deep in the folder structure to search for items
|
|
43
|
+
:param calendar_view: If set, returns recurring calendar items unfolded
|
|
44
|
+
:param max_items: the max number of items to return
|
|
45
|
+
:param offset: the offset relative to the first item in the item collection. Usually 0.
|
|
46
|
+
|
|
47
|
+
:return: XML elements for the matching items
|
|
48
|
+
"""
|
|
49
|
+
if shape not in SHAPE_CHOICES:
|
|
50
|
+
raise InvalidEnumValue("shape", shape, SHAPE_CHOICES)
|
|
51
|
+
if depth not in ITEM_TRAVERSAL_CHOICES:
|
|
52
|
+
raise InvalidEnumValue("depth", depth, ITEM_TRAVERSAL_CHOICES)
|
|
53
|
+
self.additional_fields = additional_fields
|
|
54
|
+
self.shape = shape
|
|
55
|
+
return self._elems_to_objs(
|
|
56
|
+
self._paged_call(
|
|
57
|
+
payload_func=self.get_payload,
|
|
58
|
+
max_items=max_items,
|
|
59
|
+
folders=folders,
|
|
60
|
+
**dict(
|
|
61
|
+
additional_fields=additional_fields,
|
|
62
|
+
restriction=restriction,
|
|
63
|
+
order_fields=order_fields,
|
|
64
|
+
query_string=query_string,
|
|
65
|
+
shape=shape,
|
|
66
|
+
depth=depth,
|
|
67
|
+
calendar_view=calendar_view,
|
|
68
|
+
page_size=self.page_size,
|
|
69
|
+
offset=offset,
|
|
70
|
+
),
|
|
71
|
+
)
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
def _elem_to_obj(self, elem):
|
|
75
|
+
if self.shape == ID_ONLY and self.additional_fields is None:
|
|
76
|
+
return Item.id_from_xml(elem)
|
|
77
|
+
return BaseFolder.item_model_from_tag(elem.tag).from_xml(elem=elem, account=self.account)
|
|
78
|
+
|
|
79
|
+
def get_payload(
|
|
80
|
+
self,
|
|
81
|
+
folders,
|
|
82
|
+
additional_fields,
|
|
83
|
+
restriction,
|
|
84
|
+
order_fields,
|
|
85
|
+
query_string,
|
|
86
|
+
shape,
|
|
87
|
+
depth,
|
|
88
|
+
calendar_view,
|
|
89
|
+
page_size,
|
|
90
|
+
offset=0,
|
|
91
|
+
):
|
|
92
|
+
payload = create_element(f"m:{self.SERVICE_NAME}", attrs=dict(Traversal=depth))
|
|
93
|
+
payload.append(
|
|
94
|
+
shape_element(
|
|
95
|
+
tag="m:ItemShape", shape=shape, additional_fields=additional_fields, version=self.account.version
|
|
96
|
+
)
|
|
97
|
+
)
|
|
98
|
+
if calendar_view is None:
|
|
99
|
+
view_type = create_element(
|
|
100
|
+
"m:IndexedPageItemView", attrs=dict(MaxEntriesReturned=page_size, Offset=offset, BasePoint="Beginning")
|
|
101
|
+
)
|
|
102
|
+
else:
|
|
103
|
+
view_type = calendar_view.to_xml(version=self.account.version)
|
|
104
|
+
payload.append(view_type)
|
|
105
|
+
if restriction:
|
|
106
|
+
payload.append(restriction.to_xml(version=self.account.version))
|
|
107
|
+
if order_fields:
|
|
108
|
+
payload.append(set_xml_value(create_element("m:SortOrder"), order_fields, version=self.account.version))
|
|
109
|
+
payload.append(folder_ids_element(folders=folders, version=self.protocol.version, tag="m:ParentFolderIds"))
|
|
110
|
+
if query_string:
|
|
111
|
+
payload.append(query_string.to_xml(version=self.account.version))
|
|
112
|
+
return payload
|