@ariadng/sheets 0.3.3 → 0.4.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,7 +1,7 @@
1
1
  /**
2
2
  * Google Sheets API Client
3
3
  */
4
- import type { Spreadsheet, SheetProperties, ValueRange, GetValuesOptions, SheetsClientOptions, BatchGetValuesResponse } from '../types/index.js';
4
+ import type { Spreadsheet, SheetProperties, ValueRange, GetValuesOptions, SheetsClientOptions, BatchGetValuesResponse, ClearValuesResponse, BatchClearValuesResponse, RawCellValue, UpdateValuesOptions, UpdateValuesResponse, BatchUpdateValuesResponse, AppendValuesOptions, AppendValuesResponse, SearchOptions, SearchResult } from '../types/index.js';
5
5
  export declare class SheetsClient {
6
6
  private http;
7
7
  constructor(options: SheetsClientOptions);
@@ -25,6 +25,35 @@ export declare class SheetsClient {
25
25
  * Read multiple ranges at once
26
26
  */
27
27
  batchGetValues(spreadsheetId: string, ranges: string[], options?: GetValuesOptions): Promise<BatchGetValuesResponse>;
28
+ /**
29
+ * Clear values from a single range
30
+ */
31
+ clearValues(spreadsheetId: string, range: string): Promise<ClearValuesResponse>;
32
+ /**
33
+ * Clear values from multiple ranges
34
+ */
35
+ batchClearValues(spreadsheetId: string, ranges: string[]): Promise<BatchClearValuesResponse>;
36
+ /**
37
+ * Write values to a range (or starting cell)
38
+ * Range can be "A1" or "A1:D10" - data array determines actual extent
39
+ */
40
+ updateValues(spreadsheetId: string, range: string, values: RawCellValue[][], options?: UpdateValuesOptions): Promise<UpdateValuesResponse>;
41
+ /**
42
+ * Write to multiple ranges in one request
43
+ */
44
+ batchUpdateValues(spreadsheetId: string, data: {
45
+ range: string;
46
+ values: RawCellValue[][];
47
+ }[], options?: UpdateValuesOptions): Promise<BatchUpdateValuesResponse>;
48
+ /**
49
+ * Append rows after the last row of detected table
50
+ */
51
+ appendValues(spreadsheetId: string, range: string, values: RawCellValue[][], options?: AppendValuesOptions): Promise<AppendValuesResponse>;
52
+ /**
53
+ * Search for values matching a query across sheets
54
+ */
55
+ searchValues(spreadsheetId: string, query: string, options?: SearchOptions): Promise<SearchResult>;
56
+ private collectMatches;
28
57
  private normalizeValueRange;
29
58
  }
30
59
  export declare function createClient(options: SheetsClientOptions): SheetsClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAe3B,qBAAa,YAAY;IACrB,OAAO,CAAC,IAAI,CAAa;gBAEb,OAAO,EAAE,mBAAmB;IAOxC;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjE;;OAEG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKlE;;OAEG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBtG;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI5E;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0B1H,OAAO,CAAC,mBAAmB;CAa9B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAEvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAgE3B,qBAAa,YAAY;IACrB,OAAO,CAAC,IAAI,CAAa;gBAEb,OAAO,EAAE,mBAAmB;IAOxC;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjE;;OAEG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKlE;;OAEG;IACG,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBtG;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI5E;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0B1H;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQrF;;OAEG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAOlG;;;OAGG;IACG,YAAY,CACd,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EAAE,EAAE,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IA6BhC;;OAEG;IACG,iBAAiB,CACnB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAA;KAAE,EAAE,EACnD,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,yBAAyB,CAAC;IAoBrC;;OAEG;IACG,YAAY,CACd,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,EAAE,EAAE,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAgChC;;OAEG;IACG,YAAY,CACd,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,YAAY,CAAC;IAqHxB,OAAO,CAAC,cAAc;IA2CtB,OAAO,CAAC,mBAAmB;CAa9B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAEvE"}
package/dist/api/index.js CHANGED
@@ -3,6 +3,49 @@
3
3
  */
4
4
  import { HttpClient } from '../http/index.js';
5
5
  import { createAuthProvider } from '../auth/index.js';
6
+ /**
7
+ * Convert column letter(s) to 1-based column number
8
+ * A=1, B=2, ..., Z=26, AA=27, AB=28, etc.
9
+ */
10
+ function columnLetterToNumber(letters) {
11
+ let result = 0;
12
+ for (let i = 0; i < letters.length; i++) {
13
+ result = result * 26 + (letters.charCodeAt(i) - 64);
14
+ }
15
+ return result;
16
+ }
17
+ /**
18
+ * Convert 1-based column number to column letter(s)
19
+ * 1=A, 2=B, ..., 26=Z, 27=AA, 28=AB, etc.
20
+ */
21
+ function columnNumberToLetter(num) {
22
+ let result = '';
23
+ while (num > 0) {
24
+ const remainder = (num - 1) % 26;
25
+ result = String.fromCharCode(65 + remainder) + result;
26
+ num = Math.floor((num - 1) / 26);
27
+ }
28
+ return result;
29
+ }
30
+ /**
31
+ * Parse A1 notation to extract starting row and column
32
+ * Returns { startRow, startCol } (1-based)
33
+ */
34
+ function parseA1Range(range) {
35
+ // Remove sheet name if present (e.g., "Sheet1!A1:D10" -> "A1:D10")
36
+ const cellRef = range.includes('!') ? range.split('!')[1] : range;
37
+ // Extract first cell (e.g., "A1:D10" -> "A1", "A1" -> "A1")
38
+ const firstCell = cellRef.split(':')[0];
39
+ // Parse column letters and row number
40
+ const match = firstCell.match(/^([A-Z]+)(\d+)$/i);
41
+ if (!match) {
42
+ return { startRow: 1, startCol: 1 };
43
+ }
44
+ return {
45
+ startCol: columnLetterToNumber(match[1].toUpperCase()),
46
+ startRow: parseInt(match[2], 10),
47
+ };
48
+ }
6
49
  export class SheetsClient {
7
50
  http;
8
51
  constructor(options) {
@@ -70,6 +113,223 @@ export class SheetsClient {
70
113
  valueRanges: (response.valueRanges || []).map(vr => this.normalizeValueRange(vr)),
71
114
  };
72
115
  }
116
+ /**
117
+ * Clear values from a single range
118
+ */
119
+ async clearValues(spreadsheetId, range) {
120
+ const encodedRange = encodeURIComponent(range);
121
+ return this.http.request(`/spreadsheets/${spreadsheetId}/values/${encodedRange}:clear`, { method: 'POST' });
122
+ }
123
+ /**
124
+ * Clear values from multiple ranges
125
+ */
126
+ async batchClearValues(spreadsheetId, ranges) {
127
+ return this.http.request(`/spreadsheets/${spreadsheetId}/values:batchClear`, { method: 'POST', body: { ranges } });
128
+ }
129
+ /**
130
+ * Write values to a range (or starting cell)
131
+ * Range can be "A1" or "A1:D10" - data array determines actual extent
132
+ */
133
+ async updateValues(spreadsheetId, range, values, options) {
134
+ const params = {
135
+ valueInputOption: options?.valueInputOption || 'USER_ENTERED',
136
+ };
137
+ if (options?.includeValuesInResponse) {
138
+ params.includeValuesInResponse = 'true';
139
+ }
140
+ if (options?.responseValueRenderOption) {
141
+ params.responseValueRenderOption = options.responseValueRenderOption;
142
+ }
143
+ if (options?.responseDateTimeRenderOption) {
144
+ params.responseDateTimeRenderOption = options.responseDateTimeRenderOption;
145
+ }
146
+ const encodedRange = encodeURIComponent(range);
147
+ return this.http.request(`/spreadsheets/${spreadsheetId}/values/${encodedRange}`, {
148
+ method: 'PUT',
149
+ params,
150
+ body: {
151
+ majorDimension: options?.majorDimension || 'ROWS',
152
+ values,
153
+ },
154
+ });
155
+ }
156
+ /**
157
+ * Write to multiple ranges in one request
158
+ */
159
+ async batchUpdateValues(spreadsheetId, data, options) {
160
+ return this.http.request(`/spreadsheets/${spreadsheetId}/values:batchUpdate`, {
161
+ method: 'POST',
162
+ body: {
163
+ valueInputOption: options?.valueInputOption || 'USER_ENTERED',
164
+ data: data.map(d => ({
165
+ range: d.range,
166
+ majorDimension: options?.majorDimension || 'ROWS',
167
+ values: d.values,
168
+ })),
169
+ includeValuesInResponse: options?.includeValuesInResponse || false,
170
+ responseValueRenderOption: options?.responseValueRenderOption,
171
+ responseDateTimeRenderOption: options?.responseDateTimeRenderOption,
172
+ },
173
+ });
174
+ }
175
+ /**
176
+ * Append rows after the last row of detected table
177
+ */
178
+ async appendValues(spreadsheetId, range, values, options) {
179
+ const params = {
180
+ valueInputOption: options?.valueInputOption || 'USER_ENTERED',
181
+ };
182
+ if (options?.insertDataOption) {
183
+ params.insertDataOption = options.insertDataOption;
184
+ }
185
+ if (options?.includeValuesInResponse) {
186
+ params.includeValuesInResponse = 'true';
187
+ }
188
+ if (options?.responseValueRenderOption) {
189
+ params.responseValueRenderOption = options.responseValueRenderOption;
190
+ }
191
+ if (options?.responseDateTimeRenderOption) {
192
+ params.responseDateTimeRenderOption = options.responseDateTimeRenderOption;
193
+ }
194
+ const encodedRange = encodeURIComponent(range);
195
+ return this.http.request(`/spreadsheets/${spreadsheetId}/values/${encodedRange}:append`, {
196
+ method: 'POST',
197
+ params,
198
+ body: {
199
+ majorDimension: options?.majorDimension || 'ROWS',
200
+ values,
201
+ },
202
+ });
203
+ }
204
+ /**
205
+ * Search for values matching a query across sheets
206
+ */
207
+ async searchValues(spreadsheetId, query, options) {
208
+ const caseSensitive = options?.caseSensitive ?? false;
209
+ const exactMatch = options?.exactMatch ?? false;
210
+ const useRegex = options?.regex ?? false;
211
+ const limit = options?.limit;
212
+ // Determine match type for response
213
+ const matchType = useRegex ? 'regex' : (exactMatch ? 'exact' : 'contains');
214
+ // Build the matcher function
215
+ let matcher;
216
+ if (useRegex) {
217
+ const flags = caseSensitive ? '' : 'i';
218
+ const regex = new RegExp(query, flags);
219
+ matcher = (cellValue) => regex.test(cellValue);
220
+ }
221
+ else if (exactMatch) {
222
+ if (caseSensitive) {
223
+ matcher = (cellValue) => cellValue === query;
224
+ }
225
+ else {
226
+ const lowerQuery = query.toLowerCase();
227
+ matcher = (cellValue) => cellValue.toLowerCase() === lowerQuery;
228
+ }
229
+ }
230
+ else {
231
+ // Contains match (default)
232
+ if (caseSensitive) {
233
+ matcher = (cellValue) => cellValue.includes(query);
234
+ }
235
+ else {
236
+ const lowerQuery = query.toLowerCase();
237
+ matcher = (cellValue) => cellValue.toLowerCase().includes(lowerQuery);
238
+ }
239
+ }
240
+ const matches = [];
241
+ // Get sheets to search
242
+ const allSheets = await this.getSheets(spreadsheetId);
243
+ let sheetsToSearch;
244
+ if (options?.sheetIndex !== undefined) {
245
+ const sheet = allSheets.find(s => s.index === options.sheetIndex);
246
+ if (!sheet) {
247
+ throw new Error(`Sheet index ${options.sheetIndex} not found.`);
248
+ }
249
+ sheetsToSearch = [sheet];
250
+ }
251
+ else if (options?.gid !== undefined) {
252
+ const sheet = allSheets.find(s => s.sheetId === options.gid);
253
+ if (!sheet) {
254
+ throw new Error(`Sheet with gid ${options.gid} not found.`);
255
+ }
256
+ sheetsToSearch = [sheet];
257
+ }
258
+ else if (options?.range && options.range.includes('!')) {
259
+ // Range includes sheet name, use as-is
260
+ sheetsToSearch = []; // Will handle specially below
261
+ }
262
+ else {
263
+ // Search all sheets
264
+ sheetsToSearch = allSheets.filter(s => !s.hidden);
265
+ }
266
+ // Search logic
267
+ if (options?.range && options.range.includes('!')) {
268
+ // Specific range with sheet name provided
269
+ const valueRange = await this.getValues(spreadsheetId, options.range);
270
+ const sheetName = options.range.split('!')[0].replace(/^'|'$/g, '').replace(/''/g, "'");
271
+ const sheet = allSheets.find(s => s.title === sheetName);
272
+ const { startRow, startCol } = parseA1Range(options.range);
273
+ this.collectMatches(valueRange, sheetName, sheet?.sheetId ?? 0, startRow, startCol, matcher, matches, limit);
274
+ }
275
+ else {
276
+ // Search across sheets
277
+ for (const sheet of sheetsToSearch) {
278
+ if (limit && matches.length >= limit)
279
+ break;
280
+ const escapedTitle = sheet.title.replace(/'/g, "''");
281
+ const range = options?.range
282
+ ? `'${escapedTitle}'!${options.range}`
283
+ : `'${escapedTitle}'`; // Entire sheet
284
+ try {
285
+ const valueRange = await this.getValues(spreadsheetId, range);
286
+ const { startRow, startCol } = parseA1Range(valueRange.range);
287
+ this.collectMatches(valueRange, sheet.title, sheet.sheetId, startRow, startCol, matcher, matches, limit);
288
+ }
289
+ catch {
290
+ // Skip sheets that fail (e.g., empty sheets)
291
+ continue;
292
+ }
293
+ }
294
+ }
295
+ return {
296
+ query,
297
+ matchType,
298
+ caseSensitive,
299
+ totalMatches: matches.length,
300
+ matches,
301
+ };
302
+ }
303
+ collectMatches(valueRange, sheetName, sheetId, startRow, startCol, matcher, matches, limit) {
304
+ for (let rowIndex = 0; rowIndex < valueRange.values.length; rowIndex++) {
305
+ if (limit && matches.length >= limit)
306
+ return;
307
+ const row = valueRange.values[rowIndex];
308
+ for (let colIndex = 0; colIndex < row.length; colIndex++) {
309
+ if (limit && matches.length >= limit)
310
+ return;
311
+ const cell = row[colIndex];
312
+ const cellValue = cell.value;
313
+ // Skip null/undefined values
314
+ if (cellValue == null)
315
+ continue;
316
+ // Convert to string for matching
317
+ const stringValue = String(cellValue);
318
+ if (matcher(stringValue)) {
319
+ const actualRow = startRow + rowIndex;
320
+ const actualCol = startCol + colIndex;
321
+ matches.push({
322
+ sheet: sheetName,
323
+ sheetId,
324
+ address: columnNumberToLetter(actualCol) + actualRow,
325
+ row: actualRow,
326
+ column: actualCol,
327
+ value: cellValue,
328
+ });
329
+ }
330
+ }
331
+ }
332
+ }
73
333
  normalizeValueRange(raw) {
74
334
  const values = (raw.values || []).map(row => row.map(cell => ({
75
335
  value: cell,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export const OAUTH_TOKEN_URL = 'https://oauth2.googleapis.com/token';
15
15
  export const OAUTH_USERINFO_URL = 'https://www.googleapis.com/oauth2/v2/userinfo';
16
16
  // Scopes
17
17
  export const OAUTH_SCOPES = [
18
- 'https://www.googleapis.com/auth/spreadsheets.readonly',
18
+ 'https://www.googleapis.com/auth/spreadsheets',
19
19
  'https://www.googleapis.com/auth/userinfo.email',
20
20
  ];
21
21
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/auth/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2CAA2C;AAC3C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,0EAA0E,CAAC;AAC1G,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAEzE,yCAAyC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,kBAAkB;AAClB,MAAM,CAAC,MAAM,cAAc,GAAG,8CAA8C,CAAC;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,qCAAqC,CAAC;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,+CAA+C,CAAC;AAElF,SAAS;AACT,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,uDAAuD;IACvD,gDAAgD;CACnD,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/auth/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2CAA2C;AAC3C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,0EAA0E,CAAC;AAC1G,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAEzE,yCAAyC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,kBAAkB;AAClB,MAAM,CAAC,MAAM,cAAc,GAAG,8CAA8C,CAAC;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,qCAAqC,CAAC;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,+CAA+C,CAAC;AAElF,SAAS;AACT,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,8CAA8C;IAC9C,gDAAgD;CACnD,CAAC"}
@@ -1,11 +1,32 @@
1
1
  /**
2
2
  * OAuth 2.0 Authentication
3
- * Simple token-based auth (accepts pre-obtained access token)
3
+ * Supports pre-obtained access tokens with optional auto-refresh
4
+ *
5
+ * For automation (e.g., n8n), provide:
6
+ * - accessToken: Current access token
7
+ * - refreshToken: For obtaining new tokens when expired
8
+ * - clientId: OAuth client ID
9
+ * - clientSecret: OAuth client secret
10
+ * - expiresAt: When the access token expires (Unix timestamp in ms)
4
11
  */
5
12
  import type { OAuthConfig } from '../types/index.js';
6
13
  export declare class OAuthAuth {
7
14
  private config;
15
+ private cachedToken;
16
+ private expiresAt;
8
17
  constructor(config: OAuthConfig);
9
18
  getAccessToken(): Promise<string>;
19
+ private canRefresh;
20
+ private isExpired;
21
+ private refreshToken;
22
+ /**
23
+ * Get current token state for persistence in automation tools
24
+ * Returns updated tokens after any refresh operations
25
+ */
26
+ getTokenState(): {
27
+ accessToken: string;
28
+ refreshToken?: string;
29
+ expiresAt: number;
30
+ };
10
31
  }
11
32
  //# sourceMappingURL=oauth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAIzB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAG1C"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,WAAW;IAMzB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvC,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;YAIH,YAAY;IAgC1B;;;OAGG;IACH,aAAa,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAOrF"}
@@ -1,14 +1,80 @@
1
1
  /**
2
2
  * OAuth 2.0 Authentication
3
- * Simple token-based auth (accepts pre-obtained access token)
3
+ * Supports pre-obtained access tokens with optional auto-refresh
4
+ *
5
+ * For automation (e.g., n8n), provide:
6
+ * - accessToken: Current access token
7
+ * - refreshToken: For obtaining new tokens when expired
8
+ * - clientId: OAuth client ID
9
+ * - clientSecret: OAuth client secret
10
+ * - expiresAt: When the access token expires (Unix timestamp in ms)
4
11
  */
12
+ import { OAUTH_TOKEN_URL } from './constants.js';
5
13
  export class OAuthAuth {
6
14
  config;
15
+ cachedToken;
16
+ expiresAt;
7
17
  constructor(config) {
8
18
  this.config = config;
19
+ this.cachedToken = config.accessToken;
20
+ this.expiresAt = config.expiresAt || 0;
9
21
  }
10
22
  async getAccessToken() {
11
- return this.config.accessToken;
23
+ // If no expiration tracking or no refresh credentials, return cached token
24
+ if (!this.canRefresh()) {
25
+ return this.cachedToken;
26
+ }
27
+ // Check if token is expired (with 60 second buffer)
28
+ if (this.isExpired()) {
29
+ await this.refreshToken();
30
+ }
31
+ return this.cachedToken;
32
+ }
33
+ canRefresh() {
34
+ return !!(this.config.refreshToken &&
35
+ this.config.clientId &&
36
+ this.config.clientSecret &&
37
+ this.expiresAt > 0);
38
+ }
39
+ isExpired() {
40
+ return Date.now() >= this.expiresAt - 60000;
41
+ }
42
+ async refreshToken() {
43
+ if (!this.config.refreshToken || !this.config.clientId || !this.config.clientSecret) {
44
+ throw new Error('Token expired and missing refresh credentials (refreshToken, clientId, clientSecret)');
45
+ }
46
+ const response = await fetch(OAUTH_TOKEN_URL, {
47
+ method: 'POST',
48
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
49
+ body: new URLSearchParams({
50
+ client_id: this.config.clientId,
51
+ client_secret: this.config.clientSecret,
52
+ refresh_token: this.config.refreshToken,
53
+ grant_type: 'refresh_token',
54
+ }),
55
+ });
56
+ if (!response.ok) {
57
+ const error = await response.text();
58
+ throw new Error(`Token refresh failed: ${error}`);
59
+ }
60
+ const tokenResponse = await response.json();
61
+ this.cachedToken = tokenResponse.access_token;
62
+ this.expiresAt = Date.now() + (tokenResponse.expires_in * 1000);
63
+ // Update config with new refresh token if provided
64
+ if (tokenResponse.refresh_token) {
65
+ this.config.refreshToken = tokenResponse.refresh_token;
66
+ }
67
+ }
68
+ /**
69
+ * Get current token state for persistence in automation tools
70
+ * Returns updated tokens after any refresh operations
71
+ */
72
+ getTokenState() {
73
+ return {
74
+ accessToken: this.cachedToken,
75
+ refreshToken: this.config.refreshToken,
76
+ expiresAt: this.expiresAt,
77
+ };
12
78
  }
13
79
  }
14
80
  //# sourceMappingURL=oauth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,SAAS;IACV,MAAM,CAAc;IAE5B,YAAY,MAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;CACJ"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AASjD,MAAM,OAAO,SAAS;IACV,MAAM,CAAc;IACpB,WAAW,CAAS;IACpB,SAAS,CAAS;IAE1B,YAAY,MAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,2EAA2E;QAC3E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEO,UAAU;QACd,OAAO,CAAC,CAAC,CACL,IAAI,CAAC,MAAM,CAAC,YAAY;YACxB,IAAI,CAAC,MAAM,CAAC,QAAQ;YACpB,IAAI,CAAC,MAAM,CAAC,YAAY;YACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CACrB,CAAC;IACN,CAAC;IAEO,SAAS;QACb,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,eAAe,CAAC;gBACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC/B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACvC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACvC,UAAU,EAAE,eAAe;aAC9B,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAmB,CAAC;QAE7D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAEhE,mDAAmD;QACnD,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,aAAa;QACT,OAAO;YACH,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC;IACN,CAAC;CACJ"}