expo-contacts 12.2.0 → 12.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,12 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 12.3.0 — 2023-07-28
14
+
15
+ ### 💡 Others
16
+
17
+ - Fork `uuid@3.4.0` and move into `expo-modules-core`. Remove the original dependency. ([#23249](https://github.com/expo/expo/pull/23249) by [@alanhughes](https://github.com/alanjhughes))
18
+
13
19
  ## 12.2.0 — 2023-06-21
14
20
 
15
21
  ### 🐛 Bug fixes
@@ -3,7 +3,7 @@ apply plugin: 'kotlin-android'
3
3
  apply plugin: 'maven-publish'
4
4
 
5
5
  group = 'host.exp.exponent'
6
- version = '12.2.0'
6
+ version = '12.3.0'
7
7
 
8
8
  buildscript {
9
9
  def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
@@ -67,7 +67,7 @@ android {
67
67
  minSdkVersion safeExtGet("minSdkVersion", 21)
68
68
  targetSdkVersion safeExtGet("targetSdkVersion", 33)
69
69
  versionCode 29
70
- versionName "12.2.0"
70
+ versionName "12.3.0"
71
71
  }
72
72
  lintOptions {
73
73
  abortOnError false
@@ -1 +1 @@
1
- {"version":3,"file":"Contacts.d.ts","sourceRoot":"","sources":["../src/Contacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Contacts.d.ts","sourceRoot":"","sources":["../src/Contacts.ts"],"names":[],"mappings":"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"}
package/build/Contacts.js CHANGED
@@ -1,6 +1,5 @@
1
- import { PermissionStatus, UnavailabilityError } from 'expo-modules-core';
1
+ import { PermissionStatus, UnavailabilityError, uuidv4, } from 'expo-modules-core';
2
2
  import { Platform, Share } from 'react-native';
3
- import { v4 as uuidv4 } from 'uuid';
4
3
  import ExpoContacts from './ExpoContacts';
5
4
  export { PermissionStatus };
6
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../src/Contacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PermissionResponse, PermissionStatus, UnavailabilityError } from 'expo-modules-core';\nimport { Platform, Share } from 'react-native';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport ExpoContacts from './ExpoContacts';\n\nexport type CalendarFormatType = CalendarFormats | `${CalendarFormats}`;\n\nexport type ContainerType = ContainerTypes | `${ContainerTypes}`;\n\nexport type ContactType = ContactTypes | `${ContactTypes}`;\n\nexport type FieldType = Fields | `${Fields}`;\n\nexport type Date = {\n /**\n * Day.\n */\n day?: number;\n /**\n * Month - adjusted for JavaScript `Date` which starts at `0`.\n */\n month?: number;\n /**\n * Year.\n */\n year?: number;\n /**\n * Unique ID.\n */\n id: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Format for the input date.\n */\n format?: CalendarFormatType;\n};\n\nexport type Relationship = {\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Name of related contact.\n */\n name?: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type Email = {\n /**\n * Email address.\n */\n email?: string;\n /**\n * Flag signifying if it is a primary email address.\n */\n isPrimary?: boolean;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type PhoneNumber = {\n /**\n * Phone number.\n */\n number?: string;\n /**\n * Flag signifying if it is a primary phone number.\n */\n isPrimary?: boolean;\n /**\n * Phone number without format.\n * @example `8674305`\n */\n digits?: string;\n /**\n * Country code.\n * @example `+1`\n */\n countryCode?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type Address = {\n /**\n * Street name.\n */\n street?: string;\n /**\n * City name.\n */\n city?: string;\n /**\n * Country name\n */\n country?: string;\n /**\n * Region or state name.\n */\n region?: string;\n /**\n * Neighborhood name.\n */\n neighborhood?: string;\n /**\n * Local post code.\n */\n postalCode?: string;\n /**\n * P.O. Box.\n */\n poBox?: string;\n /**\n * [Standard country code](https://www.iso.org/iso-3166-country-codes.html).\n */\n isoCountryCode?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\n/**\n * @platform ios\n */\nexport type SocialProfile = {\n /**\n * Name of social app.\n */\n service?: string;\n /**\n * Localized profile name.\n */\n localizedProfile?: string;\n /**\n * Web URL.\n */\n url?: string;\n /**\n * Username in social app.\n */\n username?: string;\n /**\n * Username ID in social app.\n */\n userId?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type InstantMessageAddress = {\n /**\n * Name of instant messaging app.\n */\n service?: string;\n /**\n * Username in IM app.\n */\n username?: string;\n /**\n * Localized name of app.\n */\n localizedService?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type UrlAddress = {\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Web URL.\n */\n url?: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\n// @needs-audit\n/**\n * Information regarding thumbnail images.\n * > On Android you can get dimensions using [`Image.getSize`](https://reactnative.dev/docs/image#getsize) method.\n */\nexport type Image = {\n uri?: string;\n /**\n * Image width.\n * @platform ios\n */\n width?: number;\n /**\n * Image height\n * @platform ios\n */\n height?: number;\n /**\n * Image as Base64 string.\n */\n base64?: string;\n};\n\n/**\n * A set of fields that define information about a single contact entity.\n */\nexport type Contact = {\n /**\n * Immutable identifier used for querying and indexing.\n */\n id: string;\n /**\n * Denoting a person or company.\n */\n contactType: ContactType;\n /**\n * Full name with proper format.\n */\n name: string;\n /**\n * Given name.\n */\n firstName?: string;\n /**\n * Middle name\n */\n middleName?: string;\n /**\n * Last name.\n */\n lastName?: string;\n /**\n * Maiden name.\n */\n maidenName?: string;\n /**\n * Dr. Mr. Mrs. ect…\n */\n namePrefix?: string;\n /**\n * Jr. Sr. ect…\n */\n nameSuffix?: string;\n /**\n * An alias to the proper name.\n */\n nickname?: string;\n /**\n * Pronunciation of the first name.\n */\n phoneticFirstName?: string;\n /**\n * Pronunciation of the middle name.\n */\n phoneticMiddleName?: string;\n /**\n * Pronunciation of the last name.\n */\n phoneticLastName?: string;\n /**\n * Organization the entity belongs to.\n */\n company?: string;\n /**\n * Job description.\n */\n jobTitle?: string;\n /**\n * Job department.\n */\n department?: string;\n /**\n * Additional information.\n * > On iOS 13+, the `note` field [requires your app to request additional entitlements](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_contacts_notes).\n * > The Expo Go app does not contain those entitlements, so in order to test this feature you will need to [request the entitlement from Apple](https://developer.apple.com/contact/request/contact-note-field),\n * > set the [`ios.accessesContactNotes`](./config/app.mdx#accessescontactnotes) field in app.json to `true`, and [create your development build](/develop/development-builds/create-a-build/).\n */\n note?: string;\n /**\n * Used for efficient retrieval of images.\n */\n imageAvailable?: boolean;\n /**\n * Thumbnail image. On iOS it size is set to 320×320px, on Android it may vary.\n */\n image?: Image;\n /**\n * Raw image without cropping, usually large.\n */\n rawImage?: Image;\n /**\n * Birthday information in Gregorian format.\n */\n birthday?: Date;\n /**\n * A labeled list of other relevant user dates in Gregorian format.\n */\n dates?: Date[];\n /**\n * Names of other relevant user connections.\n */\n relationships?: Relationship[];\n /**\n * Email addresses.\n */\n emails?: Email[];\n /**\n * Phone numbers.\n */\n phoneNumbers?: PhoneNumber[];\n /**\n * Locations.\n */\n addresses?: Address[];\n /**\n * Instant messaging connections.\n */\n instantMessageAddresses?: InstantMessageAddress[];\n /**\n * Associated web URLs.\n */\n urlAddresses?: UrlAddress[];\n /**\n * Birthday that doesn't conform to the Gregorian calendar format, interpreted based on the [calendar `format`](#date) setting.\n * @platform ios\n */\n nonGregorianBirthday?: Date;\n /**\n * Social networks.\n * @platform ios\n */\n socialProfiles?: SocialProfile[];\n};\n\n/**\n * The return value for queried contact operations like `getContactsAsync`.\n */\nexport type ContactResponse = {\n /**\n * An array of contacts that match a particular query.\n */\n data: Contact[];\n /**\n * This will be `true` if there are more contacts to retrieve beyond what is returned.\n */\n hasNextPage: boolean;\n /**\n * This will be `true if there are previous contacts that weren't retrieved due to `pageOffset` limit.\n */\n hasPreviousPage: boolean;\n};\n\nexport type ContactSort = `${SortTypes}`;\n\n/**\n * Used to query contacts from the user's device.\n */\nexport type ContactQuery = {\n /**\n * The max number of contacts to return. If skipped or set to `0` all contacts will be returned.\n */\n pageSize?: number;\n /**\n * The number of contacts to skip before gathering contacts.\n */\n pageOffset?: number;\n /**\n * If specified, the defined fields will be returned. If skipped, all fields will be returned.\n */\n fields?: FieldType[];\n /**\n * Sort method used when gathering contacts.\n */\n sort?: ContactSort;\n /**\n * Get all contacts whose name contains the provided string (not case-sensitive).\n */\n name?: string;\n /**\n * Get contacts with a matching ID or array of IDs.\n */\n id?: string | string[];\n /**\n * Get all contacts that belong to the group matching this ID.\n * @platform ios\n */\n groupId?: string;\n /**\n * Get all contacts that belong to the container matching this ID.\n * @platform ios\n */\n containerId?: string;\n /**\n * Prevent unification of contacts when gathering.\n * @default false\n * @platform ios\n */\n rawContacts?: boolean;\n};\n\n/**\n * Denotes the functionality of a native contact form.\n */\nexport type FormOptions = {\n /**\n * The properties that will be displayed. On iOS those properties does nothing while in editing mode.\n */\n displayedPropertyKeys?: FieldType[];\n /**\n * Controller title.\n */\n message?: string;\n /**\n * Used if contact doesn't have a name defined.\n */\n alternateName?: string;\n /**\n * Allows for contact mutation.\n */\n allowsEditing?: boolean;\n /**\n * Actions like share, add, create.\n */\n allowsActions?: boolean;\n /**\n * Show or hide the similar contacts.\n */\n shouldShowLinkedContacts?: boolean;\n /**\n * Present the new contact controller. If set to `false` the unknown controller will be shown.\n */\n isNew?: boolean;\n /**\n * The name of the left bar button.\n */\n cancelButtonTitle?: string;\n /**\n * Prevents the controller from animating in.\n */\n preventAnimation?: boolean;\n /**\n * The parent group for a new contact.\n */\n groupId?: string;\n};\n\n/**\n * Used to query native contact groups.\n * @platform ios\n */\nexport type GroupQuery = {\n /**\n * Query the group with a matching ID.\n */\n groupId?: string;\n /**\n * Query all groups matching a name.\n */\n groupName?: string;\n /**\n * Query all groups that belong to a certain container.\n */\n containerId?: string;\n};\n\n/**\n * A parent to contacts. A contact can belong to multiple groups. Here are some query operations you can perform:\n * - Child Contacts: `getContactsAsync({ groupId })`\n * - Groups From Container: `getGroupsAsync({ containerId })`\n * - Groups Named: `getContainersAsync({ groupName })`\n * @platform ios\n */\nexport type Group = {\n /**\n * Immutable id representing the group.\n */\n name?: string;\n /**\n * The editable name of a group.\n */\n id?: string;\n};\n\n/**\n * Used to query native contact containers.\n * @platform ios\n */\nexport type ContainerQuery = {\n /**\n * Query all the containers that parent a contact.\n */\n contactId?: string;\n /**\n * Query all the containers that parent a group.\n */\n groupId?: string;\n /**\n * Query all the containers that matches ID or an array od IDs.\n */\n containerId?: string | string[];\n};\n\nexport type Container = {\n name: string;\n id: string;\n type: ContainerType;\n};\n\nexport { PermissionStatus, PermissionResponse };\n\n/**\n * Returns whether the Contacts API is enabled on the current device. This method does not check the app permissions.\n * @returns A promise that fulfills with a `boolean`, indicating whether the Contacts API is available on the current device. It always resolves to `false` on web.\n */\nexport async function isAvailableAsync(): Promise<boolean> {\n return !!ExpoContacts.getContactsAsync;\n}\n\nexport async function shareContactAsync(\n contactId: string,\n message: string,\n shareOptions: object = {}\n): Promise<any> {\n if (Platform.OS === 'ios') {\n const url = await writeContactToFileAsync({\n id: contactId,\n });\n return await Share.share(\n {\n url,\n message,\n },\n shareOptions\n );\n } else if (!ExpoContacts.shareContactAsync) {\n throw new UnavailabilityError('Contacts', 'shareContactAsync');\n }\n return await ExpoContacts.shareContactAsync(contactId, message);\n}\n\n/**\n * Return a list of contacts that fit a given criteria. You can get all of the contacts by passing no criteria.\n * @param contactQuery Object used to query contacts.\n * @return A promise that fulfills with `ContactResponse` object returned from the query.\n * @example\n * ```js\n * const { data } = await Contacts.getContactsAsync({\n * fields: [Contacts.Fields.Emails],\n * });\n *\n * if (data.length > 0) {\n * const contact = data[0];\n * console.log(contact);\n * }\n * ```\n */\nexport async function getContactsAsync(contactQuery: ContactQuery = {}): Promise<ContactResponse> {\n if (!ExpoContacts.getContactsAsync) {\n throw new UnavailabilityError('Contacts', 'getContactsAsync');\n }\n return await ExpoContacts.getContactsAsync(contactQuery);\n}\n\nexport async function getPagedContactsAsync(\n contactQuery: ContactQuery = {}\n): Promise<ContactResponse> {\n const { pageSize, ...nOptions } = contactQuery;\n\n if (pageSize && pageSize <= 0) {\n throw new Error('Error: Contacts.getPagedContactsAsync: `pageSize` must be greater than 0');\n }\n\n return await getContactsAsync({\n ...nOptions,\n pageSize,\n });\n}\n\n/**\n * Used for gathering precise data about a contact. Returns a contact matching the given `id`.\n * @param id The ID of a system contact.\n * @param fields If specified, the fields defined will be returned. When skipped, all fields will be returned.\n * @return A promise that fulfills with `Contact` object with ID matching the input ID, or `undefined` if there is no match.\n * @example\n * ```js\n * const contact = await Contacts.getContactByIdAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * if (contact) {\n * console.log(contact);\n * }\n * ```\n */\nexport async function getContactByIdAsync(\n id: string,\n fields?: FieldType[]\n): Promise<Contact | undefined> {\n if (!ExpoContacts.getContactsAsync) {\n throw new UnavailabilityError('Contacts', 'getContactsAsync');\n }\n\n if (id == null) {\n throw new Error('Error: Contacts.getContactByIdAsync: Please pass an ID as a parameter');\n } else {\n const results = await ExpoContacts.getContactsAsync({\n pageSize: 1,\n pageOffset: 0,\n fields,\n id,\n });\n if (results && results.data && results.data.length > 0) {\n return results.data[0];\n }\n }\n return undefined;\n}\n\n/**\n * Creates a new contact and adds it to the system.\n * > **Note**: For Android users, the Expo Go app does not have the required `WRITE_CONTACTS` permission to write to Contacts.\n * > You will need to create a [development build](/develop/development-builds/create-a-build/) and add permission in there manually to use this method.\n * @param contact A contact with the changes you wish to persist. The `id` parameter will not be used.\n * @param containerId @tag-ios The container that will parent the contact.\n * @return A promise that fulfills with ID of the new system contact.\n * @example\n * ```js\n * const contact = {\n * [Contacts.Fields.FirstName]: 'Bird',\n * [Contacts.Fields.LastName]: 'Man',\n * [Contacts.Fields.Company]: 'Young Money',\n * };\n * const contactId = await Contacts.addContactAsync(contact);\n * ```\n */\nexport async function addContactAsync(contact: Contact, containerId?: string): Promise<string> {\n if (!ExpoContacts.addContactAsync) {\n throw new UnavailabilityError('Contacts', 'addContactAsync');\n }\n return await ExpoContacts.addContactAsync(contact, containerId);\n}\n\n/**\n * Mutate the information of an existing contact. Due to an iOS bug, `nonGregorianBirthday` field cannot be modified.\n * > **info** On Android, you can use [`presentFormAsync`](#contactspresentformasynccontactid-contact-formoptions) to make edits to contacts.\n * @param contact A contact object including the wanted changes.\n * @return A promise that fulfills with ID of the updated system contact if mutation was successful.\n * @example\n * ```js\n * const contact = {\n * id: '161A368D-D614-4A15-8DC6-665FDBCFAE55',\n * [Contacts.Fields.FirstName]: 'Drake',\n * [Contacts.Fields.Company]: 'Young Money',\n * };\n * await Contacts.updateContactAsync(contact);\n * ```\n * @platform ios\n */\nexport async function updateContactAsync(contact: Contact): Promise<string> {\n if (!ExpoContacts.updateContactAsync) {\n throw new UnavailabilityError('Contacts', 'updateContactAsync');\n }\n return await ExpoContacts.updateContactAsync(contact);\n}\n\n// @needs-audit\n/**\n * Delete a contact from the system.\n * @param contactId ID of the contact you want to delete.\n * @example\n * ```js\n * await Contacts.removeContactAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n * @platform ios\n */\nexport async function removeContactAsync(contactId: string): Promise<any> {\n if (!ExpoContacts.removeContactAsync) {\n throw new UnavailabilityError('Contacts', 'removeContactAsync');\n }\n return await ExpoContacts.removeContactAsync(contactId);\n}\n\n/**\n * Query a set of contacts and write them to a local URI that can be used for sharing.\n * @param contactQuery Used to query contact you want to write.\n * @return A promise that fulfills with shareable local URI, or `undefined` if there was no match.\n * @example\n * ```js\n * const localUri = await Contacts.writeContactToFileAsync({\n * id: '161A368D-D614-4A15-8DC6-665FDBCFAE55',\n * });\n * Share.share({ url: localUri, message: 'Call me!' });\n * ```\n */\nexport async function writeContactToFileAsync(\n contactQuery: ContactQuery = {}\n): Promise<string | undefined> {\n if (!ExpoContacts.writeContactToFileAsync) {\n throw new UnavailabilityError('Contacts', 'writeContactToFileAsync');\n }\n return await ExpoContacts.writeContactToFileAsync(contactQuery);\n}\n\n// @needs-audit\n/**\n * Present a native form for manipulating contacts.\n * @param contactId The ID of a system contact.\n * @param contact A contact with the changes you want to persist.\n * @param formOptions Options for the native editor.\n * @example\n * ```js\n * await Contacts.presentFormAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n */\nexport async function presentFormAsync(\n contactId?: string | null,\n contact?: Contact | null,\n formOptions: FormOptions = {}\n): Promise<any> {\n if (!ExpoContacts.presentFormAsync) {\n throw new UnavailabilityError('Contacts', 'presentFormAsync');\n }\n if (Platform.OS === 'ios') {\n const adjustedOptions = formOptions;\n\n if (contactId) {\n if (contact) {\n contact = undefined;\n console.log(\n 'Expo.Contacts.presentFormAsync: You should define either a `contact` or a `contactId` but not both.'\n );\n }\n if (adjustedOptions.isNew !== undefined) {\n console.log(\n 'Expo.Contacts.presentFormAsync: `formOptions.isNew` is not supported with `contactId`'\n );\n }\n }\n return await ExpoContacts.presentFormAsync(contactId, contact, adjustedOptions);\n } else {\n return await ExpoContacts.presentFormAsync(contactId, contact, formOptions);\n }\n}\n\n// iOS Only\n\n/**\n * Add a group to a container.\n * @param groupId The group you want to target.\n * @param containerId The container you want to add membership to.\n * @example\n * ```js\n * await Contacts.addExistingGroupToContainerAsync(\n * '161A368D-D614-4A15-8DC6-665FDBCFAE55',\n * '665FDBCFAE55-D614-4A15-8DC6-161A368D'\n * );\n * ```\n * @platform ios\n */\nexport async function addExistingGroupToContainerAsync(\n groupId: string,\n containerId: string\n): Promise<any> {\n if (!ExpoContacts.addExistingGroupToContainerAsync) {\n throw new UnavailabilityError('Contacts', 'addExistingGroupToContainerAsync');\n }\n\n return await ExpoContacts.addExistingGroupToContainerAsync(groupId, containerId);\n}\n\n/**\n * Create a group with a name, and add it to a container. If the container is undefined, the default container will be targeted.\n * @param name Name of the new group.\n * @param containerId The container you to add membership to.\n * @return A promise that fulfills with ID of the new group.\n * @example\n * ```js\n * const groupId = await Contacts.createGroupAsync('Sailor Moon');\n * ```\n * @platform ios\n */\nexport async function createGroupAsync(name?: string, containerId?: string): Promise<string> {\n if (!ExpoContacts.createGroupAsync) {\n throw new UnavailabilityError('Contacts', 'createGroupAsync');\n }\n\n name = name || uuidv4();\n if (!containerId) {\n containerId = await getDefaultContainerIdAsync();\n }\n\n return await ExpoContacts.createGroupAsync(name, containerId);\n}\n\n/**\n * Change the name of an existing group.\n * @param groupName New name for an existing group.\n * @param groupId ID of the group you want to edit.\n * @example\n * ```js\n * await Contacts.updateGroupName('Expo Friends', '161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n * @platform ios\n */\nexport async function updateGroupNameAsync(groupName: string, groupId: string): Promise<any> {\n if (!ExpoContacts.updateGroupNameAsync) {\n throw new UnavailabilityError('Contacts', 'updateGroupNameAsync');\n }\n\n return await ExpoContacts.updateGroupNameAsync(groupName, groupId);\n}\n\n// @needs-audit\n/**\n * Delete a group from the device.\n * @param groupId ID of the group you want to remove.\n * @example\n * ```js\n * await Contacts.removeGroupAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n * @platform ios\n */\nexport async function removeGroupAsync(groupId: string): Promise<any> {\n if (!ExpoContacts.removeGroupAsync) {\n throw new UnavailabilityError('Contacts', 'removeGroupAsync');\n }\n\n return await ExpoContacts.removeGroupAsync(groupId);\n}\n\n// @needs-audit\n/**\n * Add a contact as a member to a group. A contact can be a member of multiple groups.\n * @param contactId ID of the contact you want to edit.\n * @param groupId ID for the group you want to add membership to.\n * @example\n * ```js\n * await Contacts.addExistingContactToGroupAsync(\n * '665FDBCFAE55-D614-4A15-8DC6-161A368D',\n * '161A368D-D614-4A15-8DC6-665FDBCFAE55'\n * );\n * ```\n * @platform ios\n */\nexport async function addExistingContactToGroupAsync(\n contactId: string,\n groupId: string\n): Promise<any> {\n if (!ExpoContacts.addExistingContactToGroupAsync) {\n throw new UnavailabilityError('Contacts', 'addExistingContactToGroupAsync');\n }\n\n return await ExpoContacts.addExistingContactToGroupAsync(contactId, groupId);\n}\n\n// @needs-audit\n/**\n * Remove a contact's membership from a given group. This will not delete the contact.\n * @param contactId ID of the contact you want to remove.\n * @param groupId ID for the group you want to remove membership of.\n * @example\n * ```js\n * await Contacts.removeContactFromGroupAsync(\n * '665FDBCFAE55-D614-4A15-8DC6-161A368D',\n * '161A368D-D614-4A15-8DC6-665FDBCFAE55'\n * );\n * ```\n * @platform ios\n */\nexport async function removeContactFromGroupAsync(\n contactId: string,\n groupId: string\n): Promise<any> {\n if (!ExpoContacts.removeContactFromGroupAsync) {\n throw new UnavailabilityError('Contacts', 'removeContactFromGroupAsync');\n }\n\n return await ExpoContacts.removeContactFromGroupAsync(contactId, groupId);\n}\n\n// @needs-audit\n/**\n * Query and return a list of system groups.\n * @param groupQuery Information regarding which groups you want to get.\n * @example\n * ```js\n * const groups = await Contacts.getGroupsAsync({ groupName: 'sailor moon' });\n * const allGroups = await Contacts.getGroupsAsync({});\n * ```\n * @return A promise that fulfills with array of groups that fit the query.\n * @platform ios\n */\nexport async function getGroupsAsync(groupQuery: GroupQuery): Promise<Group[]> {\n if (!ExpoContacts.getGroupsAsync) {\n throw new UnavailabilityError('Contacts', 'getGroupsAsync');\n }\n\n return await ExpoContacts.getGroupsAsync(groupQuery);\n}\n\n/**\n * Get the default container's ID.\n * @return A promise that fulfills with default container ID.\n * @example\n * ```js\n * const containerId = await Contacts.getDefaultContainerIdAsync();\n * ```\n * @platform ios\n */\nexport async function getDefaultContainerIdAsync(): Promise<string> {\n if (!ExpoContacts.getDefaultContainerIdentifierAsync) {\n throw new UnavailabilityError('Contacts', 'getDefaultContainerIdentifierAsync');\n }\n\n return await ExpoContacts.getDefaultContainerIdentifierAsync();\n}\n\n/**\n * Query a list of system containers.\n * @param containerQuery Information used to gather containers.\n * @return A promise that fulfills with array of containers that fit the query.\n * @example\n * ```js\n * const allContainers = await Contacts.getContainersAsync({\n * contactId: '665FDBCFAE55-D614-4A15-8DC6-161A368D',\n * });\n * ```\n * @platform ios\n */\nexport async function getContainersAsync(containerQuery: ContainerQuery): Promise<Container[]> {\n if (!ExpoContacts.getContainersAsync) {\n throw new UnavailabilityError('Contacts', 'getContainersAsync');\n }\n\n return await ExpoContacts.getContainersAsync(containerQuery);\n}\n\n/**\n * Checks user's permissions for accessing contacts data.\n * @return A promise that resolves to a [PermissionResponse](#permissionresponse) object.\n */\nexport async function getPermissionsAsync(): Promise<PermissionResponse> {\n if (!ExpoContacts.getPermissionsAsync) {\n throw new UnavailabilityError('Contacts', 'getPermissionsAsync');\n }\n\n return await ExpoContacts.getPermissionsAsync();\n}\n\n/**\n * Asks the user to grant permissions for accessing contacts data.\n * @return A promise that resolves to a [PermissionResponse](#permissionresponse) object.\n */\nexport async function requestPermissionsAsync(): Promise<PermissionResponse> {\n if (!ExpoContacts.requestPermissionsAsync) {\n throw new UnavailabilityError('Contacts', 'requestPermissionsAsync');\n }\n\n return await ExpoContacts.requestPermissionsAsync();\n}\n\n/**\n * Possible fields to retrieve for a contact.\n */\nexport enum Fields {\n ID = 'id',\n ContactType = 'contactType',\n Name = 'name',\n FirstName = 'firstName',\n MiddleName = 'middleName',\n LastName = 'lastName',\n MaidenName = 'maidenName',\n NamePrefix = 'namePrefix',\n NameSuffix = 'nameSuffix',\n Nickname = 'nickname',\n PhoneticFirstName = 'phoneticFirstName',\n PhoneticMiddleName = 'phoneticMiddleName',\n PhoneticLastName = 'phoneticLastName',\n Birthday = 'birthday',\n /**\n * @platform ios\n */\n NonGregorianBirthday = 'nonGregorianBirthday',\n Emails = 'emails',\n PhoneNumbers = 'phoneNumbers',\n Addresses = 'addresses',\n /**\n * @platform ios\n */\n SocialProfiles = 'socialProfiles',\n InstantMessageAddresses = 'instantMessageAddresses',\n UrlAddresses = 'urlAddresses',\n Company = 'company',\n JobTitle = 'jobTitle',\n Department = 'department',\n ImageAvailable = 'imageAvailable',\n Image = 'image',\n RawImage = 'rawImage',\n ExtraNames = 'extraNames',\n Note = 'note',\n Dates = 'dates',\n Relationships = 'relationships',\n}\n\n/**\n * This format denotes the common calendar format used to specify how a date is calculated in `nonGregorianBirthday` fields.\n */\nexport enum CalendarFormats {\n Gregorian = 'gregorian',\n /**\n * @platform ios\n */\n Buddhist = 'buddhist',\n /**\n * @platform ios\n */\n Chinese = 'chinese',\n /**\n * @platform ios\n */\n Coptic = 'coptic',\n /**\n * @platform ios\n */\n EthiopicAmeteMihret = 'ethiopicAmeteMihret',\n /**\n * @platform ios\n */\n EthiopicAmeteAlem = 'ethiopicAmeteAlem',\n /**\n * @platform ios\n */\n Hebrew = 'hebrew',\n /**\n * @platform ios\n */\n ISO8601 = 'iso8601',\n /**\n * @platform ios\n */\n Indian = 'indian',\n /**\n * @platform ios\n */\n Islamic = 'islamic',\n /**\n * @platform ios\n */\n IslamicCivil = 'islamicCivil',\n /**\n * @platform ios\n */\n Japanese = 'japanese',\n /**\n * @platform ios\n */\n Persian = 'persian',\n /**\n * @platform ios\n */\n RepublicOfChina = 'republicOfChina',\n /**\n * @platform ios\n */\n IslamicTabular = 'islamicTabular',\n /**\n * @platform ios\n */\n IslamicUmmAlQura = 'islamicUmmAlQura',\n}\n\n/**\n * @platform ios\n */\nexport enum ContainerTypes {\n /**\n * A local non-iCloud container.\n */\n Local = 'local',\n /**\n * In association with email server.\n */\n Exchange = 'exchange',\n /**\n * With cardDAV protocol used for sharing.\n */\n CardDAV = 'cardDAV',\n /**\n * Unknown container.\n */\n Unassigned = 'unassigned',\n}\n\nexport enum SortTypes {\n /**\n * The user default method of sorting.\n * @platform android\n */\n UserDefault = 'userDefault',\n /**\n * Sort by first name in ascending order.\n */\n FirstName = 'firstName',\n /**\n * Sort by last name in ascending order.\n */\n LastName = 'lastName',\n /**\n * No sorting should be applied.\n */\n None = 'none',\n}\n\nexport enum ContactTypes {\n /**\n * Contact is a human.\n */\n Person = 'person',\n /**\n * Contact is group or company.\n */\n Company = 'company',\n}\n"]}
1
+ {"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../src/Contacts.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PermissionResponse,\n PermissionStatus,\n UnavailabilityError,\n uuidv4,\n} from 'expo-modules-core';\nimport { Platform, Share } from 'react-native';\n\nimport ExpoContacts from './ExpoContacts';\n\nexport type CalendarFormatType = CalendarFormats | `${CalendarFormats}`;\n\nexport type ContainerType = ContainerTypes | `${ContainerTypes}`;\n\nexport type ContactType = ContactTypes | `${ContactTypes}`;\n\nexport type FieldType = Fields | `${Fields}`;\n\nexport type Date = {\n /**\n * Day.\n */\n day?: number;\n /**\n * Month - adjusted for JavaScript `Date` which starts at `0`.\n */\n month?: number;\n /**\n * Year.\n */\n year?: number;\n /**\n * Unique ID.\n */\n id: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Format for the input date.\n */\n format?: CalendarFormatType;\n};\n\nexport type Relationship = {\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Name of related contact.\n */\n name?: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type Email = {\n /**\n * Email address.\n */\n email?: string;\n /**\n * Flag signifying if it is a primary email address.\n */\n isPrimary?: boolean;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type PhoneNumber = {\n /**\n * Phone number.\n */\n number?: string;\n /**\n * Flag signifying if it is a primary phone number.\n */\n isPrimary?: boolean;\n /**\n * Phone number without format.\n * @example `8674305`\n */\n digits?: string;\n /**\n * Country code.\n * @example `+1`\n */\n countryCode?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type Address = {\n /**\n * Street name.\n */\n street?: string;\n /**\n * City name.\n */\n city?: string;\n /**\n * Country name\n */\n country?: string;\n /**\n * Region or state name.\n */\n region?: string;\n /**\n * Neighborhood name.\n */\n neighborhood?: string;\n /**\n * Local post code.\n */\n postalCode?: string;\n /**\n * P.O. Box.\n */\n poBox?: string;\n /**\n * [Standard country code](https://www.iso.org/iso-3166-country-codes.html).\n */\n isoCountryCode?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\n/**\n * @platform ios\n */\nexport type SocialProfile = {\n /**\n * Name of social app.\n */\n service?: string;\n /**\n * Localized profile name.\n */\n localizedProfile?: string;\n /**\n * Web URL.\n */\n url?: string;\n /**\n * Username in social app.\n */\n username?: string;\n /**\n * Username ID in social app.\n */\n userId?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type InstantMessageAddress = {\n /**\n * Name of instant messaging app.\n */\n service?: string;\n /**\n * Username in IM app.\n */\n username?: string;\n /**\n * Localized name of app.\n */\n localizedService?: string;\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\nexport type UrlAddress = {\n /**\n * Localized display name.\n */\n label: string;\n /**\n * Web URL.\n */\n url?: string;\n /**\n * Unique ID.\n */\n id: string;\n};\n\n// @needs-audit\n/**\n * Information regarding thumbnail images.\n * > On Android you can get dimensions using [`Image.getSize`](https://reactnative.dev/docs/image#getsize) method.\n */\nexport type Image = {\n uri?: string;\n /**\n * Image width.\n * @platform ios\n */\n width?: number;\n /**\n * Image height\n * @platform ios\n */\n height?: number;\n /**\n * Image as Base64 string.\n */\n base64?: string;\n};\n\n/**\n * A set of fields that define information about a single contact entity.\n */\nexport type Contact = {\n /**\n * Immutable identifier used for querying and indexing.\n */\n id: string;\n /**\n * Denoting a person or company.\n */\n contactType: ContactType;\n /**\n * Full name with proper format.\n */\n name: string;\n /**\n * Given name.\n */\n firstName?: string;\n /**\n * Middle name\n */\n middleName?: string;\n /**\n * Last name.\n */\n lastName?: string;\n /**\n * Maiden name.\n */\n maidenName?: string;\n /**\n * Dr. Mr. Mrs. ect…\n */\n namePrefix?: string;\n /**\n * Jr. Sr. ect…\n */\n nameSuffix?: string;\n /**\n * An alias to the proper name.\n */\n nickname?: string;\n /**\n * Pronunciation of the first name.\n */\n phoneticFirstName?: string;\n /**\n * Pronunciation of the middle name.\n */\n phoneticMiddleName?: string;\n /**\n * Pronunciation of the last name.\n */\n phoneticLastName?: string;\n /**\n * Organization the entity belongs to.\n */\n company?: string;\n /**\n * Job description.\n */\n jobTitle?: string;\n /**\n * Job department.\n */\n department?: string;\n /**\n * Additional information.\n * > On iOS 13+, the `note` field [requires your app to request additional entitlements](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_contacts_notes).\n * > The Expo Go app does not contain those entitlements, so in order to test this feature you will need to [request the entitlement from Apple](https://developer.apple.com/contact/request/contact-note-field),\n * > set the [`ios.accessesContactNotes`](./config/app.mdx#accessescontactnotes) field in app.json to `true`, and [create your development build](/develop/development-builds/create-a-build/).\n */\n note?: string;\n /**\n * Used for efficient retrieval of images.\n */\n imageAvailable?: boolean;\n /**\n * Thumbnail image. On iOS it size is set to 320×320px, on Android it may vary.\n */\n image?: Image;\n /**\n * Raw image without cropping, usually large.\n */\n rawImage?: Image;\n /**\n * Birthday information in Gregorian format.\n */\n birthday?: Date;\n /**\n * A labeled list of other relevant user dates in Gregorian format.\n */\n dates?: Date[];\n /**\n * Names of other relevant user connections.\n */\n relationships?: Relationship[];\n /**\n * Email addresses.\n */\n emails?: Email[];\n /**\n * Phone numbers.\n */\n phoneNumbers?: PhoneNumber[];\n /**\n * Locations.\n */\n addresses?: Address[];\n /**\n * Instant messaging connections.\n */\n instantMessageAddresses?: InstantMessageAddress[];\n /**\n * Associated web URLs.\n */\n urlAddresses?: UrlAddress[];\n /**\n * Birthday that doesn't conform to the Gregorian calendar format, interpreted based on the [calendar `format`](#date) setting.\n * @platform ios\n */\n nonGregorianBirthday?: Date;\n /**\n * Social networks.\n * @platform ios\n */\n socialProfiles?: SocialProfile[];\n};\n\n/**\n * The return value for queried contact operations like `getContactsAsync`.\n */\nexport type ContactResponse = {\n /**\n * An array of contacts that match a particular query.\n */\n data: Contact[];\n /**\n * This will be `true` if there are more contacts to retrieve beyond what is returned.\n */\n hasNextPage: boolean;\n /**\n * This will be `true if there are previous contacts that weren't retrieved due to `pageOffset` limit.\n */\n hasPreviousPage: boolean;\n};\n\nexport type ContactSort = `${SortTypes}`;\n\n/**\n * Used to query contacts from the user's device.\n */\nexport type ContactQuery = {\n /**\n * The max number of contacts to return. If skipped or set to `0` all contacts will be returned.\n */\n pageSize?: number;\n /**\n * The number of contacts to skip before gathering contacts.\n */\n pageOffset?: number;\n /**\n * If specified, the defined fields will be returned. If skipped, all fields will be returned.\n */\n fields?: FieldType[];\n /**\n * Sort method used when gathering contacts.\n */\n sort?: ContactSort;\n /**\n * Get all contacts whose name contains the provided string (not case-sensitive).\n */\n name?: string;\n /**\n * Get contacts with a matching ID or array of IDs.\n */\n id?: string | string[];\n /**\n * Get all contacts that belong to the group matching this ID.\n * @platform ios\n */\n groupId?: string;\n /**\n * Get all contacts that belong to the container matching this ID.\n * @platform ios\n */\n containerId?: string;\n /**\n * Prevent unification of contacts when gathering.\n * @default false\n * @platform ios\n */\n rawContacts?: boolean;\n};\n\n/**\n * Denotes the functionality of a native contact form.\n */\nexport type FormOptions = {\n /**\n * The properties that will be displayed. On iOS those properties does nothing while in editing mode.\n */\n displayedPropertyKeys?: FieldType[];\n /**\n * Controller title.\n */\n message?: string;\n /**\n * Used if contact doesn't have a name defined.\n */\n alternateName?: string;\n /**\n * Allows for contact mutation.\n */\n allowsEditing?: boolean;\n /**\n * Actions like share, add, create.\n */\n allowsActions?: boolean;\n /**\n * Show or hide the similar contacts.\n */\n shouldShowLinkedContacts?: boolean;\n /**\n * Present the new contact controller. If set to `false` the unknown controller will be shown.\n */\n isNew?: boolean;\n /**\n * The name of the left bar button.\n */\n cancelButtonTitle?: string;\n /**\n * Prevents the controller from animating in.\n */\n preventAnimation?: boolean;\n /**\n * The parent group for a new contact.\n */\n groupId?: string;\n};\n\n/**\n * Used to query native contact groups.\n * @platform ios\n */\nexport type GroupQuery = {\n /**\n * Query the group with a matching ID.\n */\n groupId?: string;\n /**\n * Query all groups matching a name.\n */\n groupName?: string;\n /**\n * Query all groups that belong to a certain container.\n */\n containerId?: string;\n};\n\n/**\n * A parent to contacts. A contact can belong to multiple groups. Here are some query operations you can perform:\n * - Child Contacts: `getContactsAsync({ groupId })`\n * - Groups From Container: `getGroupsAsync({ containerId })`\n * - Groups Named: `getContainersAsync({ groupName })`\n * @platform ios\n */\nexport type Group = {\n /**\n * Immutable id representing the group.\n */\n name?: string;\n /**\n * The editable name of a group.\n */\n id?: string;\n};\n\n/**\n * Used to query native contact containers.\n * @platform ios\n */\nexport type ContainerQuery = {\n /**\n * Query all the containers that parent a contact.\n */\n contactId?: string;\n /**\n * Query all the containers that parent a group.\n */\n groupId?: string;\n /**\n * Query all the containers that matches ID or an array od IDs.\n */\n containerId?: string | string[];\n};\n\nexport type Container = {\n name: string;\n id: string;\n type: ContainerType;\n};\n\nexport { PermissionStatus, PermissionResponse };\n\n/**\n * Returns whether the Contacts API is enabled on the current device. This method does not check the app permissions.\n * @returns A promise that fulfills with a `boolean`, indicating whether the Contacts API is available on the current device. It always resolves to `false` on web.\n */\nexport async function isAvailableAsync(): Promise<boolean> {\n return !!ExpoContacts.getContactsAsync;\n}\n\nexport async function shareContactAsync(\n contactId: string,\n message: string,\n shareOptions: object = {}\n): Promise<any> {\n if (Platform.OS === 'ios') {\n const url = await writeContactToFileAsync({\n id: contactId,\n });\n return await Share.share(\n {\n url,\n message,\n },\n shareOptions\n );\n } else if (!ExpoContacts.shareContactAsync) {\n throw new UnavailabilityError('Contacts', 'shareContactAsync');\n }\n return await ExpoContacts.shareContactAsync(contactId, message);\n}\n\n/**\n * Return a list of contacts that fit a given criteria. You can get all of the contacts by passing no criteria.\n * @param contactQuery Object used to query contacts.\n * @return A promise that fulfills with `ContactResponse` object returned from the query.\n * @example\n * ```js\n * const { data } = await Contacts.getContactsAsync({\n * fields: [Contacts.Fields.Emails],\n * });\n *\n * if (data.length > 0) {\n * const contact = data[0];\n * console.log(contact);\n * }\n * ```\n */\nexport async function getContactsAsync(contactQuery: ContactQuery = {}): Promise<ContactResponse> {\n if (!ExpoContacts.getContactsAsync) {\n throw new UnavailabilityError('Contacts', 'getContactsAsync');\n }\n return await ExpoContacts.getContactsAsync(contactQuery);\n}\n\nexport async function getPagedContactsAsync(\n contactQuery: ContactQuery = {}\n): Promise<ContactResponse> {\n const { pageSize, ...nOptions } = contactQuery;\n\n if (pageSize && pageSize <= 0) {\n throw new Error('Error: Contacts.getPagedContactsAsync: `pageSize` must be greater than 0');\n }\n\n return await getContactsAsync({\n ...nOptions,\n pageSize,\n });\n}\n\n/**\n * Used for gathering precise data about a contact. Returns a contact matching the given `id`.\n * @param id The ID of a system contact.\n * @param fields If specified, the fields defined will be returned. When skipped, all fields will be returned.\n * @return A promise that fulfills with `Contact` object with ID matching the input ID, or `undefined` if there is no match.\n * @example\n * ```js\n * const contact = await Contacts.getContactByIdAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * if (contact) {\n * console.log(contact);\n * }\n * ```\n */\nexport async function getContactByIdAsync(\n id: string,\n fields?: FieldType[]\n): Promise<Contact | undefined> {\n if (!ExpoContacts.getContactsAsync) {\n throw new UnavailabilityError('Contacts', 'getContactsAsync');\n }\n\n if (id == null) {\n throw new Error('Error: Contacts.getContactByIdAsync: Please pass an ID as a parameter');\n } else {\n const results = await ExpoContacts.getContactsAsync({\n pageSize: 1,\n pageOffset: 0,\n fields,\n id,\n });\n if (results && results.data && results.data.length > 0) {\n return results.data[0];\n }\n }\n return undefined;\n}\n\n/**\n * Creates a new contact and adds it to the system.\n * > **Note**: For Android users, the Expo Go app does not have the required `WRITE_CONTACTS` permission to write to Contacts.\n * > You will need to create a [development build](/develop/development-builds/create-a-build/) and add permission in there manually to use this method.\n * @param contact A contact with the changes you wish to persist. The `id` parameter will not be used.\n * @param containerId @tag-ios The container that will parent the contact.\n * @return A promise that fulfills with ID of the new system contact.\n * @example\n * ```js\n * const contact = {\n * [Contacts.Fields.FirstName]: 'Bird',\n * [Contacts.Fields.LastName]: 'Man',\n * [Contacts.Fields.Company]: 'Young Money',\n * };\n * const contactId = await Contacts.addContactAsync(contact);\n * ```\n */\nexport async function addContactAsync(contact: Contact, containerId?: string): Promise<string> {\n if (!ExpoContacts.addContactAsync) {\n throw new UnavailabilityError('Contacts', 'addContactAsync');\n }\n return await ExpoContacts.addContactAsync(contact, containerId);\n}\n\n/**\n * Mutate the information of an existing contact. Due to an iOS bug, `nonGregorianBirthday` field cannot be modified.\n * > **info** On Android, you can use [`presentFormAsync`](#contactspresentformasynccontactid-contact-formoptions) to make edits to contacts.\n * @param contact A contact object including the wanted changes.\n * @return A promise that fulfills with ID of the updated system contact if mutation was successful.\n * @example\n * ```js\n * const contact = {\n * id: '161A368D-D614-4A15-8DC6-665FDBCFAE55',\n * [Contacts.Fields.FirstName]: 'Drake',\n * [Contacts.Fields.Company]: 'Young Money',\n * };\n * await Contacts.updateContactAsync(contact);\n * ```\n * @platform ios\n */\nexport async function updateContactAsync(contact: Contact): Promise<string> {\n if (!ExpoContacts.updateContactAsync) {\n throw new UnavailabilityError('Contacts', 'updateContactAsync');\n }\n return await ExpoContacts.updateContactAsync(contact);\n}\n\n// @needs-audit\n/**\n * Delete a contact from the system.\n * @param contactId ID of the contact you want to delete.\n * @example\n * ```js\n * await Contacts.removeContactAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n * @platform ios\n */\nexport async function removeContactAsync(contactId: string): Promise<any> {\n if (!ExpoContacts.removeContactAsync) {\n throw new UnavailabilityError('Contacts', 'removeContactAsync');\n }\n return await ExpoContacts.removeContactAsync(contactId);\n}\n\n/**\n * Query a set of contacts and write them to a local URI that can be used for sharing.\n * @param contactQuery Used to query contact you want to write.\n * @return A promise that fulfills with shareable local URI, or `undefined` if there was no match.\n * @example\n * ```js\n * const localUri = await Contacts.writeContactToFileAsync({\n * id: '161A368D-D614-4A15-8DC6-665FDBCFAE55',\n * });\n * Share.share({ url: localUri, message: 'Call me!' });\n * ```\n */\nexport async function writeContactToFileAsync(\n contactQuery: ContactQuery = {}\n): Promise<string | undefined> {\n if (!ExpoContacts.writeContactToFileAsync) {\n throw new UnavailabilityError('Contacts', 'writeContactToFileAsync');\n }\n return await ExpoContacts.writeContactToFileAsync(contactQuery);\n}\n\n// @needs-audit\n/**\n * Present a native form for manipulating contacts.\n * @param contactId The ID of a system contact.\n * @param contact A contact with the changes you want to persist.\n * @param formOptions Options for the native editor.\n * @example\n * ```js\n * await Contacts.presentFormAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n */\nexport async function presentFormAsync(\n contactId?: string | null,\n contact?: Contact | null,\n formOptions: FormOptions = {}\n): Promise<any> {\n if (!ExpoContacts.presentFormAsync) {\n throw new UnavailabilityError('Contacts', 'presentFormAsync');\n }\n if (Platform.OS === 'ios') {\n const adjustedOptions = formOptions;\n\n if (contactId) {\n if (contact) {\n contact = undefined;\n console.log(\n 'Expo.Contacts.presentFormAsync: You should define either a `contact` or a `contactId` but not both.'\n );\n }\n if (adjustedOptions.isNew !== undefined) {\n console.log(\n 'Expo.Contacts.presentFormAsync: `formOptions.isNew` is not supported with `contactId`'\n );\n }\n }\n return await ExpoContacts.presentFormAsync(contactId, contact, adjustedOptions);\n } else {\n return await ExpoContacts.presentFormAsync(contactId, contact, formOptions);\n }\n}\n\n// iOS Only\n\n/**\n * Add a group to a container.\n * @param groupId The group you want to target.\n * @param containerId The container you want to add membership to.\n * @example\n * ```js\n * await Contacts.addExistingGroupToContainerAsync(\n * '161A368D-D614-4A15-8DC6-665FDBCFAE55',\n * '665FDBCFAE55-D614-4A15-8DC6-161A368D'\n * );\n * ```\n * @platform ios\n */\nexport async function addExistingGroupToContainerAsync(\n groupId: string,\n containerId: string\n): Promise<any> {\n if (!ExpoContacts.addExistingGroupToContainerAsync) {\n throw new UnavailabilityError('Contacts', 'addExistingGroupToContainerAsync');\n }\n\n return await ExpoContacts.addExistingGroupToContainerAsync(groupId, containerId);\n}\n\n/**\n * Create a group with a name, and add it to a container. If the container is undefined, the default container will be targeted.\n * @param name Name of the new group.\n * @param containerId The container you to add membership to.\n * @return A promise that fulfills with ID of the new group.\n * @example\n * ```js\n * const groupId = await Contacts.createGroupAsync('Sailor Moon');\n * ```\n * @platform ios\n */\nexport async function createGroupAsync(name?: string, containerId?: string): Promise<string> {\n if (!ExpoContacts.createGroupAsync) {\n throw new UnavailabilityError('Contacts', 'createGroupAsync');\n }\n\n name = name || uuidv4();\n if (!containerId) {\n containerId = await getDefaultContainerIdAsync();\n }\n\n return await ExpoContacts.createGroupAsync(name, containerId);\n}\n\n/**\n * Change the name of an existing group.\n * @param groupName New name for an existing group.\n * @param groupId ID of the group you want to edit.\n * @example\n * ```js\n * await Contacts.updateGroupName('Expo Friends', '161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n * @platform ios\n */\nexport async function updateGroupNameAsync(groupName: string, groupId: string): Promise<any> {\n if (!ExpoContacts.updateGroupNameAsync) {\n throw new UnavailabilityError('Contacts', 'updateGroupNameAsync');\n }\n\n return await ExpoContacts.updateGroupNameAsync(groupName, groupId);\n}\n\n// @needs-audit\n/**\n * Delete a group from the device.\n * @param groupId ID of the group you want to remove.\n * @example\n * ```js\n * await Contacts.removeGroupAsync('161A368D-D614-4A15-8DC6-665FDBCFAE55');\n * ```\n * @platform ios\n */\nexport async function removeGroupAsync(groupId: string): Promise<any> {\n if (!ExpoContacts.removeGroupAsync) {\n throw new UnavailabilityError('Contacts', 'removeGroupAsync');\n }\n\n return await ExpoContacts.removeGroupAsync(groupId);\n}\n\n// @needs-audit\n/**\n * Add a contact as a member to a group. A contact can be a member of multiple groups.\n * @param contactId ID of the contact you want to edit.\n * @param groupId ID for the group you want to add membership to.\n * @example\n * ```js\n * await Contacts.addExistingContactToGroupAsync(\n * '665FDBCFAE55-D614-4A15-8DC6-161A368D',\n * '161A368D-D614-4A15-8DC6-665FDBCFAE55'\n * );\n * ```\n * @platform ios\n */\nexport async function addExistingContactToGroupAsync(\n contactId: string,\n groupId: string\n): Promise<any> {\n if (!ExpoContacts.addExistingContactToGroupAsync) {\n throw new UnavailabilityError('Contacts', 'addExistingContactToGroupAsync');\n }\n\n return await ExpoContacts.addExistingContactToGroupAsync(contactId, groupId);\n}\n\n// @needs-audit\n/**\n * Remove a contact's membership from a given group. This will not delete the contact.\n * @param contactId ID of the contact you want to remove.\n * @param groupId ID for the group you want to remove membership of.\n * @example\n * ```js\n * await Contacts.removeContactFromGroupAsync(\n * '665FDBCFAE55-D614-4A15-8DC6-161A368D',\n * '161A368D-D614-4A15-8DC6-665FDBCFAE55'\n * );\n * ```\n * @platform ios\n */\nexport async function removeContactFromGroupAsync(\n contactId: string,\n groupId: string\n): Promise<any> {\n if (!ExpoContacts.removeContactFromGroupAsync) {\n throw new UnavailabilityError('Contacts', 'removeContactFromGroupAsync');\n }\n\n return await ExpoContacts.removeContactFromGroupAsync(contactId, groupId);\n}\n\n// @needs-audit\n/**\n * Query and return a list of system groups.\n * @param groupQuery Information regarding which groups you want to get.\n * @example\n * ```js\n * const groups = await Contacts.getGroupsAsync({ groupName: 'sailor moon' });\n * const allGroups = await Contacts.getGroupsAsync({});\n * ```\n * @return A promise that fulfills with array of groups that fit the query.\n * @platform ios\n */\nexport async function getGroupsAsync(groupQuery: GroupQuery): Promise<Group[]> {\n if (!ExpoContacts.getGroupsAsync) {\n throw new UnavailabilityError('Contacts', 'getGroupsAsync');\n }\n\n return await ExpoContacts.getGroupsAsync(groupQuery);\n}\n\n/**\n * Get the default container's ID.\n * @return A promise that fulfills with default container ID.\n * @example\n * ```js\n * const containerId = await Contacts.getDefaultContainerIdAsync();\n * ```\n * @platform ios\n */\nexport async function getDefaultContainerIdAsync(): Promise<string> {\n if (!ExpoContacts.getDefaultContainerIdentifierAsync) {\n throw new UnavailabilityError('Contacts', 'getDefaultContainerIdentifierAsync');\n }\n\n return await ExpoContacts.getDefaultContainerIdentifierAsync();\n}\n\n/**\n * Query a list of system containers.\n * @param containerQuery Information used to gather containers.\n * @return A promise that fulfills with array of containers that fit the query.\n * @example\n * ```js\n * const allContainers = await Contacts.getContainersAsync({\n * contactId: '665FDBCFAE55-D614-4A15-8DC6-161A368D',\n * });\n * ```\n * @platform ios\n */\nexport async function getContainersAsync(containerQuery: ContainerQuery): Promise<Container[]> {\n if (!ExpoContacts.getContainersAsync) {\n throw new UnavailabilityError('Contacts', 'getContainersAsync');\n }\n\n return await ExpoContacts.getContainersAsync(containerQuery);\n}\n\n/**\n * Checks user's permissions for accessing contacts data.\n * @return A promise that resolves to a [PermissionResponse](#permissionresponse) object.\n */\nexport async function getPermissionsAsync(): Promise<PermissionResponse> {\n if (!ExpoContacts.getPermissionsAsync) {\n throw new UnavailabilityError('Contacts', 'getPermissionsAsync');\n }\n\n return await ExpoContacts.getPermissionsAsync();\n}\n\n/**\n * Asks the user to grant permissions for accessing contacts data.\n * @return A promise that resolves to a [PermissionResponse](#permissionresponse) object.\n */\nexport async function requestPermissionsAsync(): Promise<PermissionResponse> {\n if (!ExpoContacts.requestPermissionsAsync) {\n throw new UnavailabilityError('Contacts', 'requestPermissionsAsync');\n }\n\n return await ExpoContacts.requestPermissionsAsync();\n}\n\n/**\n * Possible fields to retrieve for a contact.\n */\nexport enum Fields {\n ID = 'id',\n ContactType = 'contactType',\n Name = 'name',\n FirstName = 'firstName',\n MiddleName = 'middleName',\n LastName = 'lastName',\n MaidenName = 'maidenName',\n NamePrefix = 'namePrefix',\n NameSuffix = 'nameSuffix',\n Nickname = 'nickname',\n PhoneticFirstName = 'phoneticFirstName',\n PhoneticMiddleName = 'phoneticMiddleName',\n PhoneticLastName = 'phoneticLastName',\n Birthday = 'birthday',\n /**\n * @platform ios\n */\n NonGregorianBirthday = 'nonGregorianBirthday',\n Emails = 'emails',\n PhoneNumbers = 'phoneNumbers',\n Addresses = 'addresses',\n /**\n * @platform ios\n */\n SocialProfiles = 'socialProfiles',\n InstantMessageAddresses = 'instantMessageAddresses',\n UrlAddresses = 'urlAddresses',\n Company = 'company',\n JobTitle = 'jobTitle',\n Department = 'department',\n ImageAvailable = 'imageAvailable',\n Image = 'image',\n RawImage = 'rawImage',\n ExtraNames = 'extraNames',\n Note = 'note',\n Dates = 'dates',\n Relationships = 'relationships',\n}\n\n/**\n * This format denotes the common calendar format used to specify how a date is calculated in `nonGregorianBirthday` fields.\n */\nexport enum CalendarFormats {\n Gregorian = 'gregorian',\n /**\n * @platform ios\n */\n Buddhist = 'buddhist',\n /**\n * @platform ios\n */\n Chinese = 'chinese',\n /**\n * @platform ios\n */\n Coptic = 'coptic',\n /**\n * @platform ios\n */\n EthiopicAmeteMihret = 'ethiopicAmeteMihret',\n /**\n * @platform ios\n */\n EthiopicAmeteAlem = 'ethiopicAmeteAlem',\n /**\n * @platform ios\n */\n Hebrew = 'hebrew',\n /**\n * @platform ios\n */\n ISO8601 = 'iso8601',\n /**\n * @platform ios\n */\n Indian = 'indian',\n /**\n * @platform ios\n */\n Islamic = 'islamic',\n /**\n * @platform ios\n */\n IslamicCivil = 'islamicCivil',\n /**\n * @platform ios\n */\n Japanese = 'japanese',\n /**\n * @platform ios\n */\n Persian = 'persian',\n /**\n * @platform ios\n */\n RepublicOfChina = 'republicOfChina',\n /**\n * @platform ios\n */\n IslamicTabular = 'islamicTabular',\n /**\n * @platform ios\n */\n IslamicUmmAlQura = 'islamicUmmAlQura',\n}\n\n/**\n * @platform ios\n */\nexport enum ContainerTypes {\n /**\n * A local non-iCloud container.\n */\n Local = 'local',\n /**\n * In association with email server.\n */\n Exchange = 'exchange',\n /**\n * With cardDAV protocol used for sharing.\n */\n CardDAV = 'cardDAV',\n /**\n * Unknown container.\n */\n Unassigned = 'unassigned',\n}\n\nexport enum SortTypes {\n /**\n * The user default method of sorting.\n * @platform android\n */\n UserDefault = 'userDefault',\n /**\n * Sort by first name in ascending order.\n */\n FirstName = 'firstName',\n /**\n * Sort by last name in ascending order.\n */\n LastName = 'lastName',\n /**\n * No sorting should be applied.\n */\n None = 'none',\n}\n\nexport enum ContactTypes {\n /**\n * Contact is a human.\n */\n Person = 'person',\n /**\n * Contact is group or company.\n */\n Company = 'company',\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-contacts",
3
- "version": "12.2.0",
3
+ "version": "12.3.0",
4
4
  "description": "Provides access to the phone's system contacts.",
5
5
  "main": "build/Contacts.js",
6
6
  "types": "build/Contacts.d.ts",
@@ -43,5 +43,5 @@
43
43
  "peerDependencies": {
44
44
  "expo": "*"
45
45
  },
46
- "gitHead": "fa5ecca8251986b9f197cc14074eec0ab6dfb6db"
46
+ "gitHead": "663654577a7068c641b5e9474efbc502e3f334ea"
47
47
  }
package/src/Contacts.ts CHANGED
@@ -1,6 +1,10 @@
1
- import { PermissionResponse, PermissionStatus, UnavailabilityError } from 'expo-modules-core';
1
+ import {
2
+ PermissionResponse,
3
+ PermissionStatus,
4
+ UnavailabilityError,
5
+ uuidv4,
6
+ } from 'expo-modules-core';
2
7
  import { Platform, Share } from 'react-native';
3
- import { v4 as uuidv4 } from 'uuid';
4
8
 
5
9
  import ExpoContacts from './ExpoContacts';
6
10