@corsair-dev/googlesheets 0.1.1 → 0.1.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.
@@ -0,0 +1,2 @@
1
+ import 'dotenv/config';
2
+ //# sourceMappingURL=api.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.test.d.ts","sourceRoot":"","sources":["../api.test.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
package/dist/client.d.ts CHANGED
@@ -20,6 +20,10 @@ type SheetsRequestOptions = {
20
20
  query?: Record<string, string | number | boolean | undefined>;
21
21
  };
22
22
  export declare function makeSheetsRequest<T>(endpoint: string, credentials: string, options?: SheetsRequestOptions): Promise<T>;
23
+ export declare function makeAuthenticatedDriveRequest(endpoint: string, ctx: {
24
+ key: string;
25
+ _refreshAuth?: () => Promise<string>;
26
+ }, options?: RequestInit): Promise<Response>;
23
27
  export declare function makeAuthenticatedSheetsRequest<T>(endpoint: string, ctx: {
24
28
  key: string;
25
29
  _refreshAuth?: () => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAIA,qBAAa,oBAAqB,SAAQ,KAAK;aAG7B,IAAI,CAAC,EAAE,MAAM;gBAD7B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA;CAK9B;AAmCD,wBAAsB,mBAAmB,CAAC,EACzC,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAoB,GACpB,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAkB1E;AAED,KAAK,oBAAoB,GAAG;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC9D,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,CAAC,EACxC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAUD,wBAAsB,8BAA8B,CAAC,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAC1D,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,CAAC,CAAC,CAUZ"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAGA,qBAAa,oBAAqB,SAAQ,KAAK;aAG7B,IAAI,CAAC,EAAE,MAAM;gBAD7B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA;CAK9B;AAsCD,wBAAsB,mBAAmB,CAAC,EACzC,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAoB,GACpB,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAuB1E;AAED,KAAK,oBAAoB,GAAG;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC9D,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,CAAC,EACxC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAuBD,wBAAsB,6BAA6B,CAClD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAC1D,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED,wBAAsB,8BAA8B,CAAC,CAAC,EACrD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAC1D,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,CAAC,CAAC,CAUZ"}
@@ -9,6 +9,11 @@ export declare const SpreadsheetsEndpoints: {
9
9
  delete: (ctx: import("..").GoogleSheetsContext, args: {
10
10
  spreadsheetId: string;
11
11
  }) => Promise<void>;
12
+ list: (ctx: import("..").GoogleSheetsContext, args: {
13
+ query?: string | undefined;
14
+ pageSize?: number | undefined;
15
+ pageToken?: string | undefined;
16
+ }) => Promise<import("./types").ListSpreadsheetsResponse>;
12
17
  };
13
18
  export declare const SheetsEndpoints: {
14
19
  appendRow: (ctx: import("..").GoogleSheetsContext, args: {
@@ -63,6 +68,9 @@ export declare const SheetsEndpoints: {
63
68
  startIndex?: number | undefined;
64
69
  endIndex?: number | undefined;
65
70
  }) => Promise<import("../types").BatchUpdateSpreadsheetResponse>;
71
+ listSheetsInSpreadsheet: (ctx: import("..").GoogleSheetsContext, args: {
72
+ spreadsheetId: string;
73
+ }) => Promise<import("./types").ListSheetsResponse>;
66
74
  };
67
75
  export * from './types';
68
76
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../endpoints/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAGjC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS3B,CAAC;AAEF,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../endpoints/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;CAIjC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU3B,CAAC;AAEF,cAAc,SAAS,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { GoogleSheetsEndpoints } from '..';
1
+ import type { GoogleSheetsEndpoints } from '../index';
2
2
  export declare const appendRow: GoogleSheetsEndpoints['sheetsAppendRow'];
3
3
  export declare const appendOrUpdateRow: GoogleSheetsEndpoints['sheetsAppendOrUpdateRow'];
4
4
  export declare const getRows: GoogleSheetsEndpoints['sheetsGetRows'];
@@ -6,5 +6,6 @@ export declare const updateRow: GoogleSheetsEndpoints['sheetsUpdateRow'];
6
6
  export declare const clearSheet: GoogleSheetsEndpoints['sheetsClearSheet'];
7
7
  export declare const createSheet: GoogleSheetsEndpoints['sheetsCreateSheet'];
8
8
  export declare const deleteSheet: GoogleSheetsEndpoints['sheetsDeleteSheet'];
9
+ export declare const listSheetsInSpreadsheet: GoogleSheetsEndpoints['sheetsListSheetsInSpreadsheet'];
9
10
  export declare const deleteRowsOrColumns: GoogleSheetsEndpoints['sheetsDeleteRowsOrColumns'];
10
11
  //# sourceMappingURL=sheets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheets.d.ts","sourceRoot":"","sources":["../../endpoints/sheets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAKhD,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,iBAAiB,CAiD9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAAqB,CAAC,yBAAyB,CAqH7E,CAAC;AAEH,eAAO,MAAM,OAAO,EAAE,qBAAqB,CAAC,eAAe,CA+C1D,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,iBAAiB,CAkD9D,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,kBAAkB,CA8BhE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBAAqB,CAAC,mBAAmB,CA8ClE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBAAqB,CAAC,mBAAmB,CAkClE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,qBAAqB,CAAC,2BAA2B,CA+CjF,CAAC"}
1
+ {"version":3,"file":"sheets.d.ts","sourceRoot":"","sources":["../../endpoints/sheets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAStD,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,iBAAiB,CAiD9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAAqB,CAAC,yBAAyB,CAqH7E,CAAC;AAEH,eAAO,MAAM,OAAO,EAAE,qBAAqB,CAAC,eAAe,CA+C1D,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,iBAAiB,CAkD9D,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,kBAAkB,CA8BhE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBAAqB,CAAC,mBAAmB,CA8ClE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBAAqB,CAAC,mBAAmB,CAkClE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,qBAAqB,CAAC,+BAA+B,CA0BzF,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,qBAAqB,CAAC,2BAA2B,CA+CjF,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { GoogleSheetsEndpoints } from '..';
1
+ import type { GoogleSheetsEndpoints } from '../index';
2
2
  export declare const create: GoogleSheetsEndpoints['spreadsheetsCreate'];
3
3
  export declare const deleteSpreadsheet: GoogleSheetsEndpoints['spreadsheetsDelete'];
4
+ export declare const listSpreadsheets: GoogleSheetsEndpoints['spreadsheetsList'];
4
5
  //# sourceMappingURL=spreadsheets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spreadsheets.d.ts","sourceRoot":"","sources":["../../endpoints/spreadsheets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAIhD,eAAO,MAAM,MAAM,EAAE,qBAAqB,CAAC,oBAAoB,CAiC9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAAqB,CAAC,oBAAoB,CAiCxE,CAAC"}
1
+ {"version":3,"file":"spreadsheets.d.ts","sourceRoot":"","sources":["../../endpoints/spreadsheets.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAMtD,eAAO,MAAM,MAAM,EAAE,qBAAqB,CAAC,oBAAoB,CAiC9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAAqB,CAAC,oBAAoB,CA6BxE,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,kBAAkB,CAiCrE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import type { AppendValuesResponse, BatchUpdateSpreadsheetResponse, BatchUpdateValuesResponse, ClearValuesResponse, Spreadsheet, UpdateValuesResponse, ValueRange } from '../types';
2
+ import type { AppendValuesResponse, BatchUpdateSpreadsheetResponse, BatchUpdateValuesResponse, ClearValuesResponse, SheetProperties, Spreadsheet, UpdateValuesResponse, ValueRange } from '../types';
3
3
  export declare const GoogleSheetsEndpointInputSchemas: {
4
4
  readonly spreadsheetsCreate: z.ZodObject<{
5
5
  properties: z.ZodOptional<z.ZodObject<{
@@ -35,6 +35,19 @@ export declare const GoogleSheetsEndpointInputSchemas: {
35
35
  }, {
36
36
  spreadsheetId: string;
37
37
  }>;
38
+ readonly spreadsheetsList: z.ZodObject<{
39
+ pageSize: z.ZodOptional<z.ZodNumber>;
40
+ pageToken: z.ZodOptional<z.ZodString>;
41
+ query: z.ZodOptional<z.ZodString>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ query?: string | undefined;
44
+ pageSize?: number | undefined;
45
+ pageToken?: string | undefined;
46
+ }, {
47
+ query?: string | undefined;
48
+ pageSize?: number | undefined;
49
+ pageToken?: string | undefined;
50
+ }>;
38
51
  readonly sheetsAppendRow: z.ZodObject<{
39
52
  spreadsheetId: z.ZodString;
40
53
  sheetName: z.ZodOptional<z.ZodString>;
@@ -175,6 +188,13 @@ export declare const GoogleSheetsEndpointInputSchemas: {
175
188
  startIndex?: number | undefined;
176
189
  endIndex?: number | undefined;
177
190
  }>;
191
+ readonly sheetsListSheetsInSpreadsheet: z.ZodObject<{
192
+ spreadsheetId: z.ZodString;
193
+ }, "strip", z.ZodTypeAny, {
194
+ spreadsheetId: string;
195
+ }, {
196
+ spreadsheetId: string;
197
+ }>;
178
198
  };
179
199
  export type GoogleSheetsEndpointInputs = {
180
200
  [K in keyof typeof GoogleSheetsEndpointInputSchemas]: z.infer<(typeof GoogleSheetsEndpointInputSchemas)[K]>;
@@ -219,6 +239,46 @@ export declare const GoogleSheetsEndpointOutputSchemas: {
219
239
  spreadsheetUrl?: string | undefined;
220
240
  }>;
221
241
  readonly spreadsheetsDelete: z.ZodVoid;
242
+ readonly spreadsheetsList: z.ZodObject<{
243
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
244
+ id: z.ZodOptional<z.ZodString>;
245
+ name: z.ZodOptional<z.ZodString>;
246
+ createdTime: z.ZodOptional<z.ZodString>;
247
+ modifiedTime: z.ZodOptional<z.ZodString>;
248
+ webViewLink: z.ZodOptional<z.ZodString>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ id?: string | undefined;
251
+ name?: string | undefined;
252
+ createdTime?: string | undefined;
253
+ modifiedTime?: string | undefined;
254
+ webViewLink?: string | undefined;
255
+ }, {
256
+ id?: string | undefined;
257
+ name?: string | undefined;
258
+ createdTime?: string | undefined;
259
+ modifiedTime?: string | undefined;
260
+ webViewLink?: string | undefined;
261
+ }>, "many">>;
262
+ nextPageToken: z.ZodOptional<z.ZodString>;
263
+ }, "strip", z.ZodTypeAny, {
264
+ files?: {
265
+ id?: string | undefined;
266
+ name?: string | undefined;
267
+ createdTime?: string | undefined;
268
+ modifiedTime?: string | undefined;
269
+ webViewLink?: string | undefined;
270
+ }[] | undefined;
271
+ nextPageToken?: string | undefined;
272
+ }, {
273
+ files?: {
274
+ id?: string | undefined;
275
+ name?: string | undefined;
276
+ createdTime?: string | undefined;
277
+ modifiedTime?: string | undefined;
278
+ webViewLink?: string | undefined;
279
+ }[] | undefined;
280
+ nextPageToken?: string | undefined;
281
+ }>;
222
282
  readonly sheetsAppendRow: z.ZodObject<{
223
283
  spreadsheetId: z.ZodOptional<z.ZodString>;
224
284
  totalUpdatedRows: z.ZodOptional<z.ZodNumber>;
@@ -572,10 +632,66 @@ export declare const GoogleSheetsEndpointOutputSchemas: {
572
632
  spreadsheetUrl?: string | undefined;
573
633
  } | undefined;
574
634
  }>;
635
+ readonly sheetsListSheetsInSpreadsheet: z.ZodObject<{
636
+ spreadsheetId: z.ZodOptional<z.ZodString>;
637
+ sheets: z.ZodOptional<z.ZodArray<z.ZodObject<{
638
+ sheetId: z.ZodOptional<z.ZodNumber>;
639
+ title: z.ZodOptional<z.ZodString>;
640
+ index: z.ZodOptional<z.ZodNumber>;
641
+ sheetType: z.ZodOptional<z.ZodEnum<["GRID", "OBJECT", "DATA_SOURCE"]>>;
642
+ hidden: z.ZodOptional<z.ZodBoolean>;
643
+ }, "strip", z.ZodTypeAny, {
644
+ title?: string | undefined;
645
+ sheetId?: number | undefined;
646
+ index?: number | undefined;
647
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
648
+ hidden?: boolean | undefined;
649
+ }, {
650
+ title?: string | undefined;
651
+ sheetId?: number | undefined;
652
+ index?: number | undefined;
653
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
654
+ hidden?: boolean | undefined;
655
+ }>, "many">>;
656
+ }, "strip", z.ZodTypeAny, {
657
+ spreadsheetId?: string | undefined;
658
+ sheets?: {
659
+ title?: string | undefined;
660
+ sheetId?: number | undefined;
661
+ index?: number | undefined;
662
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
663
+ hidden?: boolean | undefined;
664
+ }[] | undefined;
665
+ }, {
666
+ spreadsheetId?: string | undefined;
667
+ sheets?: {
668
+ title?: string | undefined;
669
+ sheetId?: number | undefined;
670
+ index?: number | undefined;
671
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
672
+ hidden?: boolean | undefined;
673
+ }[] | undefined;
674
+ }>;
675
+ };
676
+ export type ListSheetsResponse = {
677
+ spreadsheetId?: string;
678
+ sheets?: SheetProperties[];
679
+ };
680
+ export type SpreadsheetFile = {
681
+ id?: string;
682
+ name?: string;
683
+ createdTime?: string;
684
+ modifiedTime?: string;
685
+ webViewLink?: string;
686
+ };
687
+ export type ListSpreadsheetsResponse = {
688
+ files?: SpreadsheetFile[];
689
+ nextPageToken?: string;
575
690
  };
576
691
  export type GoogleSheetsEndpointOutputs = {
577
692
  spreadsheetsCreate: Spreadsheet;
578
693
  spreadsheetsDelete: void;
694
+ spreadsheetsList: ListSpreadsheetsResponse;
579
695
  sheetsAppendRow: BatchUpdateValuesResponse;
580
696
  sheetsAppendOrUpdateRow: UpdateValuesResponse | AppendValuesResponse;
581
697
  sheetsGetRows: ValueRange;
@@ -584,5 +700,6 @@ export type GoogleSheetsEndpointOutputs = {
584
700
  sheetsCreateSheet: BatchUpdateSpreadsheetResponse;
585
701
  sheetsDeleteSheet: BatchUpdateSpreadsheetResponse;
586
702
  sheetsDeleteRowsOrColumns: BatchUpdateSpreadsheetResponse;
703
+ sheetsListSheetsInSpreadsheet: ListSheetsResponse;
587
704
  };
588
705
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../endpoints/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACX,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,MAAM,UAAU,CAAC;AAsFlB,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWnC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG;KACvC,CAAC,IAAI,MAAM,OAAO,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAC5D,CAAC,OAAO,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAC5C;CACD,CAAC;AAyDF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWpC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GAAG;IACzC,kBAAkB,EAAE,WAAW,CAAC;IAChC,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe,EAAE,yBAAyB,CAAC;IAC3C,uBAAuB,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACrE,aAAa,EAAE,UAAU,CAAC;IAC1B,eAAe,EAAE,yBAAyB,CAAC;IAC3C,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,iBAAiB,EAAE,8BAA8B,CAAC;IAClD,iBAAiB,EAAE,8BAA8B,CAAC;IAClD,yBAAyB,EAAE,8BAA8B,CAAC;CAC1D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../endpoints/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACX,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,MAAM,UAAU,CAAC;AAqGlB,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAanC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG;KACvC,CAAC,IAAI,MAAM,OAAO,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAC5D,CAAC,OAAO,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAC5C;CACD,CAAC;AA2EF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAapC,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACzC,kBAAkB,EAAE,WAAW,CAAC;IAChC,kBAAkB,EAAE,IAAI,CAAC;IACzB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,eAAe,EAAE,yBAAyB,CAAC;IAC3C,uBAAuB,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACrE,aAAa,EAAE,UAAU,CAAC;IAC1B,eAAe,EAAE,yBAAyB,CAAC;IAC3C,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,iBAAiB,EAAE,8BAA8B,CAAC;IAClD,iBAAiB,EAAE,8BAA8B,CAAC;IAClD,yBAAyB,EAAE,8BAA8B,CAAC;IAC1D,6BAA6B,EAAE,kBAAkB,CAAC;CAClD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import type { BindEndpoints, BindWebhooks, CorsairEndpoint, CorsairPlugin, CorsairPluginContext, CorsairWebhook, KeyBuilderContext, PluginPermissionsConfig } from 'corsair/core';
2
- import type { PickAuth } from 'corsair/core';
1
+ import type { BindEndpoints, BindWebhooks, CorsairEndpoint, CorsairPlugin, CorsairPluginContext, CorsairWebhook, KeyBuilderContext, PickAuth, PluginPermissionsConfig } from 'corsair/core';
3
2
  import type { GoogleSheetsEndpointInputs, GoogleSheetsEndpointOutputs } from './endpoints';
4
3
  import { GoogleSheetsSchema } from './schema';
5
4
  import type { GoogleSheetsWebhookOutputs, GoogleSheetsWebhookPayload, RangeUpdatedEvent } from './webhooks';
@@ -8,6 +7,7 @@ type GoogleSheetsEndpoint<K extends keyof GoogleSheetsEndpointOutputs> = Corsair
8
7
  export type GoogleSheetsEndpoints = {
9
8
  spreadsheetsCreate: GoogleSheetsEndpoint<'spreadsheetsCreate'>;
10
9
  spreadsheetsDelete: GoogleSheetsEndpoint<'spreadsheetsDelete'>;
10
+ spreadsheetsList: GoogleSheetsEndpoint<'spreadsheetsList'>;
11
11
  sheetsAppendRow: GoogleSheetsEndpoint<'sheetsAppendRow'>;
12
12
  sheetsAppendOrUpdateRow: GoogleSheetsEndpoint<'sheetsAppendOrUpdateRow'>;
13
13
  sheetsGetRows: GoogleSheetsEndpoint<'sheetsGetRows'>;
@@ -16,6 +16,7 @@ export type GoogleSheetsEndpoints = {
16
16
  sheetsCreateSheet: GoogleSheetsEndpoint<'sheetsCreateSheet'>;
17
17
  sheetsDeleteSheet: GoogleSheetsEndpoint<'sheetsDeleteSheet'>;
18
18
  sheetsDeleteRowsOrColumns: GoogleSheetsEndpoint<'sheetsDeleteRowsOrColumns'>;
19
+ sheetsListSheetsInSpreadsheet: GoogleSheetsEndpoint<'sheetsListSheetsInSpreadsheet'>;
19
20
  };
20
21
  export type GoogleSheetsBoundEndpoints = BindEndpoints<typeof googleSheetsEndpointsNested>;
21
22
  type GoogleSheetsWebhook<K extends keyof GoogleSheetsWebhookOutputs, TEvent> = CorsairWebhook<GoogleSheetsContext, GoogleSheetsWebhookPayload<TEvent>, GoogleSheetsWebhookOutputs[K]>;
@@ -27,6 +28,7 @@ declare const googleSheetsEndpointsNested: {
27
28
  readonly spreadsheets: {
28
29
  readonly create: GoogleSheetsEndpoint<"spreadsheetsCreate">;
29
30
  readonly delete: GoogleSheetsEndpoint<"spreadsheetsDelete">;
31
+ readonly list: GoogleSheetsEndpoint<"spreadsheetsList">;
30
32
  };
31
33
  readonly sheets: {
32
34
  readonly appendRow: GoogleSheetsEndpoint<"sheetsAppendRow">;
@@ -37,6 +39,7 @@ declare const googleSheetsEndpointsNested: {
37
39
  readonly createSheet: GoogleSheetsEndpoint<"sheetsCreateSheet">;
38
40
  readonly deleteSheet: GoogleSheetsEndpoint<"sheetsDeleteSheet">;
39
41
  readonly deleteRowsOrColumns: GoogleSheetsEndpoint<"sheetsDeleteRowsOrColumns">;
42
+ readonly listSheetsInSpreadsheet: GoogleSheetsEndpoint<"sheetsListSheetsInSpreadsheet">;
40
43
  };
41
44
  };
42
45
  export declare const googlesheetsEndpointSchemas: {
@@ -117,6 +120,61 @@ export declare const googlesheetsEndpointSchemas: {
117
120
  }>;
118
121
  readonly output: import("zod").ZodVoid;
119
122
  };
123
+ readonly 'spreadsheets.list': {
124
+ readonly input: import("zod").ZodObject<{
125
+ pageSize: import("zod").ZodOptional<import("zod").ZodNumber>;
126
+ pageToken: import("zod").ZodOptional<import("zod").ZodString>;
127
+ query: import("zod").ZodOptional<import("zod").ZodString>;
128
+ }, "strip", import("zod").ZodTypeAny, {
129
+ query?: string | undefined;
130
+ pageSize?: number | undefined;
131
+ pageToken?: string | undefined;
132
+ }, {
133
+ query?: string | undefined;
134
+ pageSize?: number | undefined;
135
+ pageToken?: string | undefined;
136
+ }>;
137
+ readonly output: import("zod").ZodObject<{
138
+ files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
139
+ id: import("zod").ZodOptional<import("zod").ZodString>;
140
+ name: import("zod").ZodOptional<import("zod").ZodString>;
141
+ createdTime: import("zod").ZodOptional<import("zod").ZodString>;
142
+ modifiedTime: import("zod").ZodOptional<import("zod").ZodString>;
143
+ webViewLink: import("zod").ZodOptional<import("zod").ZodString>;
144
+ }, "strip", import("zod").ZodTypeAny, {
145
+ id?: string | undefined;
146
+ name?: string | undefined;
147
+ createdTime?: string | undefined;
148
+ modifiedTime?: string | undefined;
149
+ webViewLink?: string | undefined;
150
+ }, {
151
+ id?: string | undefined;
152
+ name?: string | undefined;
153
+ createdTime?: string | undefined;
154
+ modifiedTime?: string | undefined;
155
+ webViewLink?: string | undefined;
156
+ }>, "many">>;
157
+ nextPageToken: import("zod").ZodOptional<import("zod").ZodString>;
158
+ }, "strip", import("zod").ZodTypeAny, {
159
+ files?: {
160
+ id?: string | undefined;
161
+ name?: string | undefined;
162
+ createdTime?: string | undefined;
163
+ modifiedTime?: string | undefined;
164
+ webViewLink?: string | undefined;
165
+ }[] | undefined;
166
+ nextPageToken?: string | undefined;
167
+ }, {
168
+ files?: {
169
+ id?: string | undefined;
170
+ name?: string | undefined;
171
+ createdTime?: string | undefined;
172
+ modifiedTime?: string | undefined;
173
+ webViewLink?: string | undefined;
174
+ }[] | undefined;
175
+ nextPageToken?: string | undefined;
176
+ }>;
177
+ };
120
178
  readonly 'sheets.appendRow': {
121
179
  readonly input: import("zod").ZodObject<{
122
180
  spreadsheetId: import("zod").ZodString;
@@ -626,6 +684,55 @@ export declare const googlesheetsEndpointSchemas: {
626
684
  } | undefined;
627
685
  }>;
628
686
  };
687
+ readonly 'sheets.listSheetsInSpreadsheet': {
688
+ readonly input: import("zod").ZodObject<{
689
+ spreadsheetId: import("zod").ZodString;
690
+ }, "strip", import("zod").ZodTypeAny, {
691
+ spreadsheetId: string;
692
+ }, {
693
+ spreadsheetId: string;
694
+ }>;
695
+ readonly output: import("zod").ZodObject<{
696
+ spreadsheetId: import("zod").ZodOptional<import("zod").ZodString>;
697
+ sheets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
698
+ sheetId: import("zod").ZodOptional<import("zod").ZodNumber>;
699
+ title: import("zod").ZodOptional<import("zod").ZodString>;
700
+ index: import("zod").ZodOptional<import("zod").ZodNumber>;
701
+ sheetType: import("zod").ZodOptional<import("zod").ZodEnum<["GRID", "OBJECT", "DATA_SOURCE"]>>;
702
+ hidden: import("zod").ZodOptional<import("zod").ZodBoolean>;
703
+ }, "strip", import("zod").ZodTypeAny, {
704
+ title?: string | undefined;
705
+ sheetId?: number | undefined;
706
+ index?: number | undefined;
707
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
708
+ hidden?: boolean | undefined;
709
+ }, {
710
+ title?: string | undefined;
711
+ sheetId?: number | undefined;
712
+ index?: number | undefined;
713
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
714
+ hidden?: boolean | undefined;
715
+ }>, "many">>;
716
+ }, "strip", import("zod").ZodTypeAny, {
717
+ spreadsheetId?: string | undefined;
718
+ sheets?: {
719
+ title?: string | undefined;
720
+ sheetId?: number | undefined;
721
+ index?: number | undefined;
722
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
723
+ hidden?: boolean | undefined;
724
+ }[] | undefined;
725
+ }, {
726
+ spreadsheetId?: string | undefined;
727
+ sheets?: {
728
+ title?: string | undefined;
729
+ sheetId?: number | undefined;
730
+ index?: number | undefined;
731
+ sheetType?: "GRID" | "OBJECT" | "DATA_SOURCE" | undefined;
732
+ hidden?: boolean | undefined;
733
+ }[] | undefined;
734
+ }>;
735
+ };
629
736
  };
630
737
  declare const googleSheetsWebhooksNested: {
631
738
  readonly rangeUpdated: GoogleSheetsWebhook<"rangeUpdated", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{request as Z}from"corsair/http";var b=class extends Error{constructor(o,a){super(o);this.code=a;this.name="GoogleSheetsAPIError"}},J="https://sheets.googleapis.com/v4";async function Q(s,e,o){let a=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:s,client_secret:e,refresh_token:o,grant_type:"refresh_token"})});if(!a.ok){let r=await a.text();throw new b(`Failed to refresh access token: ${r}`,a.status)}return await a.json()}async function I({accessToken:s,expiresAt:e,clientId:o,clientSecret:a,refreshToken:n,forceRefresh:r=!1}){let p=Math.floor(Date.now()/1e3);if(!r&&s&&e&&Number(e)>p+300)return{accessToken:s,expiresAt:Number(e),refreshed:!1};let l=await Q(o,a,n);return{accessToken:l.access_token,expiresAt:p+l.expires_in,refreshed:!0}}async function v(s,e,o={}){let{method:a="GET",body:n,query:r}=o;return await Z({BASE:J,VERSION:"1.0.0",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:e,HEADERS:{"Content-Type":"application/json"}},{method:a,url:s,body:a==="POST"||a==="PUT"||a==="PATCH"?n:void 0,mediaType:"application/json",query:r})}function X(s){return s instanceof Error&&"status"in s&&s.status===401}async function c(s,e,o={}){try{return await v(s,e.key,o)}catch(a){if(X(a)&&e._refreshAuth){let n=await e._refreshAuth();return await v(s,n,o)}throw a}}import{logEventFromContext as R}from"corsair/core";var T=async(s,e)=>{let o=e.range||`${e.sheetName||"Sheet1"}!A:Z`,a=e.values?[e.values]:[],n=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}:append`,s,{method:"POST",query:{valueInputOption:e.valueInputOption||"USER_ENTERED",insertDataOption:e.insertDataOption||"INSERT_ROWS"},body:{values:a,majorDimension:"ROWS"}});if(n.responses&&n.responses.length>0&&s.db.rows)try{let r=n.responses[0];if(r){let p=r.updatedRange||o,d=e.sheetName||"Sheet1",l=`${e.spreadsheetId}_${d}_${p}`;await s.db.rows.upsertByEntityId(l,{rowId:l,spreadsheetId:e.spreadsheetId,sheetName:d,range:p,values:e.values,createdAt:new Date})}}catch(r){console.warn("Failed to save row to database:",r)}return await R(s,"googlesheets.sheets.appendRow",{...e},"completed"),n},U=async(s,e)=>{let o=e.sheetName||"Sheet1",a=e.keyColumn||"A",n=e.keyValue;if(!n)throw new Error("keyValue is required for appendOrUpdateRow");let r=`${o}!${a}:${a}`,p=await c(`/spreadsheets/${e.spreadsheetId}/values/${r}`,s,{method:"GET"}),d=-1;if(p.values){for(let g=0;g<p.values.length;g++)if(p.values[g]?.[0]===String(n)){d=g;break}}let l=e.values?[e.values]:[],m=d>=0?`${o}!${d+1}:${d+1}`:`${o}!A:Z`;if(d>=0){let g=await c(`/spreadsheets/${e.spreadsheetId}/values/${m}`,s,{method:"PUT",query:{valueInputOption:e.valueInputOption||"USER_ENTERED"},body:{values:l,majorDimension:"ROWS"}});if(s.db.rows)try{let w=g.updatedRange||m,E=`${e.spreadsheetId}_${o}_${w}`;await s.db.rows.upsertByEntityId(E,{rowId:E,spreadsheetId:e.spreadsheetId,sheetName:o,range:w,values:e.values,createdAt:new Date})}catch(w){console.warn("Failed to update row in database:",w)}return await R(s,"googlesheets.sheets.appendOrUpdateRow",{...e,action:"update"},"completed"),g}else{let g=await c(`/spreadsheets/${e.spreadsheetId}/values/${m}:append`,s,{method:"POST",query:{valueInputOption:e.valueInputOption||"USER_ENTERED",insertDataOption:e.insertDataOption||"INSERT_ROWS"},body:{values:l,majorDimension:"ROWS"}});if(s.db.rows)try{let w=g.updates?.updatedRange||m,E=`${e.spreadsheetId}_${o}_${w}`;await s.db.rows.upsertByEntityId(E,{rowId:E,spreadsheetId:e.spreadsheetId,sheetName:o,range:w,values:e.values,createdAt:new Date})}catch(w){console.warn("Failed to save row to database:",w)}return await R(s,"googlesheets.sheets.appendOrUpdateRow",{...e,action:"append"},"completed"),g}},A=async(s,e)=>{let o=e.range||`${e.sheetName||"Sheet1"}!A:Z`,a=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}`,s,{method:"GET",query:{valueRenderOption:e.valueRenderOption||"FORMATTED_VALUE",dateTimeRenderOption:e.dateTimeRenderOption||"FORMATTED_STRING"}});if(a.values&&s.db.rows)try{let n=e.sheetName||"Sheet1";for(let r=0;r<a.values.length;r++){let p=a.values[r];if(p){let d=r+1,l=`${n}!${d}:${d}`,m=`${e.spreadsheetId}_${n}_${l}`;await s.db.rows.upsertByEntityId(m,{rowId:m,spreadsheetId:e.spreadsheetId,sheetName:n,range:l,values:p,createdAt:new Date})}}}catch(n){console.warn("Failed to save rows to database:",n)}return await R(s,"googlesheets.sheets.getRows",{...e},"completed"),a},C=async(s,e)=>{let o=e.range||`${e.sheetName||"Sheet1"}!${e.rowIndex||1}:${e.rowIndex||1}`,a=e.values?[e.values]:[],n=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}`,s,{method:"PUT",query:{valueInputOption:e.valueInputOption||"USER_ENTERED"},body:{values:a,majorDimension:"ROWS"}});if(n.responses&&n.responses.length>0&&s.db.rows)try{let r=n.responses[0];if(r){let p=r.updatedRange||o,d=e.sheetName||"Sheet1",l=`${e.spreadsheetId}_${d}_${p}`;await s.db.rows.upsertByEntityId(l,{rowId:l,spreadsheetId:e.spreadsheetId,sheetName:d,range:p,values:e.values,createdAt:new Date})}}catch(r){console.warn("Failed to update row in database:",r)}return await R(s,"googlesheets.sheets.updateRow",{...e},"completed"),n},_=async(s,e)=>{let o=e.range||e.sheetName||"Sheet1",a=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}:clear`,s,{method:"POST"});if(a.clearedRange&&s.db.rows)try{let n=e.sheetName||"Sheet1",r=a.clearedRange,p=`${e.spreadsheetId}_${n}_${r}`;await s.db.rows.deleteByEntityId(p)}catch(n){console.warn("Failed to delete rows from database:",n)}return await R(s,"googlesheets.sheets.clearSheet",{...e},"completed"),a},D=async(s,e)=>{let o=await c(`/spreadsheets/${e.spreadsheetId}:batchUpdate`,s,{method:"POST",body:{requests:[{addSheet:{properties:{title:e.title||"Sheet1"}}}]}});if(o.replies&&o.replies.length>0&&s.db.sheets)try{let n=o.replies[0].addSheet?.properties;n?.sheetId!==void 0&&await s.db.sheets.upsertByEntityId(String(n.sheetId),{sheetId:String(n.sheetId),spreadsheetId:e.spreadsheetId,title:n.title||e.title||"Sheet1",index:n.index,createdAt:new Date})}catch(a){console.warn("Failed to save sheet to database:",a)}return await R(s,"googlesheets.sheets.createSheet",{...e},"completed"),o},P=async(s,e)=>{let o=await c(`/spreadsheets/${e.spreadsheetId}:batchUpdate`,s,{method:"POST",body:{requests:[{deleteSheet:{sheetId:e.sheetId}}]}});if(s.db.sheets)try{await s.db.sheets.deleteByEntityId(String(e.sheetId))}catch(a){console.warn("Failed to delete sheet from database:",a)}return await R(s,"googlesheets.sheets.deleteSheet",{...e},"completed"),o},N=async(s,e)=>{let o=e.dimension||"ROWS",a=e.startIndex||0,n=e.endIndex||a+1,r=await c(`/spreadsheets/${e.spreadsheetId}:batchUpdate`,s,{method:"POST",body:{requests:[{deleteDimension:{range:{sheetId:e.sheetId,dimension:o,startIndex:a,endIndex:n}}}]}});if(o==="ROWS"&&s.db.rows)try{let p=`Sheet_${e.sheetId}`;for(let d=a;d<n;d++){let l=d+1,m=`${p}!${l}:${l}`,g=`${e.spreadsheetId}_${p}_${m}`;await s.db.rows.deleteByEntityId(g)}}catch(p){console.warn("Failed to delete rows from database:",p)}return await R(s,"googlesheets.sheets.deleteRowsOrColumns",{...e},"completed"),r};import{logEventFromContext as $}from"corsair/core";var x=async(s,e)=>{let o=await c("/spreadsheets",s,{method:"POST",body:{properties:e.properties}});if(o.spreadsheetId&&s.db.spreadsheets)try{await s.db.spreadsheets.upsertByEntityId(o.spreadsheetId,{spreadsheetId:o.spreadsheetId,title:o.properties?.title,spreadsheetUrl:o.spreadsheetUrl,createdAt:new Date})}catch(a){console.warn("Failed to save spreadsheet to database:",a)}return await $(s,"googlesheets.spreadsheets.create",{...e},"completed"),o},W=async(s,e)=>{let o=await fetch(`https://www.googleapis.com/drive/v3/files/${e.spreadsheetId}`,{method:"DELETE",headers:{Authorization:`Bearer ${s.key}`}});if(!o.ok&&o.status!==404){let a=await o.text();throw new Error(`Failed to delete spreadsheet: ${o.status} ${a}`)}if(s.db.spreadsheets)try{await s.db.spreadsheets.deleteByEntityId(e.spreadsheetId)}catch(a){console.warn("Failed to delete spreadsheet from database:",a)}await $(s,"googlesheets.spreadsheets.delete",{...e},"completed")};import{z as t}from"zod";var te=t.object({properties:t.object({title:t.string().optional(),locale:t.string().optional(),timeZone:t.string().optional()}).optional()}),se=t.object({spreadsheetId:t.string()}),oe=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional(),values:t.array(t.union([t.string(),t.number(),t.boolean(),t.null()])).optional(),valueInputOption:t.enum(["RAW","USER_ENTERED"]).optional(),insertDataOption:t.enum(["OVERWRITE","INSERT_ROWS"]).optional()}),ae=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),keyColumn:t.string().optional(),keyValue:t.union([t.string(),t.number()]).optional(),values:t.array(t.union([t.string(),t.number(),t.boolean(),t.null()])).optional(),valueInputOption:t.enum(["RAW","USER_ENTERED"]).optional(),insertDataOption:t.enum(["OVERWRITE","INSERT_ROWS"]).optional()}),ne=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional(),valueRenderOption:t.enum(["FORMATTED_VALUE","UNFORMATTED_VALUE","FORMULA"]).optional(),dateTimeRenderOption:t.enum(["SERIAL_NUMBER","FORMATTED_STRING"]).optional()}),re=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional(),rowIndex:t.number().optional(),values:t.array(t.union([t.string(),t.number(),t.boolean(),t.null()])).optional(),valueInputOption:t.enum(["RAW","USER_ENTERED"]).optional()}),pe=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional()}),de=t.object({spreadsheetId:t.string(),title:t.string().optional()}),he=t.object({spreadsheetId:t.string(),sheetId:t.number()}),ie=t.object({spreadsheetId:t.string(),sheetId:t.number(),dimension:t.enum(["ROWS","COLUMNS"]).optional(),startIndex:t.number().optional(),endIndex:t.number().optional()}),u={spreadsheetsCreate:te,spreadsheetsDelete:se,sheetsAppendRow:oe,sheetsAppendOrUpdateRow:ae,sheetsGetRows:ne,sheetsUpdateRow:re,sheetsClearSheet:pe,sheetsCreateSheet:de,sheetsDeleteSheet:he,sheetsDeleteRowsOrColumns:ie},le=t.object({title:t.string().optional(),locale:t.string().optional(),autoRecalc:t.enum(["ON_CHANGE","ON_UPDATE","HOUR","MINUTE"]).optional(),timeZone:t.string().optional()}),B=t.object({spreadsheetId:t.string().optional(),properties:le.optional(),spreadsheetUrl:t.string().optional()}),V=t.object({range:t.string().optional(),majorDimension:t.enum(["ROWS","COLUMNS","DIMENSION_UNSPECIFIED"]).optional(),values:t.array(t.array(t.union([t.string(),t.number(),t.boolean(),t.null()]))).optional()}),f=t.object({spreadsheetId:t.string().optional(),totalUpdatedRows:t.number().optional(),totalUpdatedColumns:t.number().optional(),totalUpdatedCells:t.number().optional(),totalUpdatedSheets:t.number().optional(),responses:t.array(V).optional()}),ce=t.object({spreadsheetId:t.string().optional(),clearedRange:t.string().optional()}),ge=t.object({sheetId:t.number().optional(),title:t.string().optional(),index:t.number().optional(),sheetType:t.enum(["GRID","OBJECT","DATA_SOURCE"]).optional(),hidden:t.boolean().optional()}),Ue=t.object({properties:ge.optional()}),k=t.object({spreadsheetId:t.string().optional(),replies:t.array(t.any()).optional(),updatedSpreadsheet:B.optional()}),S={spreadsheetsCreate:B,spreadsheetsDelete:t.void(),sheetsAppendRow:f,sheetsAppendOrUpdateRow:f,sheetsGetRows:V,sheetsUpdateRow:f,sheetsClearSheet:ce,sheetsCreateSheet:k,sheetsDeleteSheet:k,sheetsDeleteRowsOrColumns:k};var O={create:x,delete:W},y={appendRow:T,appendOrUpdateRow:U,getRows:A,updateRow:C,clearSheet:_,createSheet:D,deleteSheet:P,deleteRowsOrColumns:N};import{z as i}from"zod";var j=i.object({spreadsheetId:i.string(),title:i.string().optional(),spreadsheetUrl:i.string().optional(),createdAt:i.coerce.date().optional()}),q=i.object({sheetId:i.string(),spreadsheetId:i.string(),title:i.string().optional(),index:i.number().optional(),createdAt:i.coerce.date().optional()}),F=i.object({rowId:i.string(),spreadsheetId:i.string(),sheetName:i.string().optional(),range:i.string().optional(),values:i.array(i.union([i.string(),i.number(),i.boolean(),i.null()])).optional(),createdAt:i.coerce.date().optional()});var L={version:"1.0.0",entities:{spreadsheets:j,sheets:q,rows:F}};import{logEventFromContext as Se}from"corsair/core";import{z as h}from"zod";var M=h.object({spreadsheetId:h.string().optional(),sheetName:h.string().optional(),range:h.string().optional(),values:h.array(h.union([h.string(),h.number(),h.boolean(),h.null()])).optional(),eventType:h.literal("rangeUpdated").optional(),timestamp:h.string().optional(),event:h.unknown().optional()}),K=h.object({eventType:h.literal("rangeUpdated"),spreadsheetId:h.string(),sheetName:h.string(),range:h.string(),values:h.array(h.union([h.string(),h.number(),h.boolean(),h.null()])),timestamp:h.string()});function ue(s){return typeof s=="string"?JSON.parse(s):s}function G(s){return e=>ue(e.body).eventType===s}var z={match:G("rangeUpdated"),handler:async(s,e)=>{let o=e.payload;if(!o.spreadsheetId||!o.values)return{success:!1,error:"Missing required fields: spreadsheetId or values"};let a={eventType:"rangeUpdated",spreadsheetId:o.spreadsheetId,sheetName:o.sheetName||"Sheet1",range:o.range||"A:Z",values:o.values,timestamp:o.timestamp||new Date().toISOString()};if(s.db.rows)try{let n=`${o.spreadsheetId}_${o.sheetName}_${o.range||"A:Z"}`;await s.db.rows.upsertByEntityId(n,{rowId:n,spreadsheetId:o.spreadsheetId,sheetName:o.sheetName||"Sheet1",range:o.range||"A:Z",values:o.values,createdAt:new Date})}catch(n){console.warn("Failed to save/update range in database:",n)}return await Se(s,"googlesheets.webhook.rangeUpdated",{...a},"completed"),{success:!0,data:a}}};var H={rangeUpdated:z};var me={spreadsheets:{create:O.create,delete:O.delete},sheets:{appendRow:y.appendRow,appendOrUpdateRow:y.appendOrUpdateRow,getRows:y.getRows,updateRow:y.updateRow,clearSheet:y.clearSheet,createSheet:y.createSheet,deleteSheet:y.deleteSheet,deleteRowsOrColumns:y.deleteRowsOrColumns}},we={"spreadsheets.create":{input:u.spreadsheetsCreate,output:S.spreadsheetsCreate},"spreadsheets.delete":{input:u.spreadsheetsDelete,output:S.spreadsheetsDelete},"sheets.appendRow":{input:u.sheetsAppendRow,output:S.sheetsAppendRow},"sheets.appendOrUpdateRow":{input:u.sheetsAppendOrUpdateRow,output:S.sheetsAppendOrUpdateRow},"sheets.getRows":{input:u.sheetsGetRows,output:S.sheetsGetRows},"sheets.updateRow":{input:u.sheetsUpdateRow,output:S.sheetsUpdateRow},"sheets.clearSheet":{input:u.sheetsClearSheet,output:S.sheetsClearSheet},"sheets.createSheet":{input:u.sheetsCreateSheet,output:S.sheetsCreateSheet},"sheets.deleteSheet":{input:u.sheetsDeleteSheet,output:S.sheetsDeleteSheet},"sheets.deleteRowsOrColumns":{input:u.sheetsDeleteRowsOrColumns,output:S.sheetsDeleteRowsOrColumns}},Re={rangeUpdated:H.rangeUpdated},ye={rangeUpdated:{description:"A range of cells in a Google Sheet was updated",payload:M,response:K}},Ee="oauth_2",be={"spreadsheets.create":{riskLevel:"write",description:"Create a new spreadsheet"},"spreadsheets.delete":{riskLevel:"destructive",irreversible:!0,description:"Permanently delete a spreadsheet [DESTRUCTIVE \xB7 IRREVERSIBLE]"},"sheets.appendRow":{riskLevel:"write",description:"Append a new row to a sheet"},"sheets.appendOrUpdateRow":{riskLevel:"write",description:"Append a new row or update an existing one"},"sheets.getRows":{riskLevel:"read",description:"Read rows from a sheet"},"sheets.updateRow":{riskLevel:"write",description:"Update an existing row in a sheet"},"sheets.clearSheet":{riskLevel:"destructive",description:"Clear all data from a sheet [DESTRUCTIVE]"},"sheets.createSheet":{riskLevel:"write",description:"Add a new sheet tab to a spreadsheet"},"sheets.deleteSheet":{riskLevel:"destructive",irreversible:!0,description:"Delete a sheet tab and all its data [DESTRUCTIVE \xB7 IRREVERSIBLE]"},"sheets.deleteRowsOrColumns":{riskLevel:"destructive",description:"Delete rows or columns from a sheet [DESTRUCTIVE]"}};function Qe(s={}){let e={...s,authType:s.authType??Ee};return{id:"googlesheets",schema:L,options:e,oauthConfig:{providerName:"Google",authUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/spreadsheets"],authParams:{access_type:"offline",prompt:"consent"}},hooks:e.hooks,webhookHooks:e.webhookHooks,endpoints:me,webhooks:Re,endpointMeta:be,endpointSchemas:we,webhookSchemas:ye,keyBuilder:async o=>{if(e.key)return e.key;if(o.authType==="oauth_2"){let[a,n,r]=await Promise.all([o.keys.get_access_token(),o.keys.get_expires_at(),o.keys.get_refresh_token()]);if(!r)throw new Error("[corsair:googlesheets] No refresh token. Cannot get access token.");let p=await o.keys.get_integration_credentials();if(!p.client_id||!p.client_secret)throw new Error("[corsair:googlesheets] No client id or client secret");try{let d=await I({accessToken:a,expiresAt:n,refreshToken:r,clientId:p.client_id,clientSecret:p.client_secret});return d.refreshed&&await Promise.all([o.keys.set_access_token(d.accessToken),o.keys.set_expires_at(String(d.expiresAt))]),o._refreshAuth=async()=>{let l=await I({accessToken:null,expiresAt:null,refreshToken:r,clientId:p.client_id,clientSecret:p.client_secret,forceRefresh:!0});return await o.keys.set_access_token(l.accessToken),await o.keys.set_expires_at(String(l.expiresAt)),l.accessToken},d.accessToken}catch(d){throw new Error(`[corsair:googlesheets] Failed to get valid access token: ${d instanceof Error?d.message:String(d)}`)}}return""},pluginWebhookMatcher:o=>{let a=o.body;if(!a)return!1;let n=typeof a?.spreadsheetId=="string",r=a?.eventType==="rangeUpdated";return n||r}}}export{G as createGoogleSheetsWebhookMatcher,Qe as googlesheets,we as googlesheetsEndpointSchemas};
1
+ import{request as ee}from"corsair/http";var f=class extends Error{constructor(o,a){super(o);this.code=a;this.name="GoogleSheetsAPIError"}},te="https://sheets.googleapis.com/v4";async function se(s,e,o){let a=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:s,client_secret:e,refresh_token:o,grant_type:"refresh_token"})});if(!a.ok){let r=await a.text();throw new f(`Failed to refresh access token: ${r}`,a.status)}return await a.json()}async function b({accessToken:s,expiresAt:e,clientId:o,clientSecret:a,refreshToken:n,forceRefresh:r=!1}){let p=Math.floor(Date.now()/1e3);if(!r&&s&&e&&Number(e)>p+300)return{accessToken:s,expiresAt:Number(e),refreshed:!1};let l=await se(o,a,n);return{accessToken:l.access_token,expiresAt:p+l.expires_in,refreshed:!0}}async function U(s,e,o={}){let{method:a="GET",body:n,query:r}=o;return await ee({BASE:te,VERSION:"1.0.0",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:e,HEADERS:{"Content-Type":"application/json"}},{method:a,url:s,body:a==="POST"||a==="PUT"||a==="PATCH"?n:void 0,mediaType:"application/json",query:r})}function oe(s){return s instanceof Error&&"status"in s&&s.status===401}var ae="https://www.googleapis.com/drive/v3";async function A(s,e,o={}){return fetch(`${ae}${s}`,{...o,headers:{...o.headers,Authorization:`Bearer ${e}`}})}async function k(s,e,o={}){let a=await A(s,e.key,o);if(a.status===401&&e._refreshAuth){let n=await e._refreshAuth();return A(s,n,o)}return a}async function c(s,e,o={}){try{return await U(s,e.key,o)}catch(a){if(oe(a)&&e._refreshAuth){let n=await e._refreshAuth();return await U(s,n,o)}throw a}}import{logEventFromContext as m}from"corsair/core";var C=async(s,e)=>{let o=e.range||`${e.sheetName||"Sheet1"}!A:Z`,a=e.values?[e.values]:[],n=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}:append`,s,{method:"POST",query:{valueInputOption:e.valueInputOption||"USER_ENTERED",insertDataOption:e.insertDataOption||"INSERT_ROWS"},body:{values:a,majorDimension:"ROWS"}});if(n.responses&&n.responses.length>0&&s.db.rows)try{let r=n.responses[0];if(r){let p=r.updatedRange||o,d=e.sheetName||"Sheet1",l=`${e.spreadsheetId}_${d}_${p}`;await s.db.rows.upsertByEntityId(l,{rowId:l,spreadsheetId:e.spreadsheetId,sheetName:d,range:p,values:e.values,createdAt:new Date})}}catch(r){console.warn("Failed to save row to database:",r)}return await m(s,"googlesheets.sheets.appendRow",{...e},"completed"),n},_=async(s,e)=>{let o=e.sheetName||"Sheet1",a=e.keyColumn||"A",n=e.keyValue;if(!n)throw new Error("keyValue is required for appendOrUpdateRow");let r=`${o}!${a}:${a}`,p=await c(`/spreadsheets/${e.spreadsheetId}/values/${r}`,s,{method:"GET"}),d=-1;if(p.values){for(let S=0;S<p.values.length;S++)if(p.values[S]?.[0]===String(n)){d=S;break}}let l=e.values?[e.values]:[],R=d>=0?`${o}!${d+1}:${d+1}`:`${o}!A:Z`;if(d>=0){let S=await c(`/spreadsheets/${e.spreadsheetId}/values/${R}`,s,{method:"PUT",query:{valueInputOption:e.valueInputOption||"USER_ENTERED"},body:{values:l,majorDimension:"ROWS"}});if(s.db.rows)try{let y=S.updatedRange||R,E=`${e.spreadsheetId}_${o}_${y}`;await s.db.rows.upsertByEntityId(E,{rowId:E,spreadsheetId:e.spreadsheetId,sheetName:o,range:y,values:e.values,createdAt:new Date})}catch(y){console.warn("Failed to update row in database:",y)}return await m(s,"googlesheets.sheets.appendOrUpdateRow",{...e,action:"update"},"completed"),S}else{let S=await c(`/spreadsheets/${e.spreadsheetId}/values/${R}:append`,s,{method:"POST",query:{valueInputOption:e.valueInputOption||"USER_ENTERED",insertDataOption:e.insertDataOption||"INSERT_ROWS"},body:{values:l,majorDimension:"ROWS"}});if(s.db.rows)try{let y=S.updates?.updatedRange||R,E=`${e.spreadsheetId}_${o}_${y}`;await s.db.rows.upsertByEntityId(E,{rowId:E,spreadsheetId:e.spreadsheetId,sheetName:o,range:y,values:e.values,createdAt:new Date})}catch(y){console.warn("Failed to save row to database:",y)}return await m(s,"googlesheets.sheets.appendOrUpdateRow",{...e,action:"append"},"completed"),S}},D=async(s,e)=>{let o=e.range||`${e.sheetName||"Sheet1"}!A:Z`,a=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}`,s,{method:"GET",query:{valueRenderOption:e.valueRenderOption||"FORMATTED_VALUE",dateTimeRenderOption:e.dateTimeRenderOption||"FORMATTED_STRING"}});if(a.values&&s.db.rows)try{let n=e.sheetName||"Sheet1";for(let r=0;r<a.values.length;r++){let p=a.values[r];if(p){let d=r+1,l=`${n}!${d}:${d}`,R=`${e.spreadsheetId}_${n}_${l}`;await s.db.rows.upsertByEntityId(R,{rowId:R,spreadsheetId:e.spreadsheetId,sheetName:n,range:l,values:p,createdAt:new Date})}}}catch(n){console.warn("Failed to save rows to database:",n)}return await m(s,"googlesheets.sheets.getRows",{...e},"completed"),a},P=async(s,e)=>{let o=e.range||`${e.sheetName||"Sheet1"}!${e.rowIndex||1}:${e.rowIndex||1}`,a=e.values?[e.values]:[],n=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}`,s,{method:"PUT",query:{valueInputOption:e.valueInputOption||"USER_ENTERED"},body:{values:a,majorDimension:"ROWS"}});if(n.responses&&n.responses.length>0&&s.db.rows)try{let r=n.responses[0];if(r){let p=r.updatedRange||o,d=e.sheetName||"Sheet1",l=`${e.spreadsheetId}_${d}_${p}`;await s.db.rows.upsertByEntityId(l,{rowId:l,spreadsheetId:e.spreadsheetId,sheetName:d,range:p,values:e.values,createdAt:new Date})}}catch(r){console.warn("Failed to update row in database:",r)}return await m(s,"googlesheets.sheets.updateRow",{...e},"completed"),n},N=async(s,e)=>{let o=e.range||e.sheetName||"Sheet1",a=await c(`/spreadsheets/${e.spreadsheetId}/values/${o}:clear`,s,{method:"POST"});if(a.clearedRange&&s.db.rows)try{let n=e.sheetName||"Sheet1",r=a.clearedRange,p=`${e.spreadsheetId}_${n}_${r}`;await s.db.rows.deleteByEntityId(p)}catch(n){console.warn("Failed to delete rows from database:",n)}return await m(s,"googlesheets.sheets.clearSheet",{...e},"completed"),a},$=async(s,e)=>{let o=await c(`/spreadsheets/${e.spreadsheetId}:batchUpdate`,s,{method:"POST",body:{requests:[{addSheet:{properties:{title:e.title||"Sheet1"}}}]}});if(o.replies&&o.replies.length>0&&s.db.sheets)try{let n=o.replies[0].addSheet?.properties;n?.sheetId!==void 0&&await s.db.sheets.upsertByEntityId(String(n.sheetId),{sheetId:String(n.sheetId),spreadsheetId:e.spreadsheetId,title:n.title||e.title||"Sheet1",index:n.index,createdAt:new Date})}catch(a){console.warn("Failed to save sheet to database:",a)}return await m(s,"googlesheets.sheets.createSheet",{...e},"completed"),o},x=async(s,e)=>{let o=await c(`/spreadsheets/${e.spreadsheetId}:batchUpdate`,s,{method:"POST",body:{requests:[{deleteSheet:{sheetId:e.sheetId}}]}});if(s.db.sheets)try{await s.db.sheets.deleteByEntityId(String(e.sheetId))}catch(a){console.warn("Failed to delete sheet from database:",a)}return await m(s,"googlesheets.sheets.deleteSheet",{...e},"completed"),o},L=async(s,e)=>{let o=await c(`/spreadsheets/${e.spreadsheetId}`,s,{method:"GET",query:{fields:"spreadsheetId,sheets.properties"}}),a={spreadsheetId:o.spreadsheetId,sheets:o.sheets?.map(n=>n.properties).filter(n=>n!=null)};return await m(s,"googlesheets.sheets.listSheets",{...e},"completed"),a},W=async(s,e)=>{let o=e.dimension||"ROWS",a=e.startIndex||0,n=e.endIndex||a+1,r=await c(`/spreadsheets/${e.spreadsheetId}:batchUpdate`,s,{method:"POST",body:{requests:[{deleteDimension:{range:{sheetId:e.sheetId,dimension:o,startIndex:a,endIndex:n}}}]}});if(o==="ROWS"&&s.db.rows)try{let p=`Sheet_${e.sheetId}`;for(let d=a;d<n;d++){let l=d+1,R=`${p}!${l}:${l}`,S=`${e.spreadsheetId}_${p}_${R}`;await s.db.rows.deleteByEntityId(S)}}catch(p){console.warn("Failed to delete rows from database:",p)}return await m(s,"googlesheets.sheets.deleteRowsOrColumns",{...e},"completed"),r};import{logEventFromContext as G}from"corsair/core";var B=async(s,e)=>{let o=await c("/spreadsheets",s,{method:"POST",body:{properties:e.properties}});if(o.spreadsheetId&&s.db.spreadsheets)try{await s.db.spreadsheets.upsertByEntityId(o.spreadsheetId,{spreadsheetId:o.spreadsheetId,title:o.properties?.title,spreadsheetUrl:o.spreadsheetUrl,createdAt:new Date})}catch(a){console.warn("Failed to save spreadsheet to database:",a)}return await G(s,"googlesheets.spreadsheets.create",{...e},"completed"),o},V=async(s,e)=>{let o=await k(`/files/${e.spreadsheetId}`,s,{method:"DELETE"});if(!o.ok&&o.status!==404){let a=await o.text();throw new Error(`Failed to delete spreadsheet: ${o.status} ${a}`)}if(s.db.spreadsheets)try{await s.db.spreadsheets.deleteByEntityId(e.spreadsheetId)}catch(a){console.warn("Failed to delete spreadsheet from database:",a)}await G(s,"googlesheets.spreadsheets.delete",{...e},"completed")},j=async(s,e)=>{let o="mimeType='application/vnd.google-apps.spreadsheet'",a=new URLSearchParams({q:e.query?`${o} AND ${e.query}`:o,fields:"files(id,name,createdTime,modifiedTime,webViewLink),nextPageToken"});e.pageSize&&a.set("pageSize",String(e.pageSize)),e.pageToken&&a.set("pageToken",e.pageToken);let n=await k(`/files?${a.toString()}`,s);if(!n.ok){let p=await n.text();throw new Error(`Failed to list spreadsheets: ${n.status} ${p}`)}let r=await n.json();return await G(s,"googlesheets.spreadsheets.list",{...e},"completed"),r};import{z as t}from"zod";var pe=t.object({properties:t.object({title:t.string().optional(),locale:t.string().optional(),timeZone:t.string().optional()}).optional()}),de=t.object({spreadsheetId:t.string()}),he=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional(),values:t.array(t.union([t.string(),t.number(),t.boolean(),t.null()])).optional(),valueInputOption:t.enum(["RAW","USER_ENTERED"]).optional(),insertDataOption:t.enum(["OVERWRITE","INSERT_ROWS"]).optional()}),ie=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),keyColumn:t.string().describe('Column letter (e.g. "A"), not a header name (e.g. "Company Name")').optional(),keyValue:t.union([t.string(),t.number()]).optional(),values:t.array(t.union([t.string(),t.number(),t.boolean(),t.null()])).optional(),valueInputOption:t.enum(["RAW","USER_ENTERED"]).optional(),insertDataOption:t.enum(["OVERWRITE","INSERT_ROWS"]).optional()}),le=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional(),valueRenderOption:t.enum(["FORMATTED_VALUE","UNFORMATTED_VALUE","FORMULA"]).optional(),dateTimeRenderOption:t.enum(["SERIAL_NUMBER","FORMATTED_STRING"]).optional()}),ce=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional(),rowIndex:t.number().optional(),values:t.array(t.union([t.string(),t.number(),t.boolean(),t.null()])).optional(),valueInputOption:t.enum(["RAW","USER_ENTERED"]).optional()}),ge=t.object({spreadsheetId:t.string(),sheetName:t.string().optional(),range:t.string().optional()}),ue=t.object({spreadsheetId:t.string(),title:t.string().optional()}),Se=t.object({spreadsheetId:t.string(),sheetId:t.number()}),me=t.object({spreadsheetId:t.string(),sheetId:t.number(),dimension:t.enum(["ROWS","COLUMNS"]).optional(),startIndex:t.number().optional(),endIndex:t.number().optional()}),we=t.object({spreadsheetId:t.string()}),Re=t.object({pageSize:t.number().optional(),pageToken:t.string().optional(),query:t.string().optional()}),g={spreadsheetsCreate:pe,spreadsheetsDelete:de,spreadsheetsList:Re,sheetsAppendRow:he,sheetsAppendOrUpdateRow:ie,sheetsGetRows:le,sheetsUpdateRow:ce,sheetsClearSheet:ge,sheetsCreateSheet:ue,sheetsDeleteSheet:Se,sheetsDeleteRowsOrColumns:me,sheetsListSheetsInSpreadsheet:we},ye=t.object({title:t.string().optional(),locale:t.string().optional(),autoRecalc:t.enum(["ON_CHANGE","ON_UPDATE","HOUR","MINUTE"]).optional(),timeZone:t.string().optional()}),q=t.object({spreadsheetId:t.string().optional(),properties:ye.optional(),spreadsheetUrl:t.string().optional()}),F=t.object({range:t.string().optional(),majorDimension:t.enum(["ROWS","COLUMNS","DIMENSION_UNSPECIFIED"]).optional(),values:t.array(t.array(t.union([t.string(),t.number(),t.boolean(),t.null()]))).optional()}),O=t.object({spreadsheetId:t.string().optional(),totalUpdatedRows:t.number().optional(),totalUpdatedColumns:t.number().optional(),totalUpdatedCells:t.number().optional(),totalUpdatedSheets:t.number().optional(),responses:t.array(F).optional()}),Ee=t.object({spreadsheetId:t.string().optional(),clearedRange:t.string().optional()}),M=t.object({sheetId:t.number().optional(),title:t.string().optional(),index:t.number().optional(),sheetType:t.enum(["GRID","OBJECT","DATA_SOURCE"]).optional(),hidden:t.boolean().optional()}),We=t.object({properties:M.optional()}),T=t.object({spreadsheetId:t.string().optional(),replies:t.array(t.any()).optional(),updatedSpreadsheet:q.optional()}),Ie=t.object({spreadsheetId:t.string().optional(),sheets:t.array(M).optional()}),fe=t.object({id:t.string().optional(),name:t.string().optional(),createdTime:t.string().optional(),modifiedTime:t.string().optional(),webViewLink:t.string().optional()}),be=t.object({files:t.array(fe).optional(),nextPageToken:t.string().optional()}),u={spreadsheetsCreate:q,spreadsheetsDelete:t.void(),spreadsheetsList:be,sheetsAppendRow:O,sheetsAppendOrUpdateRow:O,sheetsGetRows:F,sheetsUpdateRow:O,sheetsClearSheet:Ee,sheetsCreateSheet:T,sheetsDeleteSheet:T,sheetsDeleteRowsOrColumns:T,sheetsListSheetsInSpreadsheet:Ie};var I={create:B,delete:V,list:j},w={appendRow:C,appendOrUpdateRow:_,getRows:D,updateRow:P,clearSheet:N,createSheet:$,deleteSheet:x,deleteRowsOrColumns:W,listSheetsInSpreadsheet:L};import{z as i}from"zod";var z=i.object({spreadsheetId:i.string(),title:i.string().optional(),spreadsheetUrl:i.string().optional(),createdAt:i.coerce.date().optional()}),K=i.object({sheetId:i.string(),spreadsheetId:i.string(),title:i.string().optional(),index:i.number().optional(),createdAt:i.coerce.date().optional()}),H=i.object({rowId:i.string(),spreadsheetId:i.string(),sheetName:i.string().optional(),range:i.string().optional(),values:i.array(i.union([i.string(),i.number(),i.boolean(),i.null()])).optional(),createdAt:i.coerce.date().optional()});var Z={version:"1.0.0",entities:{spreadsheets:z,sheets:K,rows:H}};import{logEventFromContext as Ge}from"corsair/core";import{z as h}from"zod";var J=h.object({spreadsheetId:h.string().optional(),sheetName:h.string().optional(),range:h.string().optional(),values:h.array(h.union([h.string(),h.number(),h.boolean(),h.null()])).optional(),eventType:h.literal("rangeUpdated").optional(),timestamp:h.string().optional(),event:h.unknown().optional()}),Q=h.object({eventType:h.literal("rangeUpdated"),spreadsheetId:h.string(),sheetName:h.string(),range:h.string(),values:h.array(h.union([h.string(),h.number(),h.boolean(),h.null()])),timestamp:h.string()});function ke(s){return typeof s=="string"?JSON.parse(s):s}function v(s){return e=>ke(e.body).eventType===s}var X={match:v("rangeUpdated"),handler:async(s,e)=>{let o=e.payload;if(!o.spreadsheetId||!o.values)return{success:!1,error:"Missing required fields: spreadsheetId or values"};let a={eventType:"rangeUpdated",spreadsheetId:o.spreadsheetId,sheetName:o.sheetName||"Sheet1",range:o.range||"A:Z",values:o.values,timestamp:o.timestamp||new Date().toISOString()};if(s.db.rows)try{let n=`${o.spreadsheetId}_${o.sheetName}_${o.range||"A:Z"}`;await s.db.rows.upsertByEntityId(n,{rowId:n,spreadsheetId:o.spreadsheetId,sheetName:o.sheetName||"Sheet1",range:o.range||"A:Z",values:o.values,createdAt:new Date})}catch(n){console.warn("Failed to save/update range in database:",n)}return await Ge(s,"googlesheets.webhook.rangeUpdated",{...a},"completed"),{success:!0,data:a}}};var Y={rangeUpdated:X};var Oe={spreadsheets:{create:I.create,delete:I.delete,list:I.list},sheets:{appendRow:w.appendRow,appendOrUpdateRow:w.appendOrUpdateRow,getRows:w.getRows,updateRow:w.updateRow,clearSheet:w.clearSheet,createSheet:w.createSheet,deleteSheet:w.deleteSheet,deleteRowsOrColumns:w.deleteRowsOrColumns,listSheetsInSpreadsheet:w.listSheetsInSpreadsheet}},Te={"spreadsheets.create":{input:g.spreadsheetsCreate,output:u.spreadsheetsCreate},"spreadsheets.delete":{input:g.spreadsheetsDelete,output:u.spreadsheetsDelete},"spreadsheets.list":{input:g.spreadsheetsList,output:u.spreadsheetsList},"sheets.appendRow":{input:g.sheetsAppendRow,output:u.sheetsAppendRow},"sheets.appendOrUpdateRow":{input:g.sheetsAppendOrUpdateRow,output:u.sheetsAppendOrUpdateRow},"sheets.getRows":{input:g.sheetsGetRows,output:u.sheetsGetRows},"sheets.updateRow":{input:g.sheetsUpdateRow,output:u.sheetsUpdateRow},"sheets.clearSheet":{input:g.sheetsClearSheet,output:u.sheetsClearSheet},"sheets.createSheet":{input:g.sheetsCreateSheet,output:u.sheetsCreateSheet},"sheets.deleteSheet":{input:g.sheetsDeleteSheet,output:u.sheetsDeleteSheet},"sheets.deleteRowsOrColumns":{input:g.sheetsDeleteRowsOrColumns,output:u.sheetsDeleteRowsOrColumns},"sheets.listSheetsInSpreadsheet":{input:g.sheetsListSheetsInSpreadsheet,output:u.sheetsListSheetsInSpreadsheet}},ve={rangeUpdated:Y.rangeUpdated},Ue={rangeUpdated:{description:"A range of cells in a Google Sheet was updated",payload:J,response:Q}},Ae="oauth_2",Ce={"spreadsheets.create":{riskLevel:"write",description:"Create a new spreadsheet"},"spreadsheets.delete":{riskLevel:"destructive",irreversible:!0,description:"Permanently delete a spreadsheet [DESTRUCTIVE \xB7 IRREVERSIBLE]"},"spreadsheets.list":{riskLevel:"read",description:"List all spreadsheets in Google Drive"},"sheets.appendRow":{riskLevel:"write",description:"Append a new row to a sheet"},"sheets.appendOrUpdateRow":{riskLevel:"write",description:"Append a new row or update an existing one"},"sheets.getRows":{riskLevel:"read",description:"Read rows from a sheet"},"sheets.updateRow":{riskLevel:"write",description:"Update an existing row in a sheet"},"sheets.clearSheet":{riskLevel:"destructive",description:"Clear all data from a sheet [DESTRUCTIVE]"},"sheets.createSheet":{riskLevel:"write",description:"Add a new sheet tab to a spreadsheet"},"sheets.deleteSheet":{riskLevel:"destructive",irreversible:!0,description:"Delete a sheet tab and all its data [DESTRUCTIVE \xB7 IRREVERSIBLE]"},"sheets.deleteRowsOrColumns":{riskLevel:"destructive",description:"Delete rows or columns from a sheet [DESTRUCTIVE]"},"sheets.listSheetsInSpreadsheet":{riskLevel:"read",description:"List all sheet tabs in a spreadsheet"}};function pt(s={}){let e={...s,authType:s.authType??Ae};return{id:"googlesheets",schema:Z,options:e,oauthConfig:{providerName:"Google",authUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",scopes:["https://www.googleapis.com/auth/spreadsheets","https://www.googleapis.com/auth/drive.readonly"],authParams:{access_type:"offline",prompt:"consent"}},hooks:e.hooks,webhookHooks:e.webhookHooks,endpoints:Oe,webhooks:ve,endpointMeta:Ce,endpointSchemas:Te,webhookSchemas:Ue,keyBuilder:async o=>{if(e.key)return e.key;if(o.authType==="oauth_2"){let[a,n,r]=await Promise.all([o.keys.get_access_token(),o.keys.get_expires_at(),o.keys.get_refresh_token()]);if(!r)throw new Error("[corsair:googlesheets] No refresh token. Cannot get access token.");let p=await o.keys.get_integration_credentials();if(!p.client_id||!p.client_secret)throw new Error("[corsair:googlesheets] No client id or client secret");try{let d=await b({accessToken:a,expiresAt:n,refreshToken:r,clientId:p.client_id,clientSecret:p.client_secret});return d.refreshed&&await Promise.all([o.keys.set_access_token(d.accessToken),o.keys.set_expires_at(String(d.expiresAt))]),o._refreshAuth=async()=>{let l=await b({accessToken:null,expiresAt:null,refreshToken:r,clientId:p.client_id,clientSecret:p.client_secret,forceRefresh:!0});return await o.keys.set_access_token(l.accessToken),await o.keys.set_expires_at(String(l.expiresAt)),l.accessToken},d.accessToken}catch(d){throw new Error(`[corsair:googlesheets] Failed to get valid access token: ${d instanceof Error?d.message:String(d)}`)}}return""},pluginWebhookMatcher:o=>{let a=o.body;if(!a)return!1;let n=typeof a?.spreadsheetId=="string",r=a?.eventType==="rangeUpdated";return n||r}}}export{v as createGoogleSheetsWebhookMatcher,pt as googlesheets,Te as googlesheetsEndpointSchemas};
@@ -0,0 +1,2 @@
1
+ import 'dotenv/config';
2
+ //# sourceMappingURL=integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { GoogleSheetsWebhooks } from '..';
1
+ import type { GoogleSheetsWebhooks } from '../index';
2
2
  export declare const rangeUpdated: GoogleSheetsWebhooks['rangeUpdated'];
3
3
  //# sourceMappingURL=rows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../webhooks/rows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAG/C,eAAO,MAAM,YAAY,EAAE,oBAAoB,CAAC,cAAc,CAiD7D,CAAC"}
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../webhooks/rows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGrD,eAAO,MAAM,YAAY,EAAE,oBAAoB,CAAC,cAAc,CAiD7D,CAAC"}
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
1
  import type { CorsairWebhookMatcher } from 'corsair/core';
2
+ import { z } from 'zod';
3
3
  export declare const GoogleAppsScriptWebhookPayloadSchema: z.ZodObject<{
4
4
  spreadsheetId: z.ZodOptional<z.ZodString>;
5
5
  sheetName: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../webhooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACX,qBAAqB,EAErB,MAAM,cAAc,CAAC;AAMtB,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;EAU/C,CAAC;AACH,MAAM,MAAM,8BAA8B,CAAC,MAAM,GAAG,OAAO,IAAI,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,EACpD,OAAO,CACP,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,OAAO,IACtD,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,MAAM,0BAA0B,GAAG;IACxC,YAAY,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAUF,wBAAgB,gCAAgC,CAC/C,SAAS,EAAE,qBAAqB,GAC9B,qBAAqB,CAKvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../webhooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;EAU/C,CAAC;AACH,MAAM,MAAM,8BAA8B,CAAC,MAAM,GAAG,OAAO,IAAI,IAAI,CAClE,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,EACpD,OAAO,CACP,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,OAAO,IACtD,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,MAAM,0BAA0B,GAAG;IACxC,YAAY,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAUF,wBAAgB,gCAAgC,CAC/C,SAAS,EAAE,qBAAqB,GAC9B,qBAAqB,CAKvB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@corsair-dev/googlesheets",
3
- "version": "0.1.1",
4
- "description": "Googlesheets plugin for Corsair",
3
+ "version": "0.1.3",
4
+ "description": "Google sheets plugin for Corsair",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -18,10 +18,12 @@
18
18
  "zod": "^3.0.0"
19
19
  },
20
20
  "devDependencies": {
21
+ "@types/jest": "^29.5.14",
22
+ "ts-jest": "^29.4.9",
21
23
  "tsup": "^8.0.1",
22
24
  "typescript": "^5.9.3",
23
25
  "zod": "^3.25.76",
24
- "corsair": "0.1.50"
26
+ "corsair": "0.1.59"
25
27
  },
26
28
  "keywords": [
27
29
  "corsair",
@@ -33,8 +35,12 @@
33
35
  "files": [
34
36
  "dist"
35
37
  ],
38
+ "dependencies": {
39
+ "jest": "^29.7.0"
40
+ },
36
41
  "scripts": {
37
42
  "build": "rm -rf dist && tsc --build --force && tsup",
38
- "typecheck": "tsc --noEmit"
43
+ "typecheck": "tsc --noEmit",
44
+ "test": "jest"
39
45
  }
40
46
  }