@plotday/tool-google-contacts 0.5.0 → 0.6.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.
@@ -1,31 +1,23 @@
1
1
  import { type NewContact, Serializable, Tool, type ToolBuilder } from "@plotday/twister";
2
- import { type Callback } from "@plotday/twister/tools/callbacks";
3
- import { type AuthToken, type Authorization, Integrations } from "@plotday/twister/tools/integrations";
2
+ import { AuthProvider, type AuthToken, type Authorization, Integrations, type Syncable } from "@plotday/twister/tools/integrations";
4
3
  import { Network } from "@plotday/twister/tools/network";
5
- import type { ContactAuth, GoogleContacts as IGoogleContacts } from "./types";
4
+ import type { GoogleContacts as IGoogleContacts, GoogleContactsOptions } from "./types";
6
5
  export default class GoogleContacts extends Tool<GoogleContacts> implements IGoogleContacts {
7
6
  static readonly id = "google-contacts";
7
+ static readonly PROVIDER = AuthProvider.Google;
8
+ static readonly Options: GoogleContactsOptions;
9
+ readonly Options: GoogleContactsOptions;
8
10
  static readonly SCOPES: string[];
9
11
  build(build: ToolBuilder): {
10
12
  integrations: Promise<Integrations>;
11
13
  network: Promise<Network>;
12
14
  };
13
- requestAuth<TArgs extends Serializable[], TCallback extends (auth: ContactAuth, ...args: TArgs) => any>(callback: TCallback, ...extraArgs: TArgs): Promise<any>;
14
- getContacts(authToken: string): Promise<NewContact[]>;
15
- startSync<TArgs extends Serializable[], TCallback extends (contacts: NewContact[], ...args: TArgs) => any>(authToken: string, callback: TCallback, ...extraArgs: TArgs): Promise<void>;
16
- /**
17
- * Start contact sync using an existing Authorization and AuthToken from another tool.
18
- * This enables other Google tools (like calendar) to trigger contact syncing
19
- * after they've obtained auth with combined scopes.
20
- *
21
- * @param authorization - Authorization object containing provider and scopes
22
- * @param authToken - Actual auth token data retrieved by the calling tool
23
- * @param callback - Optional callback to invoke with synced contacts
24
- * @param extraArgs - Additional arguments to pass to the callback
25
- */
26
- syncWithAuth<TArgs extends Serializable[], TCallback extends (contacts: NewContact[], ...args: TArgs) => any>(authorization: Authorization, authToken: AuthToken, callback?: TCallback, ...extraArgs: TArgs): Promise<void>;
27
- stopSync(authToken: string): Promise<void>;
28
- syncBatch(batchNumber: number, authToken: string): Promise<void>;
15
+ getSyncables(_auth: Authorization, _token: AuthToken): Promise<Syncable[]>;
16
+ onSyncEnabled(syncable: Syncable): Promise<void>;
17
+ onSyncDisabled(syncable: Syncable): Promise<void>;
18
+ getContacts(syncableId: string): Promise<NewContact[]>;
19
+ startSync<TArgs extends Serializable[], TCallback extends (contacts: NewContact[], ...args: TArgs) => any>(syncableId: string, callback: TCallback, ...extraArgs: TArgs): Promise<void>;
20
+ stopSync(syncableId: string): Promise<void>;
21
+ syncBatch(batchNumber: number, syncableId: string): Promise<void>;
29
22
  private processContacts;
30
- onAuthSuccess(authResult: Authorization, callbackToken: Callback): Promise<void>;
31
23
  }
@@ -167,119 +167,103 @@ async function getGoogleContacts(api, scopes, state) {
167
167
  class GoogleContacts extends Tool {
168
168
  build(build) {
169
169
  return {
170
- integrations: build(Integrations),
170
+ integrations: build(Integrations, {
171
+ providers: [{
172
+ provider: GoogleContacts.PROVIDER,
173
+ scopes: GoogleContacts.SCOPES,
174
+ getSyncables: this.getSyncables,
175
+ onSyncEnabled: this.onSyncEnabled,
176
+ onSyncDisabled: this.onSyncDisabled,
177
+ }],
178
+ }),
171
179
  network: build(Network, {
172
180
  urls: ["https://people.googleapis.com/*"],
173
181
  }),
174
182
  };
175
183
  }
176
- async requestAuth(callback, ...extraArgs) {
177
- // Create callback token for parent
178
- const callbackToken = await this.tools.callbacks.createFromParent(callback, ...extraArgs);
179
- // Request auth and return the activity link
180
- return await this.tools.integrations.request({
181
- provider: AuthProvider.Google,
182
- scopes: GoogleContacts.SCOPES,
183
- }, this.onAuthSuccess, callbackToken);
184
+ async getSyncables(_auth, _token) {
185
+ return [{ id: "contacts", title: "Contacts" }];
186
+ }
187
+ async onSyncEnabled(syncable) {
188
+ // Create item callback token from parent's onItem handler
189
+ const itemCallbackToken = await this.tools.callbacks.createFromParent(this.options.onItem);
190
+ await this.set(`item_callback_${syncable.id}`, itemCallbackToken);
191
+ // Auto-start sync
192
+ const token = await this.tools.integrations.get(GoogleContacts.PROVIDER, syncable.id);
193
+ if (!token) {
194
+ throw new Error("No Google authentication token available");
195
+ }
196
+ const initialState = {
197
+ more: false,
198
+ };
199
+ await this.set(`sync_state:${syncable.id}`, initialState);
200
+ const syncCallback = await this.callback(this.syncBatch, 1, syncable.id);
201
+ await this.run(syncCallback);
184
202
  }
185
- async getContacts(authToken) {
186
- let storedAuthToken = await this.tools.integrations.get(AuthProvider.Google, authToken);
187
- if (!storedAuthToken) {
188
- storedAuthToken = await this.get(`auth_token:${authToken}`);
203
+ async onSyncDisabled(syncable) {
204
+ await this.stopSync(syncable.id);
205
+ // Clean up item callback
206
+ const itemCallbackToken = await this.get(`item_callback_${syncable.id}`);
207
+ if (itemCallbackToken) {
208
+ await this.deleteCallback(itemCallbackToken);
209
+ await this.clear(`item_callback_${syncable.id}`);
189
210
  }
190
- if (!storedAuthToken) {
191
- throw new Error("No Google authentication token available for the provided authToken");
211
+ }
212
+ async getContacts(syncableId) {
213
+ const token = await this.tools.integrations.get(GoogleContacts.PROVIDER, syncableId);
214
+ if (!token) {
215
+ throw new Error("No Google authentication token available for the provided syncableId");
192
216
  }
193
- const api = new GoogleApi(storedAuthToken.token);
194
- const result = await getGoogleContacts(api, storedAuthToken.scopes, {
217
+ const api = new GoogleApi(token.token);
218
+ const result = await getGoogleContacts(api, token.scopes, {
195
219
  more: false,
196
220
  });
197
221
  return result.contacts;
198
222
  }
199
- async startSync(authToken, callback, ...extraArgs) {
200
- let storedAuthToken = await this.tools.integrations.get(AuthProvider.Google, authToken);
201
- if (!storedAuthToken) {
202
- storedAuthToken = await this.get(`auth_token:${authToken}`);
203
- }
204
- if (!storedAuthToken) {
205
- throw new Error("No Google authentication token available for the provided authToken");
223
+ async startSync(syncableId, callback, ...extraArgs) {
224
+ const token = await this.tools.integrations.get(GoogleContacts.PROVIDER, syncableId);
225
+ if (!token) {
226
+ throw new Error("No Google authentication token available for the provided syncableId");
206
227
  }
207
228
  // Create callback token for parent
208
229
  const callbackToken = await this.tools.callbacks.createFromParent(callback, ...extraArgs);
209
- await this.set(`contacts_callback_token:${authToken}`, callbackToken);
230
+ await this.set(`item_callback_${syncableId}`, callbackToken);
210
231
  // Start initial sync
211
232
  const initialState = {
212
233
  more: false,
213
234
  };
214
- await this.set(`sync_state:${authToken}`, initialState);
235
+ await this.set(`sync_state:${syncableId}`, initialState);
215
236
  // Start sync batch using run tool for long-running operation
216
- const syncCallback = await this.callback(this.syncBatch, 1, authToken);
237
+ const syncCallback = await this.callback(this.syncBatch, 1, syncableId);
217
238
  await this.run(syncCallback);
218
239
  }
219
- /**
220
- * Start contact sync using an existing Authorization and AuthToken from another tool.
221
- * This enables other Google tools (like calendar) to trigger contact syncing
222
- * after they've obtained auth with combined scopes.
223
- *
224
- * @param authorization - Authorization object containing provider and scopes
225
- * @param authToken - Actual auth token data retrieved by the calling tool
226
- * @param callback - Optional callback to invoke with synced contacts
227
- * @param extraArgs - Additional arguments to pass to the callback
228
- */
229
- async syncWithAuth(authorization, authToken, callback, ...extraArgs) {
230
- // Validate authorization has required contacts scopes
231
- const hasRequiredScopes = GoogleContacts.SCOPES.every((scope) => authorization.scopes.includes(scope));
232
- if (!hasRequiredScopes) {
233
- throw new Error(`Authorization missing required contacts scopes. Required: ${GoogleContacts.SCOPES.join(", ")}. Got: ${authorization.scopes.join(", ")}`);
234
- }
235
- // Use actor ID as the auth token identifier
236
- const authTokenId = authorization.actor.id;
237
- // Store the auth token data (passed directly from caller)
238
- await this.set(`auth_token:${authTokenId}`, authToken);
239
- // Setup callback if provided
240
- if (callback) {
241
- const callbackToken = await this.tools.callbacks.createFromParent(callback, ...extraArgs);
242
- await this.set(`contacts_callback_token:${authTokenId}`, callbackToken);
243
- }
244
- // Initialize sync state
245
- const initialState = {
246
- more: false,
247
- };
248
- await this.set(`sync_state:${authTokenId}`, initialState);
249
- // Start sync batch
250
- const syncCallback = await this.callback(this.syncBatch, 1, authTokenId);
251
- await this.runTask(syncCallback);
252
- }
253
- async stopSync(authToken) {
254
- // Clear sync state for this specific auth token
255
- await this.clear(`sync_state:${authToken}`);
256
- await this.clear(`contacts_callback_token:${authToken}`);
240
+ async stopSync(syncableId) {
241
+ // Clear sync state for this specific syncable
242
+ await this.clear(`sync_state:${syncableId}`);
243
+ await this.clear(`item_callback_${syncableId}`);
257
244
  }
258
- async syncBatch(batchNumber, authToken) {
245
+ async syncBatch(batchNumber, syncableId) {
259
246
  try {
260
- let storedAuthToken = await this.tools.integrations.get(AuthProvider.Google, authToken);
261
- if (!storedAuthToken) {
262
- storedAuthToken = await this.get(`auth_token:${authToken}`);
263
- }
264
- if (!storedAuthToken) {
265
- throw new Error("No authentication token available for the provided authToken");
247
+ const token = await this.tools.integrations.get(GoogleContacts.PROVIDER, syncableId);
248
+ if (!token) {
249
+ throw new Error("No authentication token available for the provided syncableId");
266
250
  }
267
- const state = await this.get(`sync_state:${authToken}`);
251
+ const state = await this.get(`sync_state:${syncableId}`);
268
252
  if (!state) {
269
253
  throw new Error("No sync state found");
270
254
  }
271
- const api = new GoogleApi(storedAuthToken.token);
272
- const result = await getGoogleContacts(api, storedAuthToken.scopes, state);
255
+ const api = new GoogleApi(token.token);
256
+ const result = await getGoogleContacts(api, token.scopes, state);
273
257
  if (result.contacts.length > 0) {
274
- await this.processContacts(result.contacts, authToken);
258
+ await this.processContacts(result.contacts, syncableId);
275
259
  }
276
- await this.set(`sync_state:${authToken}`, result.state);
260
+ await this.set(`sync_state:${syncableId}`, result.state);
277
261
  if (result.state.more) {
278
- const nextCallback = await this.callback(this.syncBatch, batchNumber + 1, authToken);
262
+ const nextCallback = await this.callback(this.syncBatch, batchNumber + 1, syncableId);
279
263
  await this.run(nextCallback);
280
264
  }
281
265
  else {
282
- await this.clear(`sync_state:${authToken}`);
266
+ await this.clear(`sync_state:${syncableId}`);
283
267
  }
284
268
  }
285
269
  catch (error) {
@@ -287,20 +271,15 @@ class GoogleContacts extends Tool {
287
271
  throw error;
288
272
  }
289
273
  }
290
- async processContacts(contacts, authToken) {
291
- const callbackToken = await this.get(`contacts_callback_token:${authToken}`);
274
+ async processContacts(contacts, syncableId) {
275
+ const callbackToken = await this.get(`item_callback_${syncableId}`);
292
276
  if (callbackToken) {
293
277
  await this.run(callbackToken, contacts);
294
278
  }
295
279
  }
296
- async onAuthSuccess(authResult, callbackToken) {
297
- const authSuccessResult = {
298
- authToken: authResult.actor.id,
299
- };
300
- await this.run(callbackToken, authSuccessResult);
301
- }
302
280
  }
303
281
  GoogleContacts.id = "google-contacts";
282
+ GoogleContacts.PROVIDER = AuthProvider.Google;
304
283
  GoogleContacts.SCOPES = [
305
284
  "https://www.googleapis.com/auth/contacts.readonly",
306
285
  "https://www.googleapis.com/auth/contacts.other.readonly",
@@ -1 +1 @@
1
- {"version":3,"file":"google-contacts.js","sourceRoot":"","sources":["../src/google-contacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google-contacts.js","sourceRoot":"","sources":["../src/google-contacts.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import type { ActivityLink, ITool, NewContact } from "@plotday/twister";
2
- export type ContactAuth = {
3
- authToken: string;
1
+ import type { ITool, NewContact } from "@plotday/twister";
2
+ export type GoogleContactsOptions = {
3
+ /** Callback invoked for each batch of synced contacts. */
4
+ onItem: (contacts: NewContact[]) => Promise<void>;
4
5
  };
5
6
  export interface GoogleContacts extends ITool {
6
- requestAuth<TCallback extends (auth: ContactAuth, ...args: any[]) => any>(callback: TCallback, ...extraArgs: any[]): Promise<ActivityLink>;
7
- getContacts(authToken: string): Promise<NewContact[]>;
8
- startSync<TCallback extends (contacts: NewContact[], ...args: any[]) => any>(authToken: string, callback: TCallback, ...extraArgs: any[]): Promise<void>;
9
- stopSync(authToken: string): Promise<void>;
7
+ getContacts(syncableId: string): Promise<NewContact[]>;
8
+ startSync<TCallback extends (contacts: NewContact[], ...args: any[]) => any>(syncableId: string, callback: TCallback, ...extraArgs: any[]): Promise<void>;
9
+ stopSync(syncableId: string): Promise<void>;
10
10
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "description": "Sync with Google Contacts",
5
5
  "author": "Plot <team@plot.day> (https://plot.day)",
6
6
  "license": "MIT",
7
- "version": "0.5.0",
7
+ "version": "0.6.0",
8
8
  "type": "module",
9
9
  "main": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "LICENSE"
22
22
  ],
23
23
  "dependencies": {
24
- "@plotday/twister": "^0.33.0"
24
+ "@plotday/twister": "^0.35.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "typescript": "^5.9.3"