@ariadng/sheets 0.1.0 → 0.2.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 +427 -300
  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 +318 -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 -32
  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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EACH,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,YAAY,GACf,MAAM,gBAAgB,CAAC;AAOxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AASzD,MAAM,UAAU,YAAY;IACxB,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,MAAM;SACvB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED,kBAAkB;AAElB,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,OAAe,CAAC;QAEpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;QAC9B,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,0BAA0B;AAE1B,SAAS,mBAAmB;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,SAAyB,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,oBAAoB,mBAAmB,EAAE,CAAC,CAAC;YAE9E,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAE5C,IAAI,KAAK,EAAE,CAAC;oBACR,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;oBACpG,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAC;oBACnD,OAAO;gBACX,CAAC;gBAED,IAAI,IAAI,EAAE,CAAC;oBACP,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;oBACxG,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACX,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACpC,uCAAuC;QAC3C,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC/C,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,4BAA4B;AAE5B,MAAM,UAAU,mBAAmB,CAAC,aAAqB,EAAE,QAAiB;IACxE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,SAAS,EAAE,QAAQ,IAAI,eAAe;QACtC,YAAY,EAAE,kBAAkB;QAChC,aAAa,EAAE,MAAM;QACrB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7B,cAAc,EAAE,aAAa;QAC7B,qBAAqB,EAAE,MAAM;QAC7B,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,SAAS;KACpB,CAAC,CAAC;IAEH,OAAO,GAAG,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACpD,CAAC;AAWD,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,YAAoB,EAAE,WAAoC;IACzG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACtB,SAAS,EAAE,WAAW,EAAE,QAAQ,IAAI,eAAe;YACnD,aAAa,EAAE,WAAW,EAAE,YAAY,IAAI,mBAAmB;YAC/D,IAAI;YACJ,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,oBAAoB;YAChC,YAAY,EAAE,kBAAkB;SACnC,CAAC;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAmB,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,YAAoB;IAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACtB,SAAS,EAAE,eAAe;YAC1B,aAAa,EAAE,mBAAmB;YAClC,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,eAAe;SAC9B,CAAC;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAmB,CAAC;AAClD,CAAC;AASD,KAAK,UAAU,WAAW,CAAC,WAAmB;IAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE;QAC7C,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE;KACtD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAc,CAAC;AAC7C,CAAC;AAED,wBAAwB;AAExB,KAAK,UAAU,eAAe;IAC1B,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACL,2BAA2B;IAC/B,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAoB;IAC1C,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAC9B,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACL,qBAAqB;IACzB,CAAC;AACL,CAAC;AAED,qBAAqB;AAErB,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,WAAoC;IAC5D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,wCAAwC;IACxC,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAC1C,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;IAE/B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAEnF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAiB;QACzB,WAAW,EAAE,aAAa,CAAC,YAAY;QACvC,YAAY,EAAE,aAAa,CAAC,aAAa,IAAI,EAAE;QAC/C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QACzD,KAAK,EAAE,QAAQ,CAAC,KAAK;KACxB,CAAC;IAEF,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,wBAAwB;AAExB,MAAM,OAAO,QAAQ;IACT,MAAM,GAAwB,IAAI,CAAC;IAE3C,KAAK,CAAC,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YAEvE,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC;YAC3D,CAAC;YAED,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;CACJ"}
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,318 @@
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 { createClient } from './api/index.js';
8
+ import { login, loadStoredTokens, deleteTokens } from './auth/index.js';
9
+ const VERSION = '0.1.0';
10
+ function parseArgs(args) {
11
+ const options = { format: 'table', formula: false };
12
+ const positionals = [];
13
+ let command = '';
14
+ for (let i = 0; i < args.length; i++) {
15
+ const arg = args[i];
16
+ if (arg === '--credentials' && args[i + 1]) {
17
+ options.credentials = args[++i];
18
+ }
19
+ else if (arg === '--token' && args[i + 1]) {
20
+ options.token = args[++i];
21
+ }
22
+ else if (arg === '--client' && args[i + 1]) {
23
+ options.client = args[++i];
24
+ }
25
+ else if (arg === '--format' && args[i + 1]) {
26
+ options.format = args[++i];
27
+ }
28
+ else if (arg === '--formula') {
29
+ options.formula = true;
30
+ }
31
+ else if (arg === '--version' || arg === '--help') {
32
+ command = arg;
33
+ }
34
+ else if (!arg.startsWith('-')) {
35
+ if (!command) {
36
+ command = arg;
37
+ }
38
+ else {
39
+ positionals.push(arg);
40
+ }
41
+ }
42
+ }
43
+ return { command, positionals, options };
44
+ }
45
+ function printHelp() {
46
+ console.log(`
47
+ Google Sheets CLI v${VERSION}
48
+
49
+ Usage:
50
+ sheets <command> [options]
51
+
52
+ Commands:
53
+ login Login with Google account
54
+ logout Logout and remove stored tokens
55
+ whoami Show current logged-in user
56
+ auth <credentials-file> Test service account authentication
57
+ get <spreadsheet-id> Get spreadsheet metadata
58
+ list <spreadsheet-id> List sheets in a spreadsheet
59
+ read <spreadsheet-id> <range> Read cell values
60
+
61
+ Options:
62
+ --client <file> OAuth client JSON file (for login)
63
+ --credentials <file> Service account JSON file
64
+ --token <token> OAuth access token
65
+ --format <json|table> Output format (default: table)
66
+ --formula Show formulas instead of values
67
+ --version Show version number
68
+ --help Show help
69
+
70
+ Examples:
71
+ sheets login
72
+ sheets login --client client_secret.json
73
+ sheets get 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
74
+ sheets read 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms Sheet1!A1:D10
75
+ `);
76
+ }
77
+ function printVersion() {
78
+ console.log(VERSION);
79
+ }
80
+ async function getAuthConfig(options) {
81
+ // Priority: --token > --credentials > stored user tokens
82
+ if (options.token) {
83
+ return { type: 'oauth', accessToken: options.token };
84
+ }
85
+ if (options.credentials) {
86
+ return { type: 'service-account', credentialsPath: options.credentials };
87
+ }
88
+ // Check for stored user tokens
89
+ const storedTokens = await loadStoredTokens();
90
+ if (storedTokens) {
91
+ return { type: 'user' };
92
+ }
93
+ throw new Error('Not authenticated. Run "sheets login" or use --credentials');
94
+ }
95
+ // === Login Commands ===
96
+ async function loadClientCredentials(clientPath) {
97
+ const content = await fs.readFile(clientPath, 'utf-8');
98
+ const data = JSON.parse(content);
99
+ // Support Google's client_secret JSON format
100
+ const installed = data.installed || data.web;
101
+ if (installed) {
102
+ return {
103
+ clientId: installed.client_id,
104
+ clientSecret: installed.client_secret,
105
+ };
106
+ }
107
+ // Support simple {clientId, clientSecret} format
108
+ if (data.clientId && data.clientSecret) {
109
+ return data;
110
+ }
111
+ throw new Error('Invalid client credentials file');
112
+ }
113
+ async function cmdLogin(options) {
114
+ try {
115
+ let credentials;
116
+ if (options.client) {
117
+ credentials = await loadClientCredentials(options.client);
118
+ }
119
+ const tokens = await login(credentials);
120
+ console.log(`\nLogin successful! Logged in as ${tokens.email}`);
121
+ }
122
+ catch (error) {
123
+ const e = error;
124
+ console.error(`Login failed: ${e.message}`);
125
+ process.exit(1);
126
+ }
127
+ }
128
+ async function cmdLogout() {
129
+ await deleteTokens();
130
+ console.log('Logged out successfully.');
131
+ }
132
+ async function cmdWhoami() {
133
+ const tokens = await loadStoredTokens();
134
+ if (!tokens) {
135
+ console.log('Not logged in. Run "sheets login" to authenticate.');
136
+ process.exit(1);
137
+ }
138
+ console.log(`Logged in as: ${tokens.email || 'Unknown'}`);
139
+ const expiresAt = new Date(tokens.expiresAt);
140
+ const isExpired = Date.now() >= tokens.expiresAt;
141
+ console.log(`Token expires: ${expiresAt.toLocaleString()}${isExpired ? ' (expired, will refresh)' : ''}`);
142
+ }
143
+ // === Service Account Auth ===
144
+ async function cmdAuth(credentialsPath) {
145
+ try {
146
+ await fs.access(credentialsPath);
147
+ const content = await fs.readFile(credentialsPath, 'utf-8');
148
+ const credentials = JSON.parse(content);
149
+ if (credentials.type !== 'service_account') {
150
+ throw new Error('Invalid credentials file: expected service_account type');
151
+ }
152
+ const client = createClient({
153
+ auth: { type: 'service-account', credentialsPath },
154
+ });
155
+ console.log('Testing authentication...');
156
+ console.log(` Project: ${credentials.project_id}`);
157
+ console.log(` Client Email: ${credentials.client_email}`);
158
+ try {
159
+ await client.getSpreadsheet('test-auth-only');
160
+ }
161
+ catch (error) {
162
+ const e = error;
163
+ if (e.code === 404 || e.code === 403) {
164
+ console.log('\nAuthentication successful!');
165
+ return;
166
+ }
167
+ throw error;
168
+ }
169
+ }
170
+ catch (error) {
171
+ const e = error;
172
+ console.error(`Authentication failed: ${e.message}`);
173
+ process.exit(1);
174
+ }
175
+ }
176
+ // === Spreadsheet Commands ===
177
+ async function cmdGet(spreadsheetId, options) {
178
+ const authConfig = await getAuthConfig(options);
179
+ const client = createClient({ auth: authConfig });
180
+ const spreadsheet = await client.getSpreadsheet(spreadsheetId);
181
+ if (options.format === 'json') {
182
+ console.log(JSON.stringify(spreadsheet, null, 2));
183
+ }
184
+ else {
185
+ console.log(`Title: ${spreadsheet.properties.title}`);
186
+ console.log(`ID: ${spreadsheet.spreadsheetId}`);
187
+ console.log(`Locale: ${spreadsheet.properties.locale || 'N/A'}`);
188
+ console.log(`Timezone: ${spreadsheet.properties.timeZone || 'N/A'}`);
189
+ console.log(`Sheets: ${spreadsheet.sheets.length}`);
190
+ if (spreadsheet.spreadsheetUrl) {
191
+ console.log(`URL: ${spreadsheet.spreadsheetUrl}`);
192
+ }
193
+ }
194
+ }
195
+ async function cmdList(spreadsheetId, options) {
196
+ const authConfig = await getAuthConfig(options);
197
+ const client = createClient({ auth: authConfig });
198
+ const sheets = await client.getSheets(spreadsheetId);
199
+ if (options.format === 'json') {
200
+ console.log(JSON.stringify(sheets, null, 2));
201
+ }
202
+ else {
203
+ console.log('Sheets:');
204
+ sheets.forEach((sheet) => {
205
+ const grid = sheet.gridProperties;
206
+ const size = grid ? ` (${grid.rowCount} x ${grid.columnCount})` : '';
207
+ const hidden = sheet.hidden ? ' [hidden]' : '';
208
+ console.log(` ${sheet.index + 1}. ${sheet.title}${size}${hidden}`);
209
+ });
210
+ }
211
+ }
212
+ async function cmdRead(spreadsheetId, range, options) {
213
+ const authConfig = await getAuthConfig(options);
214
+ const client = createClient({ auth: authConfig });
215
+ const valueRange = options.formula
216
+ ? await client.getFormulas(spreadsheetId, range)
217
+ : await client.getValues(spreadsheetId, range);
218
+ if (options.format === 'json') {
219
+ console.log(JSON.stringify(valueRange, null, 2));
220
+ }
221
+ else {
222
+ console.log(`Range: ${valueRange.range}`);
223
+ console.log('');
224
+ if (valueRange.values.length === 0) {
225
+ console.log('(empty)');
226
+ return;
227
+ }
228
+ // Calculate column widths
229
+ const colWidths = [];
230
+ valueRange.values.forEach(row => {
231
+ row.forEach((cell, i) => {
232
+ const len = String(cell.value ?? '').length;
233
+ colWidths[i] = Math.max(colWidths[i] || 0, len, 3);
234
+ });
235
+ });
236
+ // Print table
237
+ valueRange.values.forEach(row => {
238
+ const cells = row.map((cell, i) => {
239
+ const val = String(cell.value ?? '');
240
+ return val.padEnd(colWidths[i]);
241
+ });
242
+ console.log(cells.join(' | '));
243
+ });
244
+ }
245
+ }
246
+ // === Main ===
247
+ async function main() {
248
+ const { command, positionals, options } = parseArgs(process.argv.slice(2));
249
+ if (!command || command === 'help' || command === '--help') {
250
+ printHelp();
251
+ return;
252
+ }
253
+ if (command === '--version') {
254
+ printVersion();
255
+ return;
256
+ }
257
+ try {
258
+ switch (command) {
259
+ case 'login':
260
+ await cmdLogin(options);
261
+ break;
262
+ case 'logout':
263
+ await cmdLogout();
264
+ break;
265
+ case 'whoami':
266
+ await cmdWhoami();
267
+ break;
268
+ case 'auth': {
269
+ const credentialsPath = positionals[0];
270
+ if (!credentialsPath) {
271
+ console.error('Usage: sheets auth <credentials-file>');
272
+ process.exit(1);
273
+ }
274
+ await cmdAuth(credentialsPath);
275
+ break;
276
+ }
277
+ case 'get': {
278
+ const spreadsheetId = positionals[0];
279
+ if (!spreadsheetId) {
280
+ console.error('Usage: sheets get <spreadsheet-id>');
281
+ process.exit(1);
282
+ }
283
+ await cmdGet(spreadsheetId, options);
284
+ break;
285
+ }
286
+ case 'list': {
287
+ const spreadsheetId = positionals[0];
288
+ if (!spreadsheetId) {
289
+ console.error('Usage: sheets list <spreadsheet-id>');
290
+ process.exit(1);
291
+ }
292
+ await cmdList(spreadsheetId, options);
293
+ break;
294
+ }
295
+ case 'read': {
296
+ const spreadsheetId = positionals[0];
297
+ const range = positionals[1];
298
+ if (!spreadsheetId || !range) {
299
+ console.error('Usage: sheets read <spreadsheet-id> <range>');
300
+ process.exit(1);
301
+ }
302
+ await cmdRead(spreadsheetId, range, options);
303
+ break;
304
+ }
305
+ default:
306
+ console.error(`Unknown command: ${command}`);
307
+ printHelp();
308
+ process.exit(1);
309
+ }
310
+ }
311
+ catch (error) {
312
+ const e = error;
313
+ console.error(`Error: ${e.message}`);
314
+ process.exit(1);
315
+ }
316
+ }
317
+ main();
318
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIxE,MAAM,OAAO,GAAG,OAAO,CAAC;AAUxB,SAAS,SAAS,CAAC,IAAc;IAC7B,MAAM,OAAO,GAAe,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAqB,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,GAAG,GAAG,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,GAAG,GAAG,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS;IACd,OAAO,CAAC,GAAG,CAAC;qBACK,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B3B,CAAC,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAmB;IAC5C,yDAAyD;IACzD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC;IAED,+BAA+B;IAC/B,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC9C,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAClF,CAAC;AAED,yBAAyB;AAEzB,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IACnD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjC,6CAA6C;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO;YACH,QAAQ,EAAE,SAAS,CAAC,SAAS;YAC7B,YAAY,EAAE,SAAS,CAAC,aAAa;SACxC,CAAC;IACN,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,IAA8B,CAAC;IAC1C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAmB;IACvC,IAAI,CAAC;QACD,IAAI,WAA+C,CAAC;QAEpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,WAAW,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS;IACpB,MAAM,YAAY,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,SAAS;IACpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAExC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC;AAED,+BAA+B;AAE/B,KAAK,UAAU,OAAO,CAAC,eAAuB;IAC1C,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE;SACrD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,KAA0B,CAAC;YACrC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO;YACX,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,+BAA+B;AAE/B,KAAK,UAAU,MAAM,CAAC,aAAqB,EAAE,OAAmB;IAC5D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,UAAU,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,aAAqB,EAAE,OAAmB;IAC7D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAsB,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,aAAqB,EAAE,KAAa,EAAE,OAAmB;IAC5E,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO;QAC9B,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC;QAChD,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACX,CAAC;QAED,0BAA0B;QAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACpB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBAC5C,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACrC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,eAAe;AAEf,KAAK,UAAU,IAAI;IACf,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzD,SAAS,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1B,YAAY,EAAE,CAAC;QACf,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,QAAQ,OAAO,EAAE,CAAC;YACd,KAAK,OAAO;gBACR,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACxB,MAAM;YAEV,KAAK,QAAQ;gBACT,MAAM,SAAS,EAAE,CAAC;gBAClB,MAAM;YAEV,KAAK,QAAQ;gBACT,MAAM,SAAS,EAAE,CAAC;gBAClB,MAAM;YAEV,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC/B,MAAM;YACV,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACT,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBACrC,MAAM;YACV,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM;YACV,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM;YACV,CAAC;YAED;gBACI,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC7C,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Google Sheets API Type Definitions
3
+ */
4
+ export interface GridProperties {
5
+ rowCount: number;
6
+ columnCount: number;
7
+ frozenRowCount?: number;
8
+ frozenColumnCount?: number;
9
+ hideGridlines?: boolean;
10
+ }
11
+ export interface SheetProperties {
12
+ sheetId: number;
13
+ title: string;
14
+ index: number;
15
+ sheetType?: 'GRID' | 'OBJECT' | 'DATA_SOURCE';
16
+ gridProperties?: GridProperties;
17
+ hidden?: boolean;
18
+ rightToLeft?: boolean;
19
+ }
20
+ export interface SpreadsheetProperties {
21
+ title: string;
22
+ locale?: string;
23
+ timeZone?: string;
24
+ autoRecalc?: 'ON_CHANGE' | 'MINUTE' | 'HOUR';
25
+ defaultFormat?: CellFormat;
26
+ }
27
+ export interface Spreadsheet {
28
+ spreadsheetId: string;
29
+ properties: SpreadsheetProperties;
30
+ sheets: {
31
+ properties: SheetProperties;
32
+ }[];
33
+ spreadsheetUrl?: string;
34
+ }
35
+ export interface CellFormat {
36
+ numberFormat?: {
37
+ type: string;
38
+ pattern?: string;
39
+ };
40
+ backgroundColor?: Color;
41
+ textFormat?: TextFormat;
42
+ }
43
+ export interface Color {
44
+ red?: number;
45
+ green?: number;
46
+ blue?: number;
47
+ alpha?: number;
48
+ }
49
+ export interface TextFormat {
50
+ foregroundColor?: Color;
51
+ fontFamily?: string;
52
+ fontSize?: number;
53
+ bold?: boolean;
54
+ italic?: boolean;
55
+ strikethrough?: boolean;
56
+ underline?: boolean;
57
+ }
58
+ export interface CellValue {
59
+ value: string | number | boolean | null;
60
+ formula?: string;
61
+ formattedValue?: string;
62
+ }
63
+ export type ValueRenderOption = 'FORMATTED_VALUE' | 'UNFORMATTED_VALUE' | 'FORMULA';
64
+ export type DateTimeRenderOption = 'SERIAL_NUMBER' | 'FORMATTED_STRING';
65
+ export type MajorDimension = 'ROWS' | 'COLUMNS';
66
+ export interface ValueRange {
67
+ range: string;
68
+ majorDimension: MajorDimension;
69
+ values: CellValue[][];
70
+ }
71
+ export interface GetValuesOptions {
72
+ valueRenderOption?: ValueRenderOption;
73
+ dateTimeRenderOption?: DateTimeRenderOption;
74
+ majorDimension?: MajorDimension;
75
+ }
76
+ export interface BatchGetValuesResponse {
77
+ spreadsheetId: string;
78
+ valueRanges: ValueRange[];
79
+ }
80
+ export interface OAuthConfig {
81
+ type: 'oauth';
82
+ accessToken: string;
83
+ refreshToken?: string;
84
+ clientId?: string;
85
+ clientSecret?: string;
86
+ }
87
+ export interface ServiceAccountConfig {
88
+ type: 'service-account';
89
+ credentialsPath?: string;
90
+ credentials?: ServiceAccountCredentials;
91
+ }
92
+ export interface ServiceAccountCredentials {
93
+ type: 'service_account';
94
+ project_id: string;
95
+ private_key_id: string;
96
+ private_key: string;
97
+ client_email: string;
98
+ client_id: string;
99
+ auth_uri: string;
100
+ token_uri: string;
101
+ }
102
+ export interface UserAuthConfig {
103
+ type: 'user';
104
+ }
105
+ export interface StoredTokens {
106
+ accessToken: string;
107
+ refreshToken: string;
108
+ expiresAt: number;
109
+ email?: string;
110
+ }
111
+ export type AuthConfig = OAuthConfig | ServiceAccountConfig | UserAuthConfig;
112
+ export interface SheetsClientOptions {
113
+ auth: AuthConfig;
114
+ }
115
+ export interface SheetsApiErrorDetail {
116
+ '@type'?: string;
117
+ reason?: string;
118
+ domain?: string;
119
+ metadata?: Record<string, string>;
120
+ }
121
+ export interface SheetsApiError {
122
+ code: number;
123
+ message: string;
124
+ status: string;
125
+ details?: SheetsApiErrorDetail[];
126
+ }
127
+ export declare class SheetsError extends Error {
128
+ code: number;
129
+ status: string;
130
+ details?: SheetsApiErrorDetail[];
131
+ constructor(error: SheetsApiError);
132
+ }
133
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Google Sheets API Type Definitions
3
+ */
4
+ export class SheetsError extends Error {
5
+ code;
6
+ status;
7
+ details;
8
+ constructor(error) {
9
+ super(error.message);
10
+ this.name = 'SheetsError';
11
+ this.code = error.code;
12
+ this.status = error.status;
13
+ this.details = error.details;
14
+ }
15
+ }
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgKH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClC,IAAI,CAAS;IACb,MAAM,CAAS;IACf,OAAO,CAA0B;IAEjC,YAAY,KAAqB;QAC7B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC;CACJ"}