@ariadng/sheets 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +453 -299
  3. package/bin/sheets.js +3 -0
  4. package/dist/api/index.d.ts +31 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +87 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/auth/constants.d.ts +13 -0
  9. package/dist/auth/constants.d.ts.map +1 -0
  10. package/dist/auth/constants.js +21 -0
  11. package/dist/auth/constants.js.map +1 -0
  12. package/dist/auth/index.d.ts +13 -0
  13. package/dist/auth/index.d.ts.map +1 -0
  14. package/dist/auth/index.js +22 -0
  15. package/dist/auth/index.js.map +1 -0
  16. package/dist/auth/oauth.d.ts +11 -0
  17. package/dist/auth/oauth.d.ts.map +1 -0
  18. package/dist/auth/oauth.js +14 -0
  19. package/dist/auth/oauth.js.map +1 -0
  20. package/dist/auth/service-account.d.ts +18 -0
  21. package/dist/auth/service-account.d.ts.map +1 -0
  22. package/dist/auth/service-account.js +92 -0
  23. package/dist/auth/service-account.js.map +1 -0
  24. package/dist/auth/user-auth.d.ts +24 -0
  25. package/dist/auth/user-auth.d.ts.map +1 -0
  26. package/dist/auth/user-auth.js +230 -0
  27. package/dist/auth/user-auth.js.map +1 -0
  28. package/dist/cli.d.ts +7 -0
  29. package/dist/cli.d.ts.map +1 -0
  30. package/dist/cli.js +412 -0
  31. package/dist/cli.js.map +1 -0
  32. package/dist/http/index.d.ts +19 -0
  33. package/dist/http/index.d.ts.map +1 -0
  34. package/dist/http/index.js +68 -0
  35. package/dist/http/index.js.map +1 -0
  36. package/dist/index.d.ts +11 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +12 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/types/index.d.ts +133 -0
  41. package/dist/types/index.d.ts.map +1 -0
  42. package/dist/types/index.js +16 -0
  43. package/dist/types/index.js.map +1 -0
  44. package/package.json +58 -79
  45. package/dist/advanced/index.d.ts +0 -5
  46. package/dist/advanced/index.d.ts.map +0 -1
  47. package/dist/advanced/index.js +0 -1063
  48. package/dist/advanced/index.mjs +0 -1005
  49. package/dist/advanced/metrics.d.ts +0 -50
  50. package/dist/advanced/metrics.d.ts.map +0 -1
  51. package/dist/advanced/rate-limit.d.ts +0 -27
  52. package/dist/advanced/rate-limit.d.ts.map +0 -1
  53. package/dist/core/auth.d.ts +0 -33
  54. package/dist/core/auth.d.ts.map +0 -1
  55. package/dist/core/client.d.ts +0 -35
  56. package/dist/core/client.d.ts.map +0 -1
  57. package/dist/core/errors.d.ts +0 -11
  58. package/dist/core/errors.d.ts.map +0 -1
  59. package/dist/core/index.d.ts +0 -6
  60. package/dist/core/index.d.ts.map +0 -1
  61. package/dist/core/index.js +0 -315
  62. package/dist/core/index.mjs +0 -271
  63. package/dist/plus/batch.d.ts +0 -25
  64. package/dist/plus/batch.d.ts.map +0 -1
  65. package/dist/plus/cache.d.ts +0 -19
  66. package/dist/plus/cache.d.ts.map +0 -1
  67. package/dist/plus/index.d.ts +0 -7
  68. package/dist/plus/index.d.ts.map +0 -1
  69. package/dist/plus/index.js +0 -742
  70. package/dist/plus/index.mjs +0 -691
  71. package/dist/plus/types.d.ts +0 -39
  72. package/dist/plus/types.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-auth.js","sourceRoot":"","sources":["../../src/auth/user-auth.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Google Sheets CLI
4
+ * Command-line interface for Google Sheets operations
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
package/dist/cli.js ADDED
@@ -0,0 +1,412 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Google Sheets CLI
4
+ * Command-line interface for Google Sheets operations
5
+ */
6
+ import * as fs from 'fs/promises';
7
+ import * as path from 'path';
8
+ import * as os from 'os';
9
+ import { createClient } from './api/index.js';
10
+ import { login, loadStoredTokens, deleteTokens } from './auth/index.js';
11
+ const VERSION = '0.2.0';
12
+ // Claude Skill content embedded in the CLI
13
+ const CLAUDE_SKILL_CONTENT = `---
14
+ name: sheets
15
+ description: Read data from Google Sheets spreadsheets. Use this skill when the user wants to fetch, read, or analyze data from a Google Sheets URL or spreadsheet ID.
16
+ ---
17
+
18
+ # Google Sheets CLI
19
+
20
+ Use \`npx @ariadng/sheets\` to read data from Google Sheets.
21
+
22
+ ## Authentication
23
+
24
+ Before reading spreadsheets, check if the user is logged in:
25
+
26
+ \`\`\`bash
27
+ npx @ariadng/sheets whoami
28
+ \`\`\`
29
+
30
+ If not logged in (exit code 1), ask the user to run:
31
+
32
+ \`\`\`bash
33
+ npx @ariadng/sheets login
34
+ \`\`\`
35
+
36
+ ## Extract Spreadsheet ID
37
+
38
+ From a Google Sheets URL like:
39
+ \`https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit\`
40
+
41
+ The spreadsheet ID is the string between \`/d/\` and \`/edit\`.
42
+
43
+ ## Commands
44
+
45
+ ### Get spreadsheet metadata
46
+ \`\`\`bash
47
+ npx @ariadng/sheets get SPREADSHEET_ID --format json
48
+ \`\`\`
49
+
50
+ ### List all sheets
51
+ \`\`\`bash
52
+ npx @ariadng/sheets list SPREADSHEET_ID --format json
53
+ \`\`\`
54
+
55
+ ### Read cell values
56
+ \`\`\`bash
57
+ npx @ariadng/sheets read SPREADSHEET_ID "Sheet1!A1:D10" --format json
58
+ \`\`\`
59
+
60
+ ### Read formulas
61
+ \`\`\`bash
62
+ npx @ariadng/sheets read SPREADSHEET_ID "Sheet1!A1:D10" --formula --format json
63
+ \`\`\`
64
+
65
+ ## Range Format
66
+
67
+ - \`Sheet1!A1:D10\` - Cells A1 to D10 on Sheet1
68
+ - \`Sheet1!A:A\` - Entire column A
69
+ - \`Sheet1!1:1\` - Entire row 1
70
+ - \`A1:D10\` - Range on first sheet
71
+
72
+ ## Tips
73
+
74
+ - Always use \`--format json\` for structured, parseable output
75
+ - Check authentication status before making requests
76
+ - Handle errors gracefully and inform the user
77
+ `;
78
+ function parseArgs(args) {
79
+ const options = { format: 'table', formula: false };
80
+ const positionals = [];
81
+ let command = '';
82
+ for (let i = 0; i < args.length; i++) {
83
+ const arg = args[i];
84
+ if (arg === '--credentials' && args[i + 1]) {
85
+ options.credentials = args[++i];
86
+ }
87
+ else if (arg === '--token' && args[i + 1]) {
88
+ options.token = args[++i];
89
+ }
90
+ else if (arg === '--client' && args[i + 1]) {
91
+ options.client = args[++i];
92
+ }
93
+ else if (arg === '--format' && args[i + 1]) {
94
+ options.format = args[++i];
95
+ }
96
+ else if (arg === '--formula') {
97
+ options.formula = true;
98
+ }
99
+ else if (arg === '--version' || arg === '--help') {
100
+ command = arg;
101
+ }
102
+ else if (!arg.startsWith('-')) {
103
+ if (!command) {
104
+ command = arg;
105
+ }
106
+ else {
107
+ positionals.push(arg);
108
+ }
109
+ }
110
+ }
111
+ return { command, positionals, options };
112
+ }
113
+ function printHelp() {
114
+ console.log(`
115
+ Google Sheets CLI v${VERSION}
116
+
117
+ Usage:
118
+ sheets <command> [options]
119
+
120
+ Commands:
121
+ login Login with Google account
122
+ logout Logout and remove stored tokens
123
+ whoami Show current logged-in user
124
+ auth <credentials-file> Test service account authentication
125
+ get <spreadsheet-id> Get spreadsheet metadata
126
+ list <spreadsheet-id> List sheets in a spreadsheet
127
+ read <spreadsheet-id> <range> Read cell values
128
+ install-claude-skill Install Claude Code skill
129
+
130
+ Options:
131
+ --client <file> OAuth client JSON file (for login)
132
+ --credentials <file> Service account JSON file
133
+ --token <token> OAuth access token
134
+ --format <json|table> Output format (default: table)
135
+ --formula Show formulas instead of values
136
+ --version Show version number
137
+ --help Show help
138
+
139
+ Examples:
140
+ sheets login
141
+ sheets login --client client_secret.json
142
+ sheets get 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
143
+ sheets read 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms Sheet1!A1:D10
144
+ sheets install-claude-skill
145
+ `);
146
+ }
147
+ function printVersion() {
148
+ console.log(VERSION);
149
+ }
150
+ async function getAuthConfig(options) {
151
+ // Priority: --token > --credentials > stored user tokens
152
+ if (options.token) {
153
+ return { type: 'oauth', accessToken: options.token };
154
+ }
155
+ if (options.credentials) {
156
+ return { type: 'service-account', credentialsPath: options.credentials };
157
+ }
158
+ // Check for stored user tokens
159
+ const storedTokens = await loadStoredTokens();
160
+ if (storedTokens) {
161
+ return { type: 'user' };
162
+ }
163
+ throw new Error('Not authenticated. Run "sheets login" or use --credentials');
164
+ }
165
+ // === Login Commands ===
166
+ async function loadClientCredentials(clientPath) {
167
+ const content = await fs.readFile(clientPath, 'utf-8');
168
+ const data = JSON.parse(content);
169
+ // Support Google's client_secret JSON format
170
+ const installed = data.installed || data.web;
171
+ if (installed) {
172
+ return {
173
+ clientId: installed.client_id,
174
+ clientSecret: installed.client_secret,
175
+ };
176
+ }
177
+ // Support simple {clientId, clientSecret} format
178
+ if (data.clientId && data.clientSecret) {
179
+ return data;
180
+ }
181
+ throw new Error('Invalid client credentials file');
182
+ }
183
+ async function cmdLogin(options) {
184
+ try {
185
+ let credentials;
186
+ if (options.client) {
187
+ credentials = await loadClientCredentials(options.client);
188
+ }
189
+ const tokens = await login(credentials);
190
+ console.log(`\nLogin successful! Logged in as ${tokens.email}`);
191
+ }
192
+ catch (error) {
193
+ const e = error;
194
+ console.error(`Login failed: ${e.message}`);
195
+ process.exit(1);
196
+ }
197
+ }
198
+ async function cmdLogout() {
199
+ await deleteTokens();
200
+ console.log('Logged out successfully.');
201
+ }
202
+ async function cmdWhoami() {
203
+ const tokens = await loadStoredTokens();
204
+ if (!tokens) {
205
+ console.log('Not logged in. Run "sheets login" to authenticate.');
206
+ process.exit(1);
207
+ }
208
+ console.log(`Logged in as: ${tokens.email || 'Unknown'}`);
209
+ const expiresAt = new Date(tokens.expiresAt);
210
+ const isExpired = Date.now() >= tokens.expiresAt;
211
+ console.log(`Token expires: ${expiresAt.toLocaleString()}${isExpired ? ' (expired, will refresh)' : ''}`);
212
+ }
213
+ // === Service Account Auth ===
214
+ async function cmdAuth(credentialsPath) {
215
+ try {
216
+ await fs.access(credentialsPath);
217
+ const content = await fs.readFile(credentialsPath, 'utf-8');
218
+ const credentials = JSON.parse(content);
219
+ if (credentials.type !== 'service_account') {
220
+ throw new Error('Invalid credentials file: expected service_account type');
221
+ }
222
+ const client = createClient({
223
+ auth: { type: 'service-account', credentialsPath },
224
+ });
225
+ console.log('Testing authentication...');
226
+ console.log(` Project: ${credentials.project_id}`);
227
+ console.log(` Client Email: ${credentials.client_email}`);
228
+ try {
229
+ await client.getSpreadsheet('test-auth-only');
230
+ }
231
+ catch (error) {
232
+ const e = error;
233
+ if (e.code === 404 || e.code === 403) {
234
+ console.log('\nAuthentication successful!');
235
+ return;
236
+ }
237
+ throw error;
238
+ }
239
+ }
240
+ catch (error) {
241
+ const e = error;
242
+ console.error(`Authentication failed: ${e.message}`);
243
+ process.exit(1);
244
+ }
245
+ }
246
+ // === Claude Skill Installation ===
247
+ async function cmdInstallClaudeSkill() {
248
+ const homeDir = os.homedir();
249
+ const skillDir = path.join(homeDir, '.claude', 'skills', 'sheets');
250
+ const skillFile = path.join(skillDir, 'SKILL.md');
251
+ try {
252
+ // Create the skill directory
253
+ await fs.mkdir(skillDir, { recursive: true });
254
+ // Write the skill file
255
+ await fs.writeFile(skillFile, CLAUDE_SKILL_CONTENT, 'utf-8');
256
+ console.log('Claude skill installed successfully!');
257
+ console.log(`Location: ${skillFile}`);
258
+ console.log('');
259
+ console.log('You can now use /sheets in Claude Code to read Google Sheets data.');
260
+ }
261
+ catch (error) {
262
+ const e = error;
263
+ console.error(`Failed to install Claude skill: ${e.message}`);
264
+ process.exit(1);
265
+ }
266
+ }
267
+ // === Spreadsheet Commands ===
268
+ async function cmdGet(spreadsheetId, options) {
269
+ const authConfig = await getAuthConfig(options);
270
+ const client = createClient({ auth: authConfig });
271
+ const spreadsheet = await client.getSpreadsheet(spreadsheetId);
272
+ if (options.format === 'json') {
273
+ console.log(JSON.stringify(spreadsheet, null, 2));
274
+ }
275
+ else {
276
+ console.log(`Title: ${spreadsheet.properties.title}`);
277
+ console.log(`ID: ${spreadsheet.spreadsheetId}`);
278
+ console.log(`Locale: ${spreadsheet.properties.locale || 'N/A'}`);
279
+ console.log(`Timezone: ${spreadsheet.properties.timeZone || 'N/A'}`);
280
+ console.log(`Sheets: ${spreadsheet.sheets.length}`);
281
+ if (spreadsheet.spreadsheetUrl) {
282
+ console.log(`URL: ${spreadsheet.spreadsheetUrl}`);
283
+ }
284
+ }
285
+ }
286
+ async function cmdList(spreadsheetId, options) {
287
+ const authConfig = await getAuthConfig(options);
288
+ const client = createClient({ auth: authConfig });
289
+ const sheets = await client.getSheets(spreadsheetId);
290
+ if (options.format === 'json') {
291
+ console.log(JSON.stringify(sheets, null, 2));
292
+ }
293
+ else {
294
+ console.log('Sheets:');
295
+ sheets.forEach((sheet) => {
296
+ const grid = sheet.gridProperties;
297
+ const size = grid ? ` (${grid.rowCount} x ${grid.columnCount})` : '';
298
+ const hidden = sheet.hidden ? ' [hidden]' : '';
299
+ console.log(` ${sheet.index + 1}. ${sheet.title}${size}${hidden}`);
300
+ });
301
+ }
302
+ }
303
+ async function cmdRead(spreadsheetId, range, options) {
304
+ const authConfig = await getAuthConfig(options);
305
+ const client = createClient({ auth: authConfig });
306
+ const valueRange = options.formula
307
+ ? await client.getFormulas(spreadsheetId, range)
308
+ : await client.getValues(spreadsheetId, range);
309
+ if (options.format === 'json') {
310
+ console.log(JSON.stringify(valueRange, null, 2));
311
+ }
312
+ else {
313
+ console.log(`Range: ${valueRange.range}`);
314
+ console.log('');
315
+ if (valueRange.values.length === 0) {
316
+ console.log('(empty)');
317
+ return;
318
+ }
319
+ // Calculate column widths
320
+ const colWidths = [];
321
+ valueRange.values.forEach(row => {
322
+ row.forEach((cell, i) => {
323
+ const len = String(cell.value ?? '').length;
324
+ colWidths[i] = Math.max(colWidths[i] || 0, len, 3);
325
+ });
326
+ });
327
+ // Print table
328
+ valueRange.values.forEach(row => {
329
+ const cells = row.map((cell, i) => {
330
+ const val = String(cell.value ?? '');
331
+ return val.padEnd(colWidths[i]);
332
+ });
333
+ console.log(cells.join(' | '));
334
+ });
335
+ }
336
+ }
337
+ // === Main ===
338
+ async function main() {
339
+ const { command, positionals, options } = parseArgs(process.argv.slice(2));
340
+ if (!command || command === 'help' || command === '--help') {
341
+ printHelp();
342
+ return;
343
+ }
344
+ if (command === '--version') {
345
+ printVersion();
346
+ return;
347
+ }
348
+ try {
349
+ switch (command) {
350
+ case 'login':
351
+ await cmdLogin(options);
352
+ break;
353
+ case 'logout':
354
+ await cmdLogout();
355
+ break;
356
+ case 'whoami':
357
+ await cmdWhoami();
358
+ break;
359
+ case 'auth': {
360
+ const credentialsPath = positionals[0];
361
+ if (!credentialsPath) {
362
+ console.error('Usage: sheets auth <credentials-file>');
363
+ process.exit(1);
364
+ }
365
+ await cmdAuth(credentialsPath);
366
+ break;
367
+ }
368
+ case 'get': {
369
+ const spreadsheetId = positionals[0];
370
+ if (!spreadsheetId) {
371
+ console.error('Usage: sheets get <spreadsheet-id>');
372
+ process.exit(1);
373
+ }
374
+ await cmdGet(spreadsheetId, options);
375
+ break;
376
+ }
377
+ case 'list': {
378
+ const spreadsheetId = positionals[0];
379
+ if (!spreadsheetId) {
380
+ console.error('Usage: sheets list <spreadsheet-id>');
381
+ process.exit(1);
382
+ }
383
+ await cmdList(spreadsheetId, options);
384
+ break;
385
+ }
386
+ case 'read': {
387
+ const spreadsheetId = positionals[0];
388
+ const range = positionals[1];
389
+ if (!spreadsheetId || !range) {
390
+ console.error('Usage: sheets read <spreadsheet-id> <range>');
391
+ process.exit(1);
392
+ }
393
+ await cmdRead(spreadsheetId, range, options);
394
+ break;
395
+ }
396
+ case 'install-claude-skill':
397
+ await cmdInstallClaudeSkill();
398
+ break;
399
+ default:
400
+ console.error(`Unknown command: ${command}`);
401
+ printHelp();
402
+ process.exit(1);
403
+ }
404
+ }
405
+ catch (error) {
406
+ const e = error;
407
+ console.error(`Error: ${e.message}`);
408
+ process.exit(1);
409
+ }
410
+ }
411
+ main();
412
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * HTTP Client for Google Sheets API
3
+ * Uses native Node.js fetch (Node 18+)
4
+ */
5
+ export interface HttpClientOptions {
6
+ getAccessToken: () => Promise<string>;
7
+ }
8
+ export interface RequestOptions {
9
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
10
+ body?: unknown;
11
+ params?: Record<string, string>;
12
+ }
13
+ export declare class HttpClient {
14
+ private getAccessToken;
15
+ constructor(options: HttpClientOptions);
16
+ request<T>(path: string, options?: RequestOptions): Promise<T>;
17
+ private sleep;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,cAAc,CAAwB;gBAElC,OAAO,EAAE,iBAAiB;IAIhC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IA6DxE,OAAO,CAAC,KAAK;CAGhB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * HTTP Client for Google Sheets API
3
+ * Uses native Node.js fetch (Node 18+)
4
+ */
5
+ import { SheetsError } from '../types/index.js';
6
+ const BASE_URL = 'https://sheets.googleapis.com/v4';
7
+ const MAX_RETRIES = 3;
8
+ const INITIAL_BACKOFF_MS = 1000;
9
+ export class HttpClient {
10
+ getAccessToken;
11
+ constructor(options) {
12
+ this.getAccessToken = options.getAccessToken;
13
+ }
14
+ async request(path, options = {}) {
15
+ const { method = 'GET', body, params } = options;
16
+ let url = `${BASE_URL}${path}`;
17
+ if (params) {
18
+ const searchParams = new URLSearchParams(params);
19
+ url += `?${searchParams.toString()}`;
20
+ }
21
+ let lastError = null;
22
+ for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
23
+ try {
24
+ const accessToken = await this.getAccessToken();
25
+ const response = await fetch(url, {
26
+ method,
27
+ headers: {
28
+ 'Authorization': `Bearer ${accessToken}`,
29
+ 'Content-Type': 'application/json',
30
+ },
31
+ body: body ? JSON.stringify(body) : undefined,
32
+ });
33
+ if (response.status === 429) {
34
+ const backoffMs = INITIAL_BACKOFF_MS * Math.pow(2, attempt);
35
+ await this.sleep(backoffMs);
36
+ continue;
37
+ }
38
+ const data = await response.json();
39
+ if (!response.ok) {
40
+ if (data.error) {
41
+ throw new SheetsError({
42
+ code: data.error.code,
43
+ message: data.error.message,
44
+ status: data.error.status,
45
+ });
46
+ }
47
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
48
+ }
49
+ return data;
50
+ }
51
+ catch (error) {
52
+ lastError = error;
53
+ if (error instanceof SheetsError && error.code !== 429 && error.code !== 500 && error.code !== 503) {
54
+ throw error;
55
+ }
56
+ if (attempt < MAX_RETRIES - 1) {
57
+ const backoffMs = INITIAL_BACKOFF_MS * Math.pow(2, attempt);
58
+ await this.sleep(backoffMs);
59
+ }
60
+ }
61
+ }
62
+ throw lastError || new Error('Request failed after retries');
63
+ }
64
+ sleep(ms) {
65
+ return new Promise(resolve => setTimeout(resolve, ms));
66
+ }
67
+ }
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @ariadng/google-sheets
3
+ * Google Sheets API interface and CLI tool
4
+ */
5
+ export { SheetsClient, createClient } from './api/index.js';
6
+ export { createAuthProvider, OAuthAuth, ServiceAccountAuth, UserAuth, login, loadStoredTokens, deleteTokens } from './auth/index.js';
7
+ export type { AuthProvider } from './auth/index.js';
8
+ export { HttpClient } from './http/index.js';
9
+ export type { GridProperties, SheetProperties, Spreadsheet, SpreadsheetProperties, CellValue, CellFormat, Color, TextFormat, ValueRange, GetValuesOptions, BatchGetValuesResponse, ValueRenderOption, DateTimeRenderOption, MajorDimension, AuthConfig, OAuthConfig, ServiceAccountConfig, ServiceAccountCredentials, UserAuthConfig, StoredTokens, SheetsClientOptions, SheetsApiError, SheetsApiErrorDetail, } from './types/index.js';
10
+ export { SheetsError } from './types/index.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrI,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,YAAY,EAER,cAAc,EACd,eAAe,EAEf,WAAW,EACX,qBAAqB,EAErB,SAAS,EACT,UAAU,EACV,KAAK,EACL,UAAU,EAEV,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EAEd,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,mBAAmB,EAEnB,cAAc,EACd,oBAAoB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @ariadng/google-sheets
3
+ * Google Sheets API interface and CLI tool
4
+ */
5
+ // Client
6
+ export { SheetsClient, createClient } from './api/index.js';
7
+ // Auth
8
+ export { createAuthProvider, OAuthAuth, ServiceAccountAuth, UserAuth, login, loadStoredTokens, deleteTokens } from './auth/index.js';
9
+ // HTTP
10
+ export { HttpClient } from './http/index.js';
11
+ export { SheetsError } from './types/index.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO;AACP,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrI,OAAO;AACP,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}