recal-sdk 0.3.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +24 -792
  2. package/dist/client/client/client.gen.d.ts +3 -0
  3. package/dist/client/client/client.gen.d.ts.map +1 -0
  4. package/dist/client/client/client.gen.js +205 -0
  5. package/dist/client/client/client.gen.js.map +1 -0
  6. package/dist/client/client/index.d.ts +9 -0
  7. package/dist/client/client/index.d.ts.map +1 -0
  8. package/dist/client/client/index.js +7 -0
  9. package/dist/client/client/index.js.map +1 -0
  10. package/dist/client/client/types.gen.d.ts +125 -0
  11. package/dist/client/client/types.gen.d.ts.map +1 -0
  12. package/dist/client/client/types.gen.js +3 -0
  13. package/dist/client/client/types.gen.js.map +1 -0
  14. package/dist/client/client/utils.gen.d.ts +34 -0
  15. package/dist/client/client/utils.gen.d.ts.map +1 -0
  16. package/dist/client/client/utils.gen.js +232 -0
  17. package/dist/client/client/utils.gen.js.map +1 -0
  18. package/dist/client/client.gen.d.ts +13 -0
  19. package/dist/client/client.gen.d.ts.map +1 -0
  20. package/dist/client/client.gen.js +6 -0
  21. package/dist/client/client.gen.js.map +1 -0
  22. package/dist/client/core/auth.gen.d.ts +19 -0
  23. package/dist/client/core/auth.gen.d.ts.map +1 -0
  24. package/dist/client/core/auth.gen.js +15 -0
  25. package/dist/client/core/auth.gen.js.map +1 -0
  26. package/dist/client/core/bodySerializer.gen.d.ts +26 -0
  27. package/dist/client/core/bodySerializer.gen.d.ts.map +1 -0
  28. package/dist/client/core/bodySerializer.gen.js +58 -0
  29. package/dist/client/core/bodySerializer.gen.js.map +1 -0
  30. package/dist/client/core/params.gen.d.ts +34 -0
  31. package/dist/client/core/params.gen.d.ts.map +1 -0
  32. package/dist/client/core/params.gen.js +89 -0
  33. package/dist/client/core/params.gen.js.map +1 -0
  34. package/dist/client/core/pathSerializer.gen.d.ts +34 -0
  35. package/dist/client/core/pathSerializer.gen.d.ts.map +1 -0
  36. package/dist/client/core/pathSerializer.gen.js +115 -0
  37. package/dist/client/core/pathSerializer.gen.js.map +1 -0
  38. package/dist/client/core/queryKeySerializer.gen.d.ts +19 -0
  39. package/dist/client/core/queryKeySerializer.gen.d.ts.map +1 -0
  40. package/dist/client/core/queryKeySerializer.gen.js +100 -0
  41. package/dist/client/core/queryKeySerializer.gen.js.map +1 -0
  42. package/dist/client/core/serverSentEvents.gen.d.ts +72 -0
  43. package/dist/client/core/serverSentEvents.gen.d.ts.map +1 -0
  44. package/dist/client/core/serverSentEvents.gen.js +136 -0
  45. package/dist/client/core/serverSentEvents.gen.js.map +1 -0
  46. package/dist/client/core/types.gen.d.ts +79 -0
  47. package/dist/client/core/types.gen.d.ts.map +1 -0
  48. package/dist/client/core/types.gen.js +3 -0
  49. package/dist/client/core/types.gen.js.map +1 -0
  50. package/dist/client/core/utils.gen.d.ts +20 -0
  51. package/dist/client/core/utils.gen.d.ts.map +1 -0
  52. package/dist/client/core/utils.gen.js +88 -0
  53. package/dist/client/core/utils.gen.js.map +1 -0
  54. package/dist/client/index.d.ts +3 -0
  55. package/dist/client/index.d.ts.map +1 -0
  56. package/dist/client/index.js +3 -0
  57. package/dist/client/index.js.map +1 -0
  58. package/dist/client/sdk.gen.d.ts +170 -0
  59. package/dist/client/sdk.gen.d.ts.map +1 -0
  60. package/dist/client/sdk.gen.js +884 -0
  61. package/dist/client/sdk.gen.js.map +1 -0
  62. package/dist/client/transformers.gen.d.ts +31 -0
  63. package/dist/client/transformers.gen.d.ts.map +1 -0
  64. package/dist/client/transformers.gen.js +263 -0
  65. package/dist/client/transformers.gen.js.map +1 -0
  66. package/dist/client/types.gen.d.ts +1765 -0
  67. package/dist/client/types.gen.d.ts.map +1 -0
  68. package/dist/client/types.gen.js +3 -0
  69. package/dist/client/types.gen.js.map +1 -0
  70. package/dist/client/zod.gen.d.ts +1457 -0
  71. package/dist/client/zod.gen.d.ts.map +1 -0
  72. package/dist/client/zod.gen.js +1214 -0
  73. package/dist/client/zod.gen.js.map +1 -0
  74. package/dist/index.d.ts +5 -33
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +8 -55
  77. package/dist/index.js.map +1 -1
  78. package/dist/recal.d.ts +64 -0
  79. package/dist/recal.d.ts.map +1 -0
  80. package/dist/recal.js +81 -0
  81. package/dist/recal.js.map +1 -0
  82. package/dist/services/calendar.service.d.ts +55 -167
  83. package/dist/services/calendar.service.d.ts.map +1 -1
  84. package/dist/services/calendar.service.js +68 -301
  85. package/dist/services/calendar.service.js.map +1 -1
  86. package/dist/services/events.service.d.ts +167 -0
  87. package/dist/services/events.service.d.ts.map +1 -0
  88. package/dist/services/events.service.js +215 -0
  89. package/dist/services/events.service.js.map +1 -0
  90. package/dist/services/oauth.service.d.ts +123 -60
  91. package/dist/services/oauth.service.d.ts.map +1 -1
  92. package/dist/services/oauth.service.js +166 -142
  93. package/dist/services/oauth.service.js.map +1 -1
  94. package/dist/services/organizations.service.d.ts +137 -36
  95. package/dist/services/organizations.service.d.ts.map +1 -1
  96. package/dist/services/organizations.service.js +164 -90
  97. package/dist/services/organizations.service.js.map +1 -1
  98. package/dist/services/scheduling.service.d.ts +121 -58
  99. package/dist/services/scheduling.service.d.ts.map +1 -1
  100. package/dist/services/scheduling.service.js +98 -140
  101. package/dist/services/scheduling.service.js.map +1 -1
  102. package/dist/services/users.service.d.ts +87 -27
  103. package/dist/services/users.service.d.ts.map +1 -1
  104. package/dist/services/users.service.js +94 -69
  105. package/dist/services/users.service.js.map +1 -1
  106. package/dist/types.d.ts +68 -0
  107. package/dist/types.d.ts.map +1 -0
  108. package/dist/types.js +8 -0
  109. package/dist/types.js.map +1 -0
  110. package/dist/utils/response.d.ts +33 -0
  111. package/dist/utils/response.d.ts.map +1 -0
  112. package/dist/utils/response.js +54 -0
  113. package/dist/utils/response.js.map +1 -0
  114. package/package.json +5 -2
  115. package/dist/entities/organization.d.ts +0 -21
  116. package/dist/entities/organization.d.ts.map +0 -1
  117. package/dist/entities/organization.js +0 -32
  118. package/dist/entities/organization.js.map +0 -1
  119. package/dist/entities/user.d.ts +0 -23
  120. package/dist/entities/user.d.ts.map +0 -1
  121. package/dist/entities/user.js +0 -45
  122. package/dist/entities/user.js.map +0 -1
  123. package/dist/errors.d.ts +0 -22
  124. package/dist/errors.d.ts.map +0 -1
  125. package/dist/errors.js +0 -36
  126. package/dist/errors.js.map +0 -1
  127. package/dist/typebox/calendar.tb.d.ts +0 -113
  128. package/dist/typebox/calendar.tb.d.ts.map +0 -1
  129. package/dist/typebox/calendar.tb.js +0 -92
  130. package/dist/typebox/calendar.tb.js.map +0 -1
  131. package/dist/typebox/oauth.tb.d.ts +0 -14
  132. package/dist/typebox/oauth.tb.d.ts.map +0 -1
  133. package/dist/typebox/oauth.tb.js +0 -16
  134. package/dist/typebox/oauth.tb.js.map +0 -1
  135. package/dist/typebox/organization.stripped.tb.d.ts +0 -6
  136. package/dist/typebox/organization.stripped.tb.d.ts.map +0 -1
  137. package/dist/typebox/organization.stripped.tb.js +0 -7
  138. package/dist/typebox/organization.stripped.tb.js.map +0 -1
  139. package/dist/typebox/organization.tb.d.ts +0 -10
  140. package/dist/typebox/organization.tb.d.ts.map +0 -1
  141. package/dist/typebox/organization.tb.js +0 -8
  142. package/dist/typebox/organization.tb.js.map +0 -1
  143. package/dist/typebox/scheduling.tb.d.ts +0 -107
  144. package/dist/typebox/scheduling.tb.d.ts.map +0 -1
  145. package/dist/typebox/scheduling.tb.js +0 -105
  146. package/dist/typebox/scheduling.tb.js.map +0 -1
  147. package/dist/typebox/timeString.tb.d.ts +0 -3
  148. package/dist/typebox/timeString.tb.d.ts.map +0 -1
  149. package/dist/typebox/timeString.tb.js +0 -7
  150. package/dist/typebox/timeString.tb.js.map +0 -1
  151. package/dist/typebox/user.stripped.tb.d.ts +0 -5
  152. package/dist/typebox/user.stripped.tb.d.ts.map +0 -1
  153. package/dist/typebox/user.stripped.tb.js +0 -6
  154. package/dist/typebox/user.stripped.tb.js.map +0 -1
  155. package/dist/typebox/user.tb.d.ts +0 -19
  156. package/dist/typebox/user.tb.d.ts.map +0 -1
  157. package/dist/typebox/user.tb.js +0 -10
  158. package/dist/typebox/user.tb.js.map +0 -1
  159. package/dist/types/calendar.types.d.ts +0 -124
  160. package/dist/types/calendar.types.d.ts.map +0 -1
  161. package/dist/types/calendar.types.js +0 -27
  162. package/dist/types/calendar.types.js.map +0 -1
  163. package/dist/types/internal.types.d.ts +0 -7
  164. package/dist/types/internal.types.d.ts.map +0 -1
  165. package/dist/types/internal.types.js +0 -2
  166. package/dist/types/internal.types.js.map +0 -1
  167. package/dist/types/oauth.types.d.ts +0 -22
  168. package/dist/types/oauth.types.d.ts.map +0 -1
  169. package/dist/types/oauth.types.js +0 -2
  170. package/dist/types/oauth.types.js.map +0 -1
  171. package/dist/types/organization.types.d.ts +0 -18
  172. package/dist/types/organization.types.d.ts.map +0 -1
  173. package/dist/types/organization.types.js +0 -2
  174. package/dist/types/organization.types.js.map +0 -1
  175. package/dist/types/scheduling.types.d.ts +0 -50
  176. package/dist/types/scheduling.types.d.ts.map +0 -1
  177. package/dist/types/scheduling.types.js +0 -2
  178. package/dist/types/scheduling.types.js.map +0 -1
  179. package/dist/types/user.types.d.ts +0 -11
  180. package/dist/types/user.types.d.ts.map +0 -1
  181. package/dist/types/user.types.js +0 -2
  182. package/dist/types/user.types.js.map +0 -1
  183. package/dist/utils/fetch.helper.d.ts +0 -62
  184. package/dist/utils/fetch.helper.d.ts.map +0 -1
  185. package/dist/utils/fetch.helper.js +0 -116
  186. package/dist/utils/fetch.helper.js.map +0 -1
  187. package/dist/utils/fetchErrorHandler.d.ts +0 -22
  188. package/dist/utils/fetchErrorHandler.d.ts.map +0 -1
  189. package/dist/utils/fetchErrorHandler.js +0 -35
  190. package/dist/utils/fetchErrorHandler.js.map +0 -1
  191. package/dist/utils/includes.helper.d.ts +0 -4
  192. package/dist/utils/includes.helper.d.ts.map +0 -1
  193. package/dist/utils/includes.helper.js +0 -10
  194. package/dist/utils/includes.helper.js.map +0 -1
  195. package/dist/utils/omit.d.ts +0 -2
  196. package/dist/utils/omit.d.ts.map +0 -1
  197. package/dist/utils/omit.js +0 -4
  198. package/dist/utils/omit.js.map +0 -1
@@ -0,0 +1,215 @@
1
+ import * as sdk from '../client/sdk.gen';
2
+ import { unwrapResponse } from '../utils/response';
3
+ /**
4
+ * Events Service
5
+ *
6
+ * Provides methods for managing calendar events
7
+ */
8
+ export class EventsService {
9
+ client;
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ /**
14
+ * Create an event across all calendars by metaId
15
+ *
16
+ * @param userId - The user ID
17
+ * @param event - Event data
18
+ * @param options - Query options
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const event = await recal.events.createMetaEvent('user-123', {
23
+ * subject: 'Team Meeting',
24
+ * start: '2024-01-15T10:00:00Z',
25
+ * end: '2024-01-15T11:00:00Z',
26
+ * attendees: [{ email: 'team@example.com' }],
27
+ * meeting: true
28
+ * }, { provider: ['google'] })
29
+ * ```
30
+ */
31
+ async createMetaEvent(userId, event, options) {
32
+ const response = await sdk.postV1UsersUserIdCalendarEventsMeta({
33
+ path: { userId },
34
+ body: event,
35
+ query: options,
36
+ client: this.client,
37
+ });
38
+ return unwrapResponse(response);
39
+ }
40
+ /**
41
+ * Get an event by metaId
42
+ *
43
+ * @param userId - The user ID
44
+ * @param metaId - The event metaId
45
+ * @param options - Query options
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const event = await recal.events.getMetaEvent('user-123', 'meta-456')
50
+ * ```
51
+ */
52
+ async getMetaEvent(userId, metaId, options) {
53
+ const response = await sdk.getV1UsersUserIdCalendarEventsMetaMetaId({
54
+ path: { userId, metaId },
55
+ query: options,
56
+ client: this.client,
57
+ });
58
+ return unwrapResponse(response);
59
+ }
60
+ /**
61
+ * Update an event by metaId
62
+ *
63
+ * @param userId - The user ID
64
+ * @param metaId - The event metaId
65
+ * @param event - Updated event data
66
+ * @param options - Query options
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const updated = await recal.events.updateMetaEvent('user-123', 'meta-456', {
71
+ * subject: 'Updated Meeting',
72
+ * sendNotifications: true
73
+ * })
74
+ * ```
75
+ */
76
+ async updateMetaEvent(userId, metaId, event, options) {
77
+ const response = await sdk.putV1UsersUserIdCalendarEventsMetaMetaId({
78
+ path: { userId, metaId },
79
+ body: event,
80
+ query: options,
81
+ client: this.client,
82
+ });
83
+ return unwrapResponse(response);
84
+ }
85
+ /**
86
+ * Delete an event by metaId
87
+ *
88
+ * @param userId - The user ID
89
+ * @param metaId - The event metaId
90
+ * @param options - Query options
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * await recal.events.deleteMetaEvent('user-123', 'meta-456')
95
+ * ```
96
+ */
97
+ async deleteMetaEvent(userId, metaId, options) {
98
+ const response = await sdk.deleteV1UsersUserIdCalendarEventsMetaMetaId({
99
+ path: { userId, metaId },
100
+ query: options,
101
+ client: this.client,
102
+ });
103
+ return unwrapResponse(response);
104
+ }
105
+ /**
106
+ * Create an event in a specific calendar
107
+ *
108
+ * @param userId - The user ID
109
+ * @param provider - The calendar provider
110
+ * @param calendarId - The calendar ID
111
+ * @param event - Event data
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const event = await recal.events.createEvent(
116
+ * 'user-123',
117
+ * 'google',
118
+ * 'primary',
119
+ * {
120
+ * subject: 'Meeting',
121
+ * start: '2024-01-16T14:00:00Z',
122
+ * end: '2024-01-16T15:00:00Z',
123
+ * attendees: [{ email: 'team@example.com' }]
124
+ * }
125
+ * )
126
+ * ```
127
+ */
128
+ async createEvent(userId, provider, calendarId, event) {
129
+ const response = await sdk.postV1UsersUserIdCalendarEventsProviderCalendarId({
130
+ path: { userId, provider, calendarId },
131
+ body: event,
132
+ client: this.client,
133
+ });
134
+ return unwrapResponse(response);
135
+ }
136
+ /**
137
+ * Get an event from a specific calendar
138
+ *
139
+ * @param userId - The user ID
140
+ * @param provider - The calendar provider
141
+ * @param calendarId - The calendar ID
142
+ * @param eventId - The event ID
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const event = await recal.events.getEvent(
147
+ * 'user-123',
148
+ * 'google',
149
+ * 'primary',
150
+ * 'event-id'
151
+ * )
152
+ * ```
153
+ */
154
+ async getEvent(userId, provider, calendarId, eventId) {
155
+ const response = await sdk.getV1UsersUserIdCalendarEventsProviderCalendarIdEventId({
156
+ path: { userId, provider, calendarId, eventId },
157
+ client: this.client,
158
+ });
159
+ return unwrapResponse(response);
160
+ }
161
+ /**
162
+ * Update an event in a specific calendar
163
+ *
164
+ * @param userId - The user ID
165
+ * @param provider - The calendar provider
166
+ * @param calendarId - The calendar ID
167
+ * @param eventId - The event ID
168
+ * @param event - Updated event data
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const updated = await recal.events.updateEvent(
173
+ * 'user-123',
174
+ * 'google',
175
+ * 'primary',
176
+ * 'event-id',
177
+ * { subject: 'Updated Title' }
178
+ * )
179
+ * ```
180
+ */
181
+ async updateEvent(userId, provider, calendarId, eventId, event) {
182
+ const response = await sdk.putV1UsersUserIdCalendarEventsProviderCalendarIdEventId({
183
+ path: { userId, provider, calendarId, eventId },
184
+ body: event,
185
+ client: this.client,
186
+ });
187
+ return unwrapResponse(response);
188
+ }
189
+ /**
190
+ * Delete an event from a specific calendar
191
+ *
192
+ * @param userId - The user ID
193
+ * @param provider - The calendar provider
194
+ * @param calendarId - The calendar ID
195
+ * @param eventId - The event ID
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * await recal.events.deleteEvent(
200
+ * 'user-123',
201
+ * 'google',
202
+ * 'primary',
203
+ * 'event-id'
204
+ * )
205
+ * ```
206
+ */
207
+ async deleteEvent(userId, provider, calendarId, eventId) {
208
+ const response = await sdk.deleteV1UsersUserIdCalendarEventsProviderCalendarIdEventId({
209
+ path: { userId, provider, calendarId, eventId },
210
+ client: this.client,
211
+ });
212
+ return unwrapResponse(response);
213
+ }
214
+ }
215
+ //# sourceMappingURL=events.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.service.js","sourceRoot":"","sources":["../../src/services/events.service.ts"],"names":[],"mappings":"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"}
@@ -1,79 +1,142 @@
1
- import type { Provider } from '../types/calendar.types.js';
2
- import type { OAuthConnection, OAuthLink, SetOAuthConnection } from '../types/oauth.types.js';
3
- import { type FetchHelper } from '../utils/fetch.helper.js';
1
+ import type { Client } from '../client/client';
2
+ import type { GetV1UsersUserIdOauthData, GetV1UsersUserIdOauthLinksData, GetV1UsersUserIdOauthProviderData, GetV1UsersUserIdOauthProviderLinkData, PostV1UsersOauthProviderVerifyData, PostV1UsersUserIdOauthProviderData } from '../client/types.gen';
3
+ /**
4
+ * OAuth Service
5
+ *
6
+ * Provides methods for managing OAuth connections
7
+ */
4
8
  export declare class OAuthService {
5
- private fetchHelper;
6
- constructor(fetchHelper: FetchHelper);
9
+ private client;
10
+ constructor(client: Client);
7
11
  /**
8
12
  * Get all OAuth connections for a user
9
- * @param userId The ID of the user
10
- * @param redacted Whether to redact the OAuth connections
11
- * @returns An array of OAuth connections
13
+ *
14
+ * @param userId - The user ID
15
+ * @param options - Query options
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const connections = await recal.oauth.list('user-123', {
20
+ * showToken: 'true'
21
+ * })
22
+ * ```
12
23
  */
13
- getAllConnections(userId: string, redacted?: boolean): Promise<OAuthConnection[]>;
24
+ list(userId: string, options?: GetV1UsersUserIdOauthData['query']): Promise<import("..").AuthConnection[]>;
14
25
  /**
15
- * Get OAuth connection for a specific provider
16
- * @param userId The ID of the user
17
- * @param provider The provider of the OAuth connection
18
- * @param redacted Whether to redact the OAuth connection
19
- * @returns The OAuth connection
26
+ * Get a specific OAuth connection
27
+ *
28
+ * @param userId - The user ID
29
+ * @param provider - The OAuth provider
30
+ * @param options - Query options
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const connection = await recal.oauth.get('user-123', 'google')
35
+ * ```
20
36
  */
21
- getConnection(userId: string, provider: Provider, redacted?: boolean): Promise<OAuthConnection>;
37
+ get(userId: string, provider: 'google' | 'microsoft', options?: GetV1UsersUserIdOauthProviderData['query']): Promise<import("..").AuthConnection>;
22
38
  /**
23
- * Get OAuth authorization URLs for all providers
24
- * @param userId The ID of the user
25
- * @param options Options for the OAuth authorization URLs
26
- * @returns An array of OAuth authorization URLs
39
+ * Create a new OAuth connection
40
+ *
41
+ * @param userId - The user ID
42
+ * @param provider - The OAuth provider
43
+ * @param data - OAuth connection data
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const connection = await recal.oauth.create('user-123', 'google', {
48
+ * accessToken: 'token',
49
+ * refreshToken: 'refresh',
50
+ * email: 'user@gmail.com',
51
+ * expiresAt: '2024-12-31T23:59:59Z',
52
+ * scope: ['calendar.readonly']
53
+ * })
54
+ * ```
27
55
  */
28
- getBulkLinks(userId: string, options?: {
29
- provider?: Provider | Provider[];
30
- scope?: ('edit' | 'free-busy')[];
31
- accessType?: 'offline' | 'online';
32
- }): Promise<OAuthLink[]>;
56
+ create(userId: string, provider: 'google' | 'microsoft', data: NonNullable<PostV1UsersUserIdOauthProviderData['body']>): Promise<import("..").AuthConnection>;
33
57
  /**
34
- * Get OAuth authorization URL for a specific provider
35
- * @param userId The ID of the user
36
- * @param provider The provider of the OAuth connection
37
- * @param options Options for the OAuth authorization URL
38
- * @returns The OAuth authorization URL
58
+ * Delete an OAuth connection
59
+ *
60
+ * @param userId - The user ID
61
+ * @param provider - The OAuth provider
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * await recal.oauth.delete('user-123', 'google')
66
+ * ```
39
67
  */
40
- getLink(userId: string, provider: Provider, options?: {
41
- scope?: ('edit' | 'free-busy')[];
42
- accessType?: 'offline' | 'online';
43
- redirectUrl?: string;
44
- }): Promise<OAuthLink>;
68
+ delete(userId: string, provider: 'google' | 'microsoft'): Promise<unknown>;
45
69
  /**
46
- * Set OAuth tokens for a provider
47
- * @param userId The ID of the user
48
- * @param provider The provider of the OAuth connection
49
- * @param connection The OAuth connection to set
50
- * @returns The OAuth connection
70
+ * Get OAuth authorization URLs for all providers
71
+ *
72
+ * @param userId - The user ID
73
+ * @param options - OAuth options
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const links = await recal.oauth.getAuthLinks('user-123', {
78
+ * provider: 'google',
79
+ * accessType: 'offline',
80
+ * scope: 'edit'
81
+ * })
82
+ * ```
51
83
  */
52
- setConnection(userId: string, provider: Provider, connection: SetOAuthConnection): Promise<OAuthConnection>;
84
+ getAuthLinks(userId: string, options: GetV1UsersUserIdOauthLinksData['query']): Promise<{
85
+ link: string;
86
+ provider: "google" | "microsoft";
87
+ }[]>;
88
+ /**
89
+ * Get OAuth authorization URL for a specific provider
90
+ *
91
+ * @param userId - The user ID
92
+ * @param provider - The OAuth provider
93
+ * @param options - OAuth options
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const link = await recal.oauth.getAuthLink('user-123', 'google', {
98
+ * provider: 'google',
99
+ * accessType: 'offline',
100
+ * scope: 'edit',
101
+ * redirectUrl: 'https://app.com/callback'
102
+ * })
103
+ * ```
104
+ */
105
+ getAuthLink(userId: string, provider: 'google' | 'microsoft', options: GetV1UsersUserIdOauthProviderLinkData['query']): Promise<{
106
+ link: string;
107
+ }>;
53
108
  /**
54
- * Delete OAuth connection for a provider
55
- * @param userId The ID of the user
56
- * @param provider The provider of the OAuth connection
57
- * @returns Promise that resolves when the connection is deleted
109
+ * Verify an OAuth authorization code
110
+ *
111
+ * @param provider - The OAuth provider
112
+ * @param data - Verification data
113
+ * @param options - Query options
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * await recal.oauth.verifyCode('google', {
118
+ * code: 'auth-code',
119
+ * state: 'state-token',
120
+ * scope: ['calendar.edit']
121
+ * }, {
122
+ * redirectUrl: 'https://app.com/callback'
123
+ * })
124
+ * ```
58
125
  */
59
- disconnect(userId: string, provider: Provider): Promise<void>;
126
+ verifyCode(provider: 'google' | 'microsoft', data: NonNullable<PostV1UsersOauthProviderVerifyData['body']>, options?: PostV1UsersOauthProviderVerifyData['query']): Promise<unknown>;
60
127
  /**
61
- * Verify OAuth code (used in OAuth callback flow)
62
- * @param provider The provider of the OAuth connection
63
- * @param code The OAuth code
64
- * @param scope The OAuth scope (free-busy or edit)
65
- * @param state The OAuth state
66
- * @param redirectUrl The redirect URL
67
- * @returns The OAuth verification result
128
+ * Get a fresh access token for a user
129
+ *
130
+ * @param userId - The user ID
131
+ * @param provider - The OAuth provider
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * const token = await recal.oauth.getFreshAccessToken('user-123', 'google')
136
+ * ```
68
137
  */
69
- verify({ provider, code, scope, state, redirectUrl, }: {
70
- provider: Provider;
71
- code: string;
72
- scope: ('edit' | 'free-busy')[];
73
- state: string;
74
- redirectUrl?: string;
75
- }): Promise<{
76
- success: boolean;
138
+ getFreshAccessToken(userId: string, provider: 'google' | 'microsoft'): Promise<{
139
+ accessToken: string;
77
140
  }>;
78
141
  }
79
142
  //# sourceMappingURL=oauth.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.service.d.ts","sourceRoot":"","sources":["../../src/services/oauth.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC5F,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAExE,qBAAa,YAAY;IACT,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE5C;;;;;OAKG;IACU,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAS3F;;;;;;OAMG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBzG;;;;;OAKG;IACU,YAAY,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAA;QAChC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;QAChC,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;KACpC,GACF,OAAO,CAAC,SAAS,EAAE,CAAC;IAavB;;;;;;OAMG;IACU,OAAO,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;QAChC,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;QACjC,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,GACF,OAAO,CAAC,SAAS,CAAC;IAuBrB;;;;;;OAMG;IACU,aAAa,CACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC;IAkB3B;;;;;OAKG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1E;;;;;;;;OAQG;IACU,MAAM,CAAC,EAChB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,GACd,EAAE;QACC,QAAQ,EAAE,QAAQ,CAAA;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;QAC/B,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CA2BpC"}
1
+ {"version":3,"file":"oauth.service.d.ts","sourceRoot":"","sources":["../../src/services/oauth.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EACR,yBAAyB,EACzB,8BAA8B,EAC9B,iCAAiC,EACjC,qCAAqC,EACrC,kCAAkC,EAClC,kCAAkC,EACrC,MAAM,qBAAqB,CAAA;AAG5B;;;;GAIG;AACH,qBAAa,YAAY;IACT,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC;IASvE;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,iCAAiC,CAAC,OAAO,CAAC;IAShH;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAChC,IAAI,EAAE,WAAW,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IAUjE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW;IAQ7D;;;;;;;;;;;;;;OAcG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,CAAC,OAAO,CAAC;;;;IASnF;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAChC,OAAO,EAAE,qCAAqC,CAAC,OAAO,CAAC;;;IAU3D;;;;;;;;;;;;;;;;;OAiBG;IACG,UAAU,CACZ,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAChC,IAAI,EAAE,WAAW,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,EAC7D,OAAO,CAAC,EAAE,kCAAkC,CAAC,OAAO,CAAC;IAWzD;;;;;;;;;;OAUG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW;;;CAO7E"}