expo-calendar 58.0.1 → 58.0.3
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 +12 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/calendar/next/mappers/ReminderMapper.kt +10 -5
- package/build/Calendar.d.ts +14 -6
- package/build/Calendar.js +14 -6
- package/build/Calendar.js.map +1 -1
- package/build/ExpoCalendar.types.d.ts +4 -0
- package/build/ExpoCalendar.types.js.map +1 -1
- package/expo-module.config.json +1 -1
- package/ios/Next/CalendarAccessGuard.swift +7 -7
- package/ios/Next/CalendarNextModule.swift +36 -26
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{58.0.1/expo.modules.calendar-58.0.1-sources.jar → 58.0.3/expo.modules.calendar-58.0.3-sources.jar} +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3-sources.jar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3-sources.jar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3-sources.jar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3-sources.jar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{58.0.1/expo.modules.calendar-58.0.1.aar → 58.0.3/expo.modules.calendar-58.0.3.aar} +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.aar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.aar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.aar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.aar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{58.0.1/expo.modules.calendar-58.0.1.module → 58.0.3/expo.modules.calendar-58.0.3.module} +23 -23
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{58.0.1/expo.modules.calendar-58.0.1.pom → 58.0.3/expo.modules.calendar-58.0.3.pom} +2 -2
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.3/expo.modules.calendar-58.0.3.pom.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml +4 -4
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha512 +1 -1
- package/package.json +3 -3
- package/src/Calendar.ts +14 -6
- package/src/ExpoCalendar.types.ts +4 -0
- package/.npmignore +0 -24
- package/.tsbuildinfo +0 -1
- package/android/.gitignore +0 -261
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1-sources.jar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1-sources.jar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1-sources.jar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1-sources.jar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.aar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.aar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.aar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.aar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.calendar/58.0.1/expo.modules.calendar-58.0.1.pom.sha512 +0 -1
- package/plugin/.tsbuildinfo +0 -1
- package/plugin/tsconfig.json +0 -10
- package/plugin/tsconfig.tsbuildinfo +0 -1
- package/tsconfig.all.json +0 -11
- package/tsconfig.json +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 58.0.3 — 2026-09-25
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- [Android] Fix the sign of alarm `relativeOffset` in the `next` API so that negative values fire before the event start, matching iOS and the legacy API.
|
|
18
|
+
|
|
19
|
+
## 58.0.2 — 2026-09-16
|
|
20
|
+
|
|
21
|
+
### 🐛 Bug fixes
|
|
22
|
+
|
|
23
|
+
- [iOS] Allow `getDefaultCalendarSync`, `getCalendars` and `ExpoCalendar.get` to work with write-only calendar access. ([#48186](https://github.com/expo/expo/pull/48186) by [@Wenszel](https://github.com/Wenszel))
|
|
24
|
+
|
|
13
25
|
## 58.0.1 — 2026-09-15
|
|
14
26
|
|
|
15
27
|
### 🛠 Breaking changes
|
package/android/build.gradle
CHANGED
|
@@ -7,14 +7,19 @@ import expo.modules.calendar.next.records.AlarmMethod as RecordAlarmMethod
|
|
|
7
7
|
import expo.modules.calendar.next.records.AlarmRecord
|
|
8
8
|
|
|
9
9
|
class ReminderMapper {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
// `relativeOffset` is negative for an alarm before the event start,
|
|
11
|
+
// while `CalendarContract.Reminders.MINUTES` is positive for a reminder before it.
|
|
12
|
+
fun toDomain(record: AlarmRecord): ReminderInput {
|
|
13
|
+
val relativeOffset = record.relativeOffset
|
|
13
14
|
?: throw IllegalArgumentException("AlarmRecord must have relativeOffset defined")
|
|
14
|
-
|
|
15
|
+
return ReminderInput(
|
|
16
|
+
method = record.method?.toDomain(),
|
|
17
|
+
minutes = -relativeOffset
|
|
18
|
+
)
|
|
19
|
+
}
|
|
15
20
|
|
|
16
21
|
fun toRecord(entity: ReminderEntity) = AlarmRecord(
|
|
17
|
-
relativeOffset = entity.minutes,
|
|
22
|
+
relativeOffset = -entity.minutes,
|
|
18
23
|
method = entity.method?.toRecord()
|
|
19
24
|
)
|
|
20
25
|
|
package/build/Calendar.d.ts
CHANGED
|
@@ -46,6 +46,10 @@ export declare class ExpoCalendar extends InternalExpoCalendar.ExpoCalendar {
|
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
48
|
* Gets an instance of the default calendar object.
|
|
49
|
+
*
|
|
50
|
+
* > **iOS 17+:** With write-only calendar access, this returns EventKit's virtual calendar,
|
|
51
|
+
* > which can be used to create events but does not expose existing calendar data.
|
|
52
|
+
*
|
|
49
53
|
* > **Android:** This function is not available on Android. Android does not expose a single
|
|
50
54
|
* > system-managed default calendar. Use `getCalendars()` and choose an appropriate writable
|
|
51
55
|
* > calendar for your app; `isPrimary` can help identify per-account primary calendars.
|
|
@@ -54,12 +58,16 @@ export declare class ExpoCalendar extends InternalExpoCalendar.ExpoCalendar {
|
|
|
54
58
|
*/
|
|
55
59
|
export declare function getDefaultCalendarSync(): ExpoCalendar;
|
|
56
60
|
/**
|
|
57
|
-
* Gets an array of [`ExpoCalendar`](#expocalendar) shared objects with details about the
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* >
|
|
62
|
-
*
|
|
61
|
+
* Gets an array of [`ExpoCalendar`](#expocalendar) shared objects with details about the
|
|
62
|
+
* calendars available to the app.
|
|
63
|
+
*
|
|
64
|
+
* > **iOS 17+:** With write-only calendar access, requesting `EntityTypes.EVENT` returns a
|
|
65
|
+
* > single virtual calendar, which can be used to create events but does not expose the user's
|
|
66
|
+
* > real calendars.
|
|
67
|
+
*
|
|
68
|
+
* @param entityType __iOS Only.__ Not required, but if defined, filters the returned calendars to a specific [entity type](#entitytypes).
|
|
69
|
+
* > **Note:** If not defined, both calendar (write-only is enough) and reminders permissions are required.
|
|
70
|
+
* @return An array of [`ExpoCalendar`](#expocalendar) shared objects matching the provided entity type, if provided.
|
|
63
71
|
*/
|
|
64
72
|
export declare function getCalendars(entityType?: EntityTypes): Promise<ExpoCalendar[]>;
|
|
65
73
|
/**
|
package/build/Calendar.js
CHANGED
|
@@ -145,6 +145,10 @@ import { stringifyDateValues, stringifyIfDate, getNullableDetailsFields } from '
|
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
147
|
* Gets an instance of the default calendar object.
|
|
148
|
+
*
|
|
149
|
+
* > **iOS 17+:** With write-only calendar access, this returns EventKit's virtual calendar,
|
|
150
|
+
* > which can be used to create events but does not expose existing calendar data.
|
|
151
|
+
*
|
|
148
152
|
* > **Android:** This function is not available on Android. Android does not expose a single
|
|
149
153
|
* > system-managed default calendar. Use `getCalendars()` and choose an appropriate writable
|
|
150
154
|
* > calendar for your app; `isPrimary` can help identify per-account primary calendars.
|
|
@@ -159,12 +163,16 @@ import { stringifyDateValues, stringifyIfDate, getNullableDetailsFields } from '
|
|
|
159
163
|
return defaultCalendar;
|
|
160
164
|
}
|
|
161
165
|
/**
|
|
162
|
-
* Gets an array of [`ExpoCalendar`](#expocalendar) shared objects with details about the
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* >
|
|
167
|
-
*
|
|
166
|
+
* Gets an array of [`ExpoCalendar`](#expocalendar) shared objects with details about the
|
|
167
|
+
* calendars available to the app.
|
|
168
|
+
*
|
|
169
|
+
* > **iOS 17+:** With write-only calendar access, requesting `EntityTypes.EVENT` returns a
|
|
170
|
+
* > single virtual calendar, which can be used to create events but does not expose the user's
|
|
171
|
+
* > real calendars.
|
|
172
|
+
*
|
|
173
|
+
* @param entityType __iOS Only.__ Not required, but if defined, filters the returned calendars to a specific [entity type](#entitytypes).
|
|
174
|
+
* > **Note:** If not defined, both calendar (write-only is enough) and reminders permissions are required.
|
|
175
|
+
* @return An array of [`ExpoCalendar`](#expocalendar) shared objects matching the provided entity type, if provided.
|
|
168
176
|
*/ export async function getCalendars(entityType) {
|
|
169
177
|
if (!InternalExpoCalendar.getCalendars) {
|
|
170
178
|
throw new UnavailabilityError('Calendar', 'getCalendars');
|
package/build/Calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.ts"],"sourcesContent":[null],"names":["createPermissionHook","PermissionStatus","UnavailabilityError","Platform","processColor","InternalExpoCalendar","stringifyDateValues","stringifyIfDate","getNullableDetailsFields","ExpoCalendarAttendee","update","details","nullableDetailsFields","delete","ExpoCalendarEvent","getOccurrenceSync","recurringEventOptions","result","Object","setPrototypeOf","prototype","getAttendees","attendees","map","attendee","createAttendee","newAttendee","get","eventId","event","getEventById","ExpoCalendarReminder","OS","reminderId","reminder","getReminderById","ExpoCalendar","createEvent","newEvent","createReminder","newReminder","listEvents","startDate","endDate","Error","events","listReminders","status","reminders","color","undefined","newDetails","addEventWithForm","options","calendarId","calendar","getCalendarById","getDefaultCalendarSync","defaultCalendar","getCalendars","entityType","calendars","createCalendar","id","createdCalendar","presentPicker","calendarIds","Array","isArray","c","requestCalendarPermissions","getCalendarPermissions","requestRemindersPermissions","getRemindersPermissions","getSourcesSync","AlarmMethod","AttendeeRole","AttendeeStatus","AttendeeType","Availability","CalendarAccessLevel","CalendarDialogResultActions","CalendarType","DayOfTheWeek","EntityTypes","EventAccessLevel","EventStatus","Frequency","MonthOfTheYear","ReminderStatus","SourceType","useCalendarPermissions","getMethod","writeOnly","requestMethod","useRemindersPermissions","response","canAskAgain","expires","granted","DENIED","createRemindersPermissionHook"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["Calendar.ts"],"sourcesContent":[null],"names":["createPermissionHook","PermissionStatus","UnavailabilityError","Platform","processColor","InternalExpoCalendar","stringifyDateValues","stringifyIfDate","getNullableDetailsFields","ExpoCalendarAttendee","update","details","nullableDetailsFields","delete","ExpoCalendarEvent","getOccurrenceSync","recurringEventOptions","result","Object","setPrototypeOf","prototype","getAttendees","attendees","map","attendee","createAttendee","newAttendee","get","eventId","event","getEventById","ExpoCalendarReminder","OS","reminderId","reminder","getReminderById","ExpoCalendar","createEvent","newEvent","createReminder","newReminder","listEvents","startDate","endDate","Error","events","listReminders","status","reminders","color","undefined","newDetails","addEventWithForm","options","calendarId","calendar","getCalendarById","getDefaultCalendarSync","defaultCalendar","getCalendars","entityType","calendars","createCalendar","id","createdCalendar","presentPicker","calendarIds","Array","isArray","c","requestCalendarPermissions","getCalendarPermissions","requestRemindersPermissions","getRemindersPermissions","getSourcesSync","AlarmMethod","AttendeeRole","AttendeeStatus","AttendeeType","Availability","CalendarAccessLevel","CalendarDialogResultActions","CalendarType","DayOfTheWeek","EntityTypes","EventAccessLevel","EventStatus","Frequency","MonthOfTheYear","ReminderStatus","SourceType","useCalendarPermissions","getMethod","writeOnly","requestMethod","useRemindersPermissions","response","canAskAgain","expires","granted","DENIED","createRemindersPermissionHook"],"mappings":"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"}
|
|
@@ -156,6 +156,10 @@ export declare class ExpoCalendar {
|
|
|
156
156
|
delete(): Promise<void>;
|
|
157
157
|
/**
|
|
158
158
|
* Gets a calendar by its ID. Throws an error if the calendar with the given ID does not exist.
|
|
159
|
+
*
|
|
160
|
+
* > **iOS 17+:** With write-only calendar access, only the virtual calendar's ID can be
|
|
161
|
+
* > resolved - real calendars require full calendar access.
|
|
162
|
+
*
|
|
159
163
|
* @param calendarId The ID of the calendar to get.
|
|
160
164
|
* @returns An [`ExpoCalendar`](#expocalendar) object representing the calendar.
|
|
161
165
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ExpoCalendar.types.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["ExpoCalendar.types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAwgBA;;;CAGC,GACD,WAoDC"}
|
package/expo-module.config.json
CHANGED
|
@@ -30,31 +30,31 @@ public class CalendarAccessGuard {
|
|
|
30
30
|
self.permittedEntities = permittedEntities
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
public func
|
|
34
|
-
try self.
|
|
33
|
+
public func ensureCalendarFullAccess() throws {
|
|
34
|
+
try self.ensurePermissions(
|
|
35
35
|
entity: .event,
|
|
36
36
|
requester: CalendarNextPermissionsRequester.self,
|
|
37
37
|
permissionName: "CALENDAR"
|
|
38
38
|
)
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
public func
|
|
42
|
-
try self.
|
|
41
|
+
public func ensureCalendarWriteOnlyOrFullAccess() throws {
|
|
42
|
+
try self.ensurePermissions(
|
|
43
43
|
entity: .event,
|
|
44
44
|
requester: CalendarWriteOnlyNextPermissionsRequester.self,
|
|
45
45
|
permissionName: "CALENDARWRITEONLY"
|
|
46
46
|
)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
public func
|
|
50
|
-
try self.
|
|
49
|
+
public func ensureRemindersAccess() throws {
|
|
50
|
+
try self.ensurePermissions(
|
|
51
51
|
entity: .reminder,
|
|
52
52
|
requester: RemindersNextPermissionRequester.self,
|
|
53
53
|
permissionName: "REMINDERS"
|
|
54
54
|
)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
private func
|
|
57
|
+
private func ensurePermissions(
|
|
58
58
|
entity: EKEntityType,
|
|
59
59
|
requester: EXPermissionsRequester.Type,
|
|
60
60
|
permissionName: String
|
|
@@ -29,7 +29,9 @@ public final class CalendarNextModule: Module {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
Function("getDefaultCalendarSync") { () -> ExpoCalendar in
|
|
32
|
-
|
|
32
|
+
// With write-only permissions granted, `eventStore.defaultCalendarForNewEvents` is a virtual calendar:
|
|
33
|
+
// https://developer.apple.com/documentation/EventKit/accessing-the-event-store#Use-EventKit-with-write-only-calendar-access
|
|
34
|
+
try calendarAccessGuard?.ensureCalendarWriteOnlyOrFullAccess()
|
|
33
35
|
guard let defaultCalendar = eventStore.defaultCalendarForNewEvents else {
|
|
34
36
|
throw DefaultCalendarNotFoundException()
|
|
35
37
|
}
|
|
@@ -40,21 +42,24 @@ public final class CalendarNextModule: Module {
|
|
|
40
42
|
let calendars: [EKCalendar]
|
|
41
43
|
switch type {
|
|
42
44
|
case nil:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
// With write-only permissions granted, `eventStore.calendars` returns a single virtual calendar:
|
|
46
|
+
// https://developer.apple.com/documentation/EventKit/accessing-the-event-store#Use-EventKit-with-write-only-calendar-access
|
|
47
|
+
try calendarAccessGuard?.ensureCalendarWriteOnlyOrFullAccess()
|
|
48
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
45
49
|
calendars = eventStore.calendars(for: .event) + eventStore.calendars(for: .reminder)
|
|
46
50
|
case .event:
|
|
47
|
-
try calendarAccessGuard?.
|
|
51
|
+
try calendarAccessGuard?.ensureCalendarWriteOnlyOrFullAccess()
|
|
48
52
|
calendars = eventStore.calendars(for: .event)
|
|
49
53
|
case .reminder:
|
|
50
|
-
try calendarAccessGuard?.
|
|
54
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
51
55
|
calendars = eventStore.calendars(for: .reminder)
|
|
52
56
|
}
|
|
53
57
|
return calendars.map { ExpoCalendar(calendar: $0) }
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
AsyncFunction("getCalendarById") { (calendarId: String) -> ExpoCalendar in
|
|
57
|
-
|
|
61
|
+
// With write-only access, this can resolve the virtual calendar's identifier.
|
|
62
|
+
try calendarAccessGuard?.ensureCalendarWriteOnlyOrFullAccess()
|
|
58
63
|
guard let calendar = eventStore.calendar(withIdentifier: calendarId) else {
|
|
59
64
|
throw CalendarIdNotFoundException(calendarId)
|
|
60
65
|
}
|
|
@@ -62,6 +67,7 @@ public final class CalendarNextModule: Module {
|
|
|
62
67
|
}
|
|
63
68
|
|
|
64
69
|
AsyncFunction("presentPicker") { (promise: Promise) in
|
|
70
|
+
// No access guard here on purpose. The system picker itself shows a message when permissions aren't granted.
|
|
65
71
|
guard let currentVc = appContext?.utilities?.currentViewController() else {
|
|
66
72
|
throw MissingCurrentViewControllerException()
|
|
67
73
|
}
|
|
@@ -88,10 +94,10 @@ public final class CalendarNextModule: Module {
|
|
|
88
94
|
let calendar: EKCalendar
|
|
89
95
|
switch calendarRecord.entityType {
|
|
90
96
|
case .event:
|
|
91
|
-
try calendarAccessGuard?.
|
|
97
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
92
98
|
calendar = EKCalendar(for: .event, eventStore: eventStore)
|
|
93
99
|
case .reminder:
|
|
94
|
-
try calendarAccessGuard?.
|
|
100
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
95
101
|
calendar = EKCalendar(for: .reminder, eventStore: eventStore)
|
|
96
102
|
case .none:
|
|
97
103
|
throw EntityNotSupportedException(calendarRecord.entityType?.rawValue)
|
|
@@ -122,7 +128,9 @@ public final class CalendarNextModule: Module {
|
|
|
122
128
|
startDateStr: Either<String, Double>,
|
|
123
129
|
endDateStr: Either<String, Double>,
|
|
124
130
|
promise: Promise) throws in
|
|
125
|
-
|
|
131
|
+
// The default EventKit behavior is to return an empty array if write-only permissions are granted.
|
|
132
|
+
// Ensuring full access makes the function throw instead of returning an ambiguous empty array.
|
|
133
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
126
134
|
|
|
127
135
|
let startDate = try requireDate(from: startDateStr)
|
|
128
136
|
let endDate = try requireDate(from: endDateStr)
|
|
@@ -147,7 +155,7 @@ public final class CalendarNextModule: Module {
|
|
|
147
155
|
|
|
148
156
|
AsyncFunction("getEventById") {
|
|
149
157
|
(eventId: String) -> ExpoCalendarEvent in
|
|
150
|
-
try calendarAccessGuard?.
|
|
158
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
151
159
|
guard let event = eventStore.event(withIdentifier: eventId) else {
|
|
152
160
|
throw EventNotFoundException(eventId)
|
|
153
161
|
}
|
|
@@ -156,7 +164,7 @@ public final class CalendarNextModule: Module {
|
|
|
156
164
|
|
|
157
165
|
AsyncFunction("getReminderById") {
|
|
158
166
|
(reminderId: String) -> ExpoCalendarReminder in
|
|
159
|
-
try calendarAccessGuard?.
|
|
167
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
160
168
|
guard let reminder = eventStore.calendarItem(withIdentifier: reminderId) as? EKReminder else {
|
|
161
169
|
throw ReminderNotFoundException(reminderId)
|
|
162
170
|
}
|
|
@@ -260,7 +268,9 @@ public final class CalendarNextModule: Module {
|
|
|
260
268
|
startDateStr: Either<String, Double>,
|
|
261
269
|
endDateStr: Either<String, Double>,
|
|
262
270
|
promise: Promise) throws in
|
|
263
|
-
|
|
271
|
+
// The default EventKit behavior is to return an empty array if write-only permissions are granted.
|
|
272
|
+
// Ensuring full access makes the function throw instead of returning an ambiguous empty array.
|
|
273
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
264
274
|
let startDate = try requireDate(from: startDateStr)
|
|
265
275
|
let endDate = try requireDate(from: endDateStr)
|
|
266
276
|
promise.resolve(try expoCalendar.listEvents(startDate: startDate, endDate: endDate))
|
|
@@ -272,7 +282,7 @@ public final class CalendarNextModule: Module {
|
|
|
272
282
|
endDateStr: String?,
|
|
273
283
|
status: String?,
|
|
274
284
|
promise: Promise) throws in
|
|
275
|
-
try calendarAccessGuard?.
|
|
285
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
276
286
|
|
|
277
287
|
var startDate: Date?
|
|
278
288
|
var endDate: Date?
|
|
@@ -290,7 +300,7 @@ public final class CalendarNextModule: Module {
|
|
|
290
300
|
|
|
291
301
|
// swiftlint:enable closure_parameter_position
|
|
292
302
|
AsyncFunction("createEvent") { (expoCalendar: ExpoCalendar, eventRecord: EventNext, options: RecurringEventOptions?) -> ExpoCalendarEvent in
|
|
293
|
-
try calendarAccessGuard?.
|
|
303
|
+
try calendarAccessGuard?.ensureCalendarWriteOnlyOrFullAccess()
|
|
294
304
|
|
|
295
305
|
guard let calendar = expoCalendar.calendar else {
|
|
296
306
|
throw CalendarNoLongerExistsException()
|
|
@@ -312,7 +322,7 @@ public final class CalendarNextModule: Module {
|
|
|
312
322
|
}
|
|
313
323
|
|
|
314
324
|
AsyncFunction("createReminder") { (expoCalendar: ExpoCalendar, reminderRecord: Reminder, _: RecurringEventOptions?) -> ExpoCalendarReminder in
|
|
315
|
-
try calendarAccessGuard?.
|
|
325
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
316
326
|
|
|
317
327
|
guard let calendarInstance = expoCalendar.calendar else {
|
|
318
328
|
throw CalendarNoLongerExistsException()
|
|
@@ -334,7 +344,7 @@ public final class CalendarNextModule: Module {
|
|
|
334
344
|
}
|
|
335
345
|
|
|
336
346
|
AsyncFunction("addEventWithForm") { (expoCalendar: ExpoCalendar, options: AddEventWithFormOptions?, promise: Promise) in
|
|
337
|
-
try calendarAccessGuard?.
|
|
347
|
+
try calendarAccessGuard?.ensureCalendarWriteOnlyOrFullAccess()
|
|
338
348
|
|
|
339
349
|
let event = EKEvent(eventStore: eventStore)
|
|
340
350
|
event.calendar = expoCalendar.calendar
|
|
@@ -364,12 +374,12 @@ public final class CalendarNextModule: Module {
|
|
|
364
374
|
}.runOnQueue(.main)
|
|
365
375
|
|
|
366
376
|
AsyncFunction("update") { (expoCalendar: ExpoCalendar, calendarRecord: CalendarRecordNext) throws in
|
|
367
|
-
try calendarAccessGuard?.
|
|
377
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
368
378
|
try expoCalendar.update(calendarRecord: calendarRecord)
|
|
369
379
|
}
|
|
370
380
|
|
|
371
381
|
AsyncFunction("delete") { (expoCalendar: ExpoCalendar) in
|
|
372
|
-
try calendarAccessGuard?.
|
|
382
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
373
383
|
try expoCalendar.delete()
|
|
374
384
|
}
|
|
375
385
|
}
|
|
@@ -468,7 +478,7 @@ public final class CalendarNextModule: Module {
|
|
|
468
478
|
}
|
|
469
479
|
|
|
470
480
|
AsyncFunction("openInCalendar") { (expoEvent: ExpoCalendarEvent, options: OpenInCalendarOptions?, promise: Promise) in
|
|
471
|
-
try calendarAccessGuard?.
|
|
481
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
472
482
|
|
|
473
483
|
let startDate = parse(date: options?.instanceStartDate)
|
|
474
484
|
guard let calendarEvent = expoEvent.getOccurrence(startDate: startDate) else {
|
|
@@ -503,7 +513,7 @@ public final class CalendarNextModule: Module {
|
|
|
503
513
|
}.runOnQueue(.main)
|
|
504
514
|
|
|
505
515
|
AsyncFunction("editInCalendar") { (expoEvent: ExpoCalendarEvent, _: OpenInCalendarOptions?, promise: Promise) in
|
|
506
|
-
try calendarAccessGuard?.
|
|
516
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
507
517
|
|
|
508
518
|
guard let event = expoEvent.event else {
|
|
509
519
|
throw ItemNoLongerExistsException()
|
|
@@ -513,7 +523,7 @@ public final class CalendarNextModule: Module {
|
|
|
513
523
|
}.runOnQueue(.main)
|
|
514
524
|
|
|
515
525
|
Function("getOccurrenceSync") { (expoEvent: ExpoCalendarEvent, options: RecurringEventOptions?) throws in
|
|
516
|
-
try calendarAccessGuard?.
|
|
526
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
517
527
|
guard let ekEvent = try expoEvent.getOccurrence(options: options) else {
|
|
518
528
|
throw EventNotFoundException(options?.instanceStartDate ?? "")
|
|
519
529
|
}
|
|
@@ -522,17 +532,17 @@ public final class CalendarNextModule: Module {
|
|
|
522
532
|
}
|
|
523
533
|
|
|
524
534
|
AsyncFunction("getAttendees") { (expoEvent: ExpoCalendarEvent) throws in
|
|
525
|
-
try calendarAccessGuard?.
|
|
535
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
526
536
|
return try expoEvent.getAttendees()
|
|
527
537
|
}
|
|
528
538
|
|
|
529
539
|
AsyncFunction("update") { (expoEvent: ExpoCalendarEvent, eventRecord: EventNext, nullableFields: [String]?) throws in
|
|
530
|
-
try calendarAccessGuard?.
|
|
540
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
531
541
|
try expoEvent.update(eventRecord: eventRecord, nullableFields: nullableFields)
|
|
532
542
|
}
|
|
533
543
|
|
|
534
544
|
AsyncFunction("delete") { (expoEvent: ExpoCalendarEvent) in
|
|
535
|
-
try calendarAccessGuard?.
|
|
545
|
+
try calendarAccessGuard?.ensureCalendarFullAccess()
|
|
536
546
|
try expoEvent.delete()
|
|
537
547
|
}
|
|
538
548
|
}
|
|
@@ -633,12 +643,12 @@ public final class CalendarNextModule: Module {
|
|
|
633
643
|
}
|
|
634
644
|
|
|
635
645
|
AsyncFunction("update") { (expoReminder: ExpoCalendarReminder, reminderRecord: Reminder, nullableFields: [String]?) in
|
|
636
|
-
try calendarAccessGuard?.
|
|
646
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
637
647
|
try expoReminder.update(reminderRecord: reminderRecord, nullableFields: nullableFields)
|
|
638
648
|
}
|
|
639
649
|
|
|
640
650
|
AsyncFunction("delete") { (expoReminder: ExpoCalendarReminder) in
|
|
641
|
-
try calendarAccessGuard?.
|
|
651
|
+
try calendarAccessGuard?.ensureRemindersAccess()
|
|
642
652
|
try expoReminder.delete()
|
|
643
653
|
}
|
|
644
654
|
}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
62a58753ecfdda006b957ab52ebba05a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
99d6ffa1670b2ceb63f92201a34d6c3ba2eac634
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ac1c2995f7ced90ee877c8b1cb5702e5b997a081d9f832c6dab69a74dbf8c79d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
29fe517a1b67b720ee0e5c9ee188d092cf754df40680b04a24a7c1093e90e39a196522520c7128aecce699b0a0e2ff65bf89305ad7a432a30f70111a0369e9d0
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
896023b2eaac6328c9fcaa865a27cfd2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
95a86cf2c24d554788c8da9f5bc85b6af7ddcb26
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a340ea80524bd3cac1fd88f9b3164f5949a6460348ee4abe9057412bab47cc75
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
30a0529c41b19779de4a790b9242684f896e229bdf2b9de89464b4e428c005e797c76c797a136dc05f5244a4cb6dd4dee6b26691ecae8290dad423215623342b
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "host.exp.exponent",
|
|
5
5
|
"module": "expo.modules.calendar",
|
|
6
|
-
"version": "58.0.
|
|
6
|
+
"version": "58.0.3",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
|
-
"name": "expo.modules.calendar-58.0.
|
|
28
|
-
"url": "expo.modules.calendar-58.0.
|
|
29
|
-
"size":
|
|
30
|
-
"sha512": "
|
|
31
|
-
"sha256": "
|
|
32
|
-
"sha1": "
|
|
33
|
-
"md5": "
|
|
27
|
+
"name": "expo.modules.calendar-58.0.3.aar",
|
|
28
|
+
"url": "expo.modules.calendar-58.0.3.aar",
|
|
29
|
+
"size": 770684,
|
|
30
|
+
"sha512": "30a0529c41b19779de4a790b9242684f896e229bdf2b9de89464b4e428c005e797c76c797a136dc05f5244a4cb6dd4dee6b26691ecae8290dad423215623342b",
|
|
31
|
+
"sha256": "a340ea80524bd3cac1fd88f9b3164f5949a6460348ee4abe9057412bab47cc75",
|
|
32
|
+
"sha1": "95a86cf2c24d554788c8da9f5bc85b6af7ddcb26",
|
|
33
|
+
"md5": "896023b2eaac6328c9fcaa865a27cfd2"
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -75,19 +75,19 @@
|
|
|
75
75
|
"group": "io.github.expo.pika",
|
|
76
76
|
"module": "pika-api",
|
|
77
77
|
"version": {
|
|
78
|
-
"requires": "1.
|
|
78
|
+
"requires": "1.1.0"
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
],
|
|
82
82
|
"files": [
|
|
83
83
|
{
|
|
84
|
-
"name": "expo.modules.calendar-58.0.
|
|
85
|
-
"url": "expo.modules.calendar-58.0.
|
|
86
|
-
"size":
|
|
87
|
-
"sha512": "
|
|
88
|
-
"sha256": "
|
|
89
|
-
"sha1": "
|
|
90
|
-
"md5": "
|
|
84
|
+
"name": "expo.modules.calendar-58.0.3.aar",
|
|
85
|
+
"url": "expo.modules.calendar-58.0.3.aar",
|
|
86
|
+
"size": 770684,
|
|
87
|
+
"sha512": "30a0529c41b19779de4a790b9242684f896e229bdf2b9de89464b4e428c005e797c76c797a136dc05f5244a4cb6dd4dee6b26691ecae8290dad423215623342b",
|
|
88
|
+
"sha256": "a340ea80524bd3cac1fd88f9b3164f5949a6460348ee4abe9057412bab47cc75",
|
|
89
|
+
"sha1": "95a86cf2c24d554788c8da9f5bc85b6af7ddcb26",
|
|
90
|
+
"md5": "896023b2eaac6328c9fcaa865a27cfd2"
|
|
91
91
|
}
|
|
92
92
|
]
|
|
93
93
|
},
|
|
@@ -101,13 +101,13 @@
|
|
|
101
101
|
},
|
|
102
102
|
"files": [
|
|
103
103
|
{
|
|
104
|
-
"name": "expo.modules.calendar-58.0.
|
|
105
|
-
"url": "expo.modules.calendar-58.0.
|
|
106
|
-
"size":
|
|
107
|
-
"sha512": "
|
|
108
|
-
"sha256": "
|
|
109
|
-
"sha1": "
|
|
110
|
-
"md5": "
|
|
104
|
+
"name": "expo.modules.calendar-58.0.3-sources.jar",
|
|
105
|
+
"url": "expo.modules.calendar-58.0.3-sources.jar",
|
|
106
|
+
"size": 88339,
|
|
107
|
+
"sha512": "29fe517a1b67b720ee0e5c9ee188d092cf754df40680b04a24a7c1093e90e39a196522520c7128aecce699b0a0e2ff65bf89305ad7a432a30f70111a0369e9d0",
|
|
108
|
+
"sha256": "ac1c2995f7ced90ee877c8b1cb5702e5b997a081d9f832c6dab69a74dbf8c79d",
|
|
109
|
+
"sha1": "99d6ffa1670b2ceb63f92201a34d6c3ba2eac634",
|
|
110
|
+
"md5": "62a58753ecfdda006b957ab52ebba05a"
|
|
111
111
|
}
|
|
112
112
|
]
|
|
113
113
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cb9063521ec5facad9356e10985e1795
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3a82b3cb551fc2ef64960d1a0baaf324ec265bfd
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b0bd0052bbcc135a2893d44c31ce5869c2795a6008ddd883af3c996be76fc733
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2e29f1118279c71903ea4f788ed3912c7d1d952c3def67247a51976d4650527917b8877332868de065cff607eeb7f009ae30cad790ac00f8c93a7690f773ca54
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>host.exp.exponent</groupId>
|
|
11
11
|
<artifactId>expo.modules.calendar</artifactId>
|
|
12
|
-
<version>58.0.
|
|
12
|
+
<version>58.0.3</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>expo.modules.calendar</name>
|
|
15
15
|
<url>https://github.com/expo/expo</url>
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
<dependency>
|
|
65
65
|
<groupId>io.github.expo.pika</groupId>
|
|
66
66
|
<artifactId>pika-api</artifactId>
|
|
67
|
-
<version>1.
|
|
67
|
+
<version>1.1.0</version>
|
|
68
68
|
<scope>runtime</scope>
|
|
69
69
|
</dependency>
|
|
70
70
|
</dependencies>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
e098dd9fb114f637f55fa0396ea2890f
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6660b4855b344b2ed8dd779caf5d03bcca2e194d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f6fdd3ecc8ff5422c16b38d5d3451ea1f6bba352dec5630cd5d01656019a710c
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2f24313b34c20f892610e3d62a3aac7cbc4d9d96543037245053ce731437f0de993ead221b95c19548ff206ea6c14115353ae12493221d7d5d6fe2bd0d889ef8
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>host.exp.exponent</groupId>
|
|
4
4
|
<artifactId>expo.modules.calendar</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>58.0.
|
|
7
|
-
<release>58.0.
|
|
6
|
+
<latest>58.0.3</latest>
|
|
7
|
+
<release>58.0.3</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>58.0.
|
|
9
|
+
<version>58.0.3</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20260925081302</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
fec161cf16014ee993a8c29a8a02dc3a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
53e1e5f7306ef8951e4d95f655f3f5e6bbf0220a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
979c312e42be3a737129e359f0e919854bf7d0034e840fedd1ebac7d88ec5cdb
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
18f34642f8ba0ae83931a72679ede37b7867276b255f7f064964a594b414a4ba600c346fcd94c705d0078cb8c2675e025b3b43d67bdb0a4e637b11546a2ef0e7
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-calendar",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.3",
|
|
4
4
|
"description": "Provides an API for interacting with the device's system calendars, events, reminders, and associated records.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"calendar",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/jest": "^29.2.1",
|
|
57
57
|
"@types/node": "^22.14.0",
|
|
58
|
-
"expo": "58.0.0-preview.
|
|
58
|
+
"expo": "58.0.0-preview.7",
|
|
59
59
|
"expo-module-scripts": "56.0.3"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"jest": {
|
|
66
66
|
"preset": "expo-module-scripts"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "ad41d067bd3df6dd12f1788acc6b54a68e7a650d",
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build": "pnpm run build:lib && pnpm run build:plugin",
|
|
71
71
|
"build:lib": "expo-build src",
|
package/src/Calendar.ts
CHANGED
|
@@ -210,6 +210,10 @@ export class ExpoCalendar extends InternalExpoCalendar.ExpoCalendar {
|
|
|
210
210
|
|
|
211
211
|
/**
|
|
212
212
|
* Gets an instance of the default calendar object.
|
|
213
|
+
*
|
|
214
|
+
* > **iOS 17+:** With write-only calendar access, this returns EventKit's virtual calendar,
|
|
215
|
+
* > which can be used to create events but does not expose existing calendar data.
|
|
216
|
+
*
|
|
213
217
|
* > **Android:** This function is not available on Android. Android does not expose a single
|
|
214
218
|
* > system-managed default calendar. Use `getCalendars()` and choose an appropriate writable
|
|
215
219
|
* > calendar for your app; `isPrimary` can help identify per-account primary calendars.
|
|
@@ -226,12 +230,16 @@ export function getDefaultCalendarSync(): ExpoCalendar {
|
|
|
226
230
|
}
|
|
227
231
|
|
|
228
232
|
/**
|
|
229
|
-
* Gets an array of [`ExpoCalendar`](#expocalendar) shared objects with details about the
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
* >
|
|
234
|
-
*
|
|
233
|
+
* Gets an array of [`ExpoCalendar`](#expocalendar) shared objects with details about the
|
|
234
|
+
* calendars available to the app.
|
|
235
|
+
*
|
|
236
|
+
* > **iOS 17+:** With write-only calendar access, requesting `EntityTypes.EVENT` returns a
|
|
237
|
+
* > single virtual calendar, which can be used to create events but does not expose the user's
|
|
238
|
+
* > real calendars.
|
|
239
|
+
*
|
|
240
|
+
* @param entityType __iOS Only.__ Not required, but if defined, filters the returned calendars to a specific [entity type](#entitytypes).
|
|
241
|
+
* > **Note:** If not defined, both calendar (write-only is enough) and reminders permissions are required.
|
|
242
|
+
* @return An array of [`ExpoCalendar`](#expocalendar) shared objects matching the provided entity type, if provided.
|
|
235
243
|
*/
|
|
236
244
|
export async function getCalendars(entityType?: EntityTypes): Promise<ExpoCalendar[]> {
|
|
237
245
|
if (!InternalExpoCalendar.getCalendars) {
|
|
@@ -229,6 +229,10 @@ export declare class ExpoCalendar {
|
|
|
229
229
|
|
|
230
230
|
/**
|
|
231
231
|
* Gets a calendar by its ID. Throws an error if the calendar with the given ID does not exist.
|
|
232
|
+
*
|
|
233
|
+
* > **iOS 17+:** With write-only calendar access, only the virtual calendar's ID can be
|
|
234
|
+
* > resolved - real calendars require full calendar access.
|
|
235
|
+
*
|
|
232
236
|
* @param calendarId The ID of the calendar to get.
|
|
233
237
|
* @returns An [`ExpoCalendar`](#expocalendar) object representing the calendar.
|
|
234
238
|
*/
|
package/.npmignore
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# @generated by expo-module-scripts
|
|
2
|
-
|
|
3
|
-
# Exclude all top-level hidden directories by convention
|
|
4
|
-
/.*/
|
|
5
|
-
|
|
6
|
-
# Exclude tarballs generated by `npm pack`
|
|
7
|
-
/*.tgz
|
|
8
|
-
|
|
9
|
-
__mocks__
|
|
10
|
-
__tests__
|
|
11
|
-
__rsc_tests__
|
|
12
|
-
|
|
13
|
-
/e2e
|
|
14
|
-
/e2e-cli
|
|
15
|
-
/babel.config.js
|
|
16
|
-
/oxlint.config.mjs
|
|
17
|
-
/android/src/androidTest/
|
|
18
|
-
/android/src/test/
|
|
19
|
-
/ios/Tests
|
|
20
|
-
|
|
21
|
-
# Exclude native build output (pnpm pack ignores nested .gitignore files)
|
|
22
|
-
.cxx/
|
|
23
|
-
.gradle/
|
|
24
|
-
/android/build/
|
package/.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":"6.0.3"}
|
package/android/.gitignore
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Created by https://www.gitignore.io/api/java,maven,gradle,android,intellij,androidstudio
|
|
3
|
-
|
|
4
|
-
### Android ###
|
|
5
|
-
# Built application files
|
|
6
|
-
*.apk
|
|
7
|
-
*.ap_
|
|
8
|
-
|
|
9
|
-
# Files for the ART/Dalvik VM
|
|
10
|
-
*.dex
|
|
11
|
-
|
|
12
|
-
# Java class files
|
|
13
|
-
*.class
|
|
14
|
-
|
|
15
|
-
# Generated files
|
|
16
|
-
bin/
|
|
17
|
-
gen/
|
|
18
|
-
out/
|
|
19
|
-
|
|
20
|
-
# Gradle files
|
|
21
|
-
.gradle/
|
|
22
|
-
build/
|
|
23
|
-
|
|
24
|
-
# Local configuration file (sdk path, etc)
|
|
25
|
-
local.properties
|
|
26
|
-
|
|
27
|
-
# Proguard folder generated by Eclipse
|
|
28
|
-
proguard/
|
|
29
|
-
|
|
30
|
-
# Log Files
|
|
31
|
-
*.log
|
|
32
|
-
|
|
33
|
-
# Android Studio Navigation editor temp files
|
|
34
|
-
.navigation/
|
|
35
|
-
|
|
36
|
-
# Android Studio captures folder
|
|
37
|
-
captures/
|
|
38
|
-
|
|
39
|
-
# Intellij
|
|
40
|
-
*.iml
|
|
41
|
-
.idea/workspace.xml
|
|
42
|
-
.idea/tasks.xml
|
|
43
|
-
.idea/gradle.xml
|
|
44
|
-
.idea/dictionaries
|
|
45
|
-
.idea/libraries
|
|
46
|
-
|
|
47
|
-
# External native build folder generated in Android Studio 2.2 and later
|
|
48
|
-
.externalNativeBuild
|
|
49
|
-
|
|
50
|
-
# Freeline
|
|
51
|
-
freeline.py
|
|
52
|
-
freeline/
|
|
53
|
-
freeline_project_description.json
|
|
54
|
-
|
|
55
|
-
### Android Patch ###
|
|
56
|
-
gen-external-apklibs
|
|
57
|
-
|
|
58
|
-
### AndroidStudio ###
|
|
59
|
-
# Covers files to be ignored for android development using Android Studio.
|
|
60
|
-
|
|
61
|
-
# Built application files
|
|
62
|
-
|
|
63
|
-
# Files for the ART/Dalvik VM
|
|
64
|
-
|
|
65
|
-
# Java class files
|
|
66
|
-
|
|
67
|
-
# Generated files
|
|
68
|
-
|
|
69
|
-
# Gradle files
|
|
70
|
-
.gradle
|
|
71
|
-
|
|
72
|
-
# Signing files
|
|
73
|
-
.signing/
|
|
74
|
-
|
|
75
|
-
# Local configuration file (sdk path, etc)
|
|
76
|
-
|
|
77
|
-
# Proguard folder generated by Eclipse
|
|
78
|
-
|
|
79
|
-
# Log Files
|
|
80
|
-
|
|
81
|
-
# Android Studio
|
|
82
|
-
/*/build/
|
|
83
|
-
/*/local.properties
|
|
84
|
-
/*/out
|
|
85
|
-
/*/*/build
|
|
86
|
-
/*/*/production
|
|
87
|
-
*.ipr
|
|
88
|
-
*~
|
|
89
|
-
*.swp
|
|
90
|
-
|
|
91
|
-
# Android Patch
|
|
92
|
-
|
|
93
|
-
# External native build folder generated in Android Studio 2.2 and later
|
|
94
|
-
|
|
95
|
-
# NDK
|
|
96
|
-
obj/
|
|
97
|
-
|
|
98
|
-
# IntelliJ IDEA
|
|
99
|
-
*.iws
|
|
100
|
-
/out/
|
|
101
|
-
|
|
102
|
-
# User-specific configurations
|
|
103
|
-
.idea/libraries/
|
|
104
|
-
.idea/.name
|
|
105
|
-
.idea/compiler.xml
|
|
106
|
-
.idea/copyright/profiles_settings.xml
|
|
107
|
-
.idea/encodings.xml
|
|
108
|
-
.idea/misc.xml
|
|
109
|
-
.idea/modules.xml
|
|
110
|
-
.idea/scopes/scope_settings.xml
|
|
111
|
-
.idea/vcs.xml
|
|
112
|
-
.idea/jsLibraryMappings.xml
|
|
113
|
-
.idea/datasources.xml
|
|
114
|
-
.idea/dataSources.ids
|
|
115
|
-
.idea/sqlDataSources.xml
|
|
116
|
-
.idea/dynamic.xml
|
|
117
|
-
.idea/uiDesigner.xml
|
|
118
|
-
|
|
119
|
-
# OS-specific files
|
|
120
|
-
.DS_Store
|
|
121
|
-
.DS_Store?
|
|
122
|
-
._*
|
|
123
|
-
.Spotlight-V100
|
|
124
|
-
.Trashes
|
|
125
|
-
ehthumbs.db
|
|
126
|
-
Thumbs.db
|
|
127
|
-
|
|
128
|
-
# Legacy Eclipse project files
|
|
129
|
-
.classpath
|
|
130
|
-
.project
|
|
131
|
-
.cproject
|
|
132
|
-
.settings/
|
|
133
|
-
|
|
134
|
-
# Mobile Tools for Java (J2ME)
|
|
135
|
-
.mtj.tmp/
|
|
136
|
-
|
|
137
|
-
# Package Files #
|
|
138
|
-
*.war
|
|
139
|
-
*.ear
|
|
140
|
-
|
|
141
|
-
# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
|
|
142
|
-
hs_err_pid*
|
|
143
|
-
|
|
144
|
-
## Plugin-specific files:
|
|
145
|
-
|
|
146
|
-
# mpeltonen/sbt-idea plugin
|
|
147
|
-
.idea_modules/
|
|
148
|
-
|
|
149
|
-
# JIRA plugin
|
|
150
|
-
atlassian-ide-plugin.xml
|
|
151
|
-
|
|
152
|
-
# Mongo Explorer plugin
|
|
153
|
-
.idea/mongoSettings.xml
|
|
154
|
-
|
|
155
|
-
### AndroidStudio Patch ###
|
|
156
|
-
|
|
157
|
-
!/gradle/wrapper/gradle-wrapper.jar
|
|
158
|
-
|
|
159
|
-
### Intellij ###
|
|
160
|
-
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
|
161
|
-
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
162
|
-
|
|
163
|
-
# User-specific stuff:
|
|
164
|
-
.idea/**/workspace.xml
|
|
165
|
-
.idea/**/tasks.xml
|
|
166
|
-
|
|
167
|
-
# Sensitive or high-churn files:
|
|
168
|
-
.idea/**/dataSources/
|
|
169
|
-
.idea/**/dataSources.ids
|
|
170
|
-
.idea/**/dataSources.xml
|
|
171
|
-
.idea/**/dataSources.local.xml
|
|
172
|
-
.idea/**/sqlDataSources.xml
|
|
173
|
-
.idea/**/dynamic.xml
|
|
174
|
-
.idea/**/uiDesigner.xml
|
|
175
|
-
|
|
176
|
-
# Gradle:
|
|
177
|
-
.idea/**/gradle.xml
|
|
178
|
-
.idea/**/libraries
|
|
179
|
-
|
|
180
|
-
# CMake
|
|
181
|
-
cmake-build-debug/
|
|
182
|
-
|
|
183
|
-
# Mongo Explorer plugin:
|
|
184
|
-
.idea/**/mongoSettings.xml
|
|
185
|
-
|
|
186
|
-
## File-based project format:
|
|
187
|
-
|
|
188
|
-
## Plugin-specific files:
|
|
189
|
-
|
|
190
|
-
# IntelliJ
|
|
191
|
-
|
|
192
|
-
# mpeltonen/sbt-idea plugin
|
|
193
|
-
|
|
194
|
-
# JIRA plugin
|
|
195
|
-
|
|
196
|
-
# Cursive Clojure plugin
|
|
197
|
-
.idea/replstate.xml
|
|
198
|
-
|
|
199
|
-
# Ruby plugin and RubyMine
|
|
200
|
-
/.rakeTasks
|
|
201
|
-
|
|
202
|
-
### Intellij Patch ###
|
|
203
|
-
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
|
|
204
|
-
|
|
205
|
-
# *.iml
|
|
206
|
-
# modules.xml
|
|
207
|
-
# .idea/misc.xml
|
|
208
|
-
# *.ipr
|
|
209
|
-
|
|
210
|
-
# Sonarlint plugin
|
|
211
|
-
.idea/sonarlint
|
|
212
|
-
|
|
213
|
-
### Java ###
|
|
214
|
-
# Compiled class file
|
|
215
|
-
|
|
216
|
-
# Log file
|
|
217
|
-
|
|
218
|
-
# BlueJ files
|
|
219
|
-
*.ctxt
|
|
220
|
-
|
|
221
|
-
# Mobile Tools for Java (J2ME)
|
|
222
|
-
|
|
223
|
-
# Package Files #
|
|
224
|
-
*.jar
|
|
225
|
-
*.zip
|
|
226
|
-
*.tar.gz
|
|
227
|
-
*.rar
|
|
228
|
-
|
|
229
|
-
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
|
230
|
-
|
|
231
|
-
### Maven ###
|
|
232
|
-
target/
|
|
233
|
-
pom.xml.tag
|
|
234
|
-
pom.xml.releaseBackup
|
|
235
|
-
pom.xml.versionsBackup
|
|
236
|
-
pom.xml.next
|
|
237
|
-
release.properties
|
|
238
|
-
dependency-reduced-pom.xml
|
|
239
|
-
buildNumber.properties
|
|
240
|
-
.mvn/timing.properties
|
|
241
|
-
|
|
242
|
-
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
|
|
243
|
-
!/.mvn/wrapper/maven-wrapper.jar
|
|
244
|
-
|
|
245
|
-
### Gradle ###
|
|
246
|
-
**/build/
|
|
247
|
-
|
|
248
|
-
# Ignore Gradle GUI config
|
|
249
|
-
gradle-app.setting
|
|
250
|
-
|
|
251
|
-
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
|
252
|
-
!gradle-wrapper.jar
|
|
253
|
-
|
|
254
|
-
# Cache of project
|
|
255
|
-
.gradletasknamecache
|
|
256
|
-
|
|
257
|
-
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
|
|
258
|
-
# gradle/wrapper/gradle-wrapper.properties
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
# End of https://www.gitignore.io/api/java,maven,gradle,android,intellij,androidstudio
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2488340cb7370866d300a5f1567901a4
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
dcad3499d89b7cc6e5f26f2302aa4c8b7414f3ab
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ca1df57e53b98caacce39b4d2c1d01d45d6b8bdc3cead2de18190a3106984496
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d5da071daf001903f4d12fd3ea8cb2aeb5b230946f8ce8213a1606ad078762f866aef223d242002885ab0ef73446cd3fca96d4bf7f056feccce2d58f1026d24c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e5bbf92b3d0ad4a93fc9ac66c1b83ce2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
cd1717dc2d95c38c1aa1a2cf1a553638081ddcb6
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6d78f4530b433586ca38facd7fc1b601a6ab00e441dbeba8a2c60616c7a8068f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c1651faac8a68132f29a267528cf42cef5874c6f0fc0f6bae35161e55d22b6d37b1d135f53d5b30aec29aae67d89f0cd7dd432546139cf44db932ff538f59225
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f5d709d837da319669b7ae6f38bc8d4b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
cf7829a0717be5ff740a3b373f412dfb96ffa386
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3b4d826740f0b42f8cf4a66e09ebec3f603bae690b44b6fcbbd358dda468ea4a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
eee23ee1fb402aa3efd36797f3bad080a14f74ce450a55eda624760ed190c0805c7f55428d1888cd124afa1d8a7cf227cb4ccc4b67f9a53bce2bc4288417ff85
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
309b876439af3b2bd694175598ee7e9d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
00b723822ce24747247af96bc253fc8fb6b2cb71
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2995a98b614c21d9804c717578cdf27b3dd66a430ecd942bd4f6af7212430362
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d39ec9e88e6de19de351d23a1afcfeda027579db81a3774f4b9f2a2eb489d7faf968be77cb6fa974106080cf7c292a10d7cc044e904089082ba856208657c47d
|
package/plugin/.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":"6.0.3"}
|
package/plugin/tsconfig.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["./src/withcalendar.ts"],"version":"5.9.2"}
|
package/tsconfig.all.json
DELETED