google-workspace-mcp 2.0.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 (75) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +765 -0
  3. package/dist/accounts.d.ts +85 -0
  4. package/dist/accounts.d.ts.map +1 -0
  5. package/dist/accounts.js +520 -0
  6. package/dist/accounts.js.map +1 -0
  7. package/dist/auth.d.ts +4 -0
  8. package/dist/auth.d.ts.map +1 -0
  9. package/dist/auth.js +206 -0
  10. package/dist/auth.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +426 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/errorHelpers.d.ts +40 -0
  16. package/dist/errorHelpers.d.ts.map +1 -0
  17. package/dist/errorHelpers.js +52 -0
  18. package/dist/errorHelpers.js.map +1 -0
  19. package/dist/googleDocsApiHelpers.d.ts +118 -0
  20. package/dist/googleDocsApiHelpers.d.ts.map +1 -0
  21. package/dist/googleDocsApiHelpers.js +850 -0
  22. package/dist/googleDocsApiHelpers.js.map +1 -0
  23. package/dist/googleSheetsApiHelpers.d.ts +75 -0
  24. package/dist/googleSheetsApiHelpers.d.ts.map +1 -0
  25. package/dist/googleSheetsApiHelpers.js +376 -0
  26. package/dist/googleSheetsApiHelpers.js.map +1 -0
  27. package/dist/server.d.ts +2 -0
  28. package/dist/server.d.ts.map +1 -0
  29. package/dist/server.js +119 -0
  30. package/dist/server.js.map +1 -0
  31. package/dist/serverWrapper.d.ts +21 -0
  32. package/dist/serverWrapper.d.ts.map +1 -0
  33. package/dist/serverWrapper.js +74 -0
  34. package/dist/serverWrapper.js.map +1 -0
  35. package/dist/tools/accounts.tools.d.ts +3 -0
  36. package/dist/tools/accounts.tools.d.ts.map +1 -0
  37. package/dist/tools/accounts.tools.js +154 -0
  38. package/dist/tools/accounts.tools.js.map +1 -0
  39. package/dist/tools/calendar.tools.d.ts +3 -0
  40. package/dist/tools/calendar.tools.d.ts.map +1 -0
  41. package/dist/tools/calendar.tools.js +487 -0
  42. package/dist/tools/calendar.tools.js.map +1 -0
  43. package/dist/tools/docs.tools.d.ts +3 -0
  44. package/dist/tools/docs.tools.d.ts.map +1 -0
  45. package/dist/tools/docs.tools.js +1766 -0
  46. package/dist/tools/docs.tools.js.map +1 -0
  47. package/dist/tools/drive.tools.d.ts +3 -0
  48. package/dist/tools/drive.tools.d.ts.map +1 -0
  49. package/dist/tools/drive.tools.js +1001 -0
  50. package/dist/tools/drive.tools.js.map +1 -0
  51. package/dist/tools/forms.tools.d.ts +3 -0
  52. package/dist/tools/forms.tools.d.ts.map +1 -0
  53. package/dist/tools/forms.tools.js +370 -0
  54. package/dist/tools/forms.tools.js.map +1 -0
  55. package/dist/tools/gmail.tools.d.ts +3 -0
  56. package/dist/tools/gmail.tools.d.ts.map +1 -0
  57. package/dist/tools/gmail.tools.js +520 -0
  58. package/dist/tools/gmail.tools.js.map +1 -0
  59. package/dist/tools/sheets.tools.d.ts +3 -0
  60. package/dist/tools/sheets.tools.d.ts.map +1 -0
  61. package/dist/tools/sheets.tools.js +521 -0
  62. package/dist/tools/sheets.tools.js.map +1 -0
  63. package/dist/tools/slides.tools.d.ts +3 -0
  64. package/dist/tools/slides.tools.d.ts.map +1 -0
  65. package/dist/tools/slides.tools.js +323 -0
  66. package/dist/tools/slides.tools.js.map +1 -0
  67. package/dist/types.d.ts +507 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +185 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/urlHelpers.d.ts +60 -0
  72. package/dist/urlHelpers.d.ts.map +1 -0
  73. package/dist/urlHelpers.js +101 -0
  74. package/dist/urlHelpers.js.map +1 -0
  75. package/package.json +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleDocsApiHelpers.js","sourceRoot":"","sources":["../src/googleDocsApiHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAGL,aAAa,GAMd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEtE,oBAAoB;AACpB,MAAM,yBAAyB,GAAG,EAAE,CAAC,CAAC,+BAA+B;AAErE,+CAA+C;AAE/C;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAAgB,EAChB,UAAkB,EAClB,QAAkC;IAElC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAChD,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,EAAE,QAAQ,EAAE;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC;QAC5B,MAAM,YAAY,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;QAE9C,4CAA4C;QAC5C,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACzD,iDAAiD;YACjD,MAAM,aAAa,GAAG,YAET,CAAC;YACd,MAAM,OAAO,GAAG,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC;YAC9C,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,qDAAqD,SAAS,IAAI,OAAO,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,UAAU,kBAAkB,CAAC,CAAC;QAC/F,IAAI,IAAI,KAAK,GAAG;YACd,MAAM,IAAI,SAAS,CACjB,uCAAuC,UAAU,mDAAmD,CACrG,CAAC;QACJ,oCAAoC;QACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,UAAkB,EAClB,QAAkC;IAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,gBAAgB;IAC7B,CAAC;IAED,4CAA4C;IAC5C,IAAI,QAAQ,CAAC,MAAM,IAAI,yBAAyB,EAAE,CAAC;QACjD,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,uDAAuD;IACvD,0FAA0F;IAE1F,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,IAAI,cAAc,GAAG,UAAU,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEnE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAgB,EAChB,UAAkB,EAClB,UAAkB,EAClB,QAAQ,GAAG,CAAC;IAEZ,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACnC,UAAU;YACV,8EAA8E;YAC9E,MAAM,EACJ,iIAAiI;SACpI,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,iDAAiD;QACjD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAmD,EAAE,CAAC;QAEpE,0DAA0D;QAC1D,MAAM,sBAAsB,GAAG,CAAC,OAA4B,EAAE,EAAE;YAC9D,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC1B,4BAA4B;gBAC5B,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;oBAChC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAoB,EAAE,EAAE;wBAC1D,IACE,EAAE,CAAC,OAAO,EAAE,OAAO;4BACnB,EAAE,CAAC,UAAU,KAAK,IAAI;4BACtB,EAAE,CAAC,UAAU,KAAK,SAAS;4BAC3B,EAAE,CAAC,QAAQ,KAAK,IAAI;4BACpB,EAAE,CAAC,QAAQ,KAAK,SAAS,EACzB,CAAC;4BACD,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;4BACvC,QAAQ,IAAI,WAAW,CAAC;4BACxB,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,WAAW;gCACjB,KAAK,EAAE,EAAE,CAAC,UAAU;gCACpB,GAAG,EAAE,EAAE,CAAC,QAAQ;6BACjB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,sEAAsE;gBACtE,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAa,EAAE,EAAE;wBAChD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;4BACnB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;gCACzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oCACjB,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACvC,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,uDAAuD;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9C,gEAAgE;QAChE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE3C,0CAA0C;QAC1C,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,OAAO,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACpE,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxB,MAAM;YACR,CAAC;YAED,UAAU,EAAE,CAAC;YAEb,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,qBAAqB,GAAG,YAAY,CAAC;gBAC3C,MAAM,mBAAmB,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC7D,IAAI,oBAAoB,GAAG,CAAC,CAAC;gBAE7B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;oBAChD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtC,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,aAAa,CAAC;oBAE5D,kEAAkE;oBAClE,IACE,UAAU,KAAK,CAAC,CAAC;wBACjB,qBAAqB,IAAI,kBAAkB;wBAC3C,qBAAqB,GAAG,gBAAgB,EACxC,CAAC;wBACD,UAAU,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,qBAAqB,GAAG,kBAAkB,CAAC,CAAC;oBACxE,CAAC;oBAED,IAAI,mBAAmB,GAAG,kBAAkB,IAAI,mBAAmB,IAAI,gBAAgB,EAAE,CAAC;wBACxF,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;wBAClE,MAAM;oBACR,CAAC;oBAED,oBAAoB,GAAG,gBAAgB,CAAC;gBAC1C,CAAC;gBAED,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzC,gCAAgC;oBAChC,UAAU,GAAG,CAAC,CAAC,CAAC;oBAChB,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACd,gBAAgB,GAAG,YAAY,GAAG,CAAC,CAAC;oBACpC,UAAU,EAAE,CAAC;oBACb,SAAS;gBACX,CAAC;gBAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAClC,CAAC;YAED,oCAAoC;YACpC,gBAAgB,GAAG,YAAY,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,wDAAwD;IACvE,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,IAAI,KAAK,GAAG;YACd,MAAM,IAAI,SAAS,CAAC,gDAAgD,UAAU,IAAI,CAAC,CAAC;QACtF,IAAI,IAAI,KAAK,GAAG;YACd,MAAM,IAAI,SAAS,CAAC,iDAAiD,UAAU,GAAG,CAAC,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAgB,EAChB,UAAkB,EAClB,WAAmB;IAEnB,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACnC,UAAU;YACV,mDAAmD;YACnD,MAAM,EAAE,iFAAiF;SAC1F,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,oDAAoD;QACpD,MAAM,sBAAsB,GAAG,CAC7B,OAA4B,EACqB,EAAE;YACnD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC9B,2FAA2F;gBAC3F,IACE,OAAO,CAAC,UAAU,KAAK,IAAI;oBAC3B,OAAO,CAAC,UAAU,KAAK,SAAS;oBAChC,OAAO,CAAC,QAAQ,KAAK,IAAI;oBACzB,OAAO,CAAC,QAAQ,KAAK,SAAS,EAC9B,CAAC;oBACD,sDAAsD;oBACtD,IAAI,WAAW,IAAI,OAAO,CAAC,UAAU,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACxE,8CAA8C;wBAC9C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;4BACtB,OAAO;gCACL,UAAU,EAAE,OAAO,CAAC,UAAU;gCAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;6BAC3B,CAAC;wBACJ,CAAC;wBAED,sDAAsD;wBACtD,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;4BAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gCAC1C,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oCACnB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wCAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4CACjB,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4CACpD,IAAI,MAAM;gDAAE,OAAO,MAAM,CAAC;wCAC5B,CAAC;oCACH,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,IAAI,KAAK,GAAG;YACd,MAAM,IAAI,SAAS,CAAC,mDAAmD,UAAU,IAAI,CAAC,CAAC;QACzF,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,yCAAyC,UAAU,GAAG,CAAC,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,iCAAiC;AAEjC,MAAM,UAAU,2BAA2B,CACzC,UAAkB,EAClB,QAAgB,EAChB,KAAoB;IAEpB,MAAM,SAAS,GAA6B,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACtC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,SAAS,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/D,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,SAAS,CAAC,kBAAkB,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAChE,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,SAAS,CAAC,wCAAwC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QACvF,SAAS,CAAC,eAAe,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC9D,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,SAAS,CAAC,wCAAwC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QACvF,SAAS,CAAC,eAAe,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC9D,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,SAAS,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC9B,+EAA+E;QAC/E,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;IAEnE,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE;YACf,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;YAC/B,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;SACjC;KACF,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,UAAkB,EAClB,QAAgB,EAChB,KAAyB;IAEzB,uDAAuD;IACvD,MAAM,cAAc,GAAkC,EAAE,CAAC;IACzD,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,4DAA4D;IAC5D,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,cAAc,CAAC,WAAW,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1E,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,cAAc,CAAC,SAAS,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,cAAc,CAAC,UAAU,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,cAAc,CAAC,UAAU,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,6CAA6C;IAC7C,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACvC,cAAc,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QACrD,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,cAAc,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACjD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,iCAAiC;IACjC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,qBAAqB;IACpC,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAA2B;QACtC,oBAAoB,EAAE;YACpB,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;YAC/B,cAAc,EAAE,cAAc;YAC9B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;SACjC;KACF,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC7C,CAAC;AAED,mCAAmC;AAEnC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAgB,EAChB,UAAkB,EAClB,IAAY,EACZ,OAAe,EACf,KAAa;IAEb,IAAI,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAA2B;QACtC,WAAW,EAAE;YACX,QAAQ,EAAE,EAAE,KAAK,EAAE;YACnB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;SACjB;KACF,CAAC;IACF,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,UAAkB,EAClB,eAAuB,EACvB,QAAgB,EAChB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;IAED,0CAA0C;IAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;YAE7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5C,MAAM,IAAI,SAAS,CACjB,aAAa,QAAQ,6BAA6B,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7F,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;YAE7B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,SAAS,CAAC,OAAO,QAAQ,eAAe,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnD,MAAM,IAAI,SAAS,CACjB,gBAAgB,WAAW,2BAA2B,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACtG,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YAEjC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,SAAS,CAAC,SAAS,QAAQ,KAAK,WAAW,kBAAkB,CAAC,CAAC;YAC3E,CAAC;YAED,qCAAqC;YACrC,uEAAuE;YACvE,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAExD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,UAAU,CAAC;YAEpD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,2BAA2B,eAAe,8CAA8C,CACzF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAgB,EAChB,UAAkB,EAClB,eAAuB,EACvB,QAAgB,EAChB,WAAmB,EACnB,UAAkB;IAElB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CACxC,IAAI,EACJ,UAAU,EACV,eAAe,EACf,QAAQ,EACR,WAAW,CACZ,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,2BAA2B,QAAQ,KAAK,WAAW,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,0FAA0F;IAC1F,uEAAuE;IACvE,wGAAwG;IACxG,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAC7E,IAAI,cAAc,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC;YACZ,kBAAkB,EAAE;gBAClB,KAAK,EAAE;oBACL,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,QAAQ,EAAE,cAAc;iBACzB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE;gBACzC,IAAI,EAAE,UAAU;aACjB;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,gBAAgB;IAC7B,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,UAAkB;IASlB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAKP,EAAE,CAAC;IAER,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExE,MAAM,CAAC,IAAI,CAAC;gBACV,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;gBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;gBAC/B,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAgB,EAChB,UAAkB,EAClB,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC,CAAC,oBAAoB;IAC1C,MAAM,OAAO,GAA2B;QACtC,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,KAAK,EAAE;YACnB,IAAI,EAAE,IAAI;SACX;KACF,CAAC;IACF,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAgB,EAChB,UAAkB,EAClB,aAA4B;IAE5B,uBAAuB;IACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAA+C,EAAE,CAAC;IAEtE,mDAAmD;IACnD,SAAS,YAAY,CAAC,SAA+C;QACnE,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;YACpF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,kBAAkB,EAAE,UAAU,CAAC;YAC5D,IAAI,UAAU,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,aAAa,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC/C,IAAI,QAAQ,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;YAE5C,+DAA+D;YAC/D,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBAC7C,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;wBACnC,IAAI,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;4BAChD,gBAAgB,GAAG,IAAI,CAAC;4BACxB,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAQD,MAAM,aAAa,GAAkB;IACnC,2BAA2B;IAC3B,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,2BAA2B,EAAE;IACtE,+BAA+B;IAC/B,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,8BAA8B,EAAE;IAC3E,+BAA+B;IAC/B,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,8BAA8B,EAAE;CACjF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAgB,EAChB,UAAkB,EAClB,UAAmB,EACnB,QAAiB;IAEjB,uBAAuB;IACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAU9C,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IAEnD,yDAAyD;IACzD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,SAAS;QAEjC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QAE9C,kCAAkC;QAClC,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;YAAE,SAAS;QAC/D,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,GAAG,QAAQ;YAAE,SAAS;QAE7D,6CAA6C;QAC7C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YAAE,SAAS;QAEvC,wCAAwC;QACxC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACrD,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACjC,aAAa,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,KAAK,EAAE,CAAC;gBACV,kBAAkB,CAAC,IAAI,CAAC;oBACtB,UAAU,EAAE,SAAS;oBACrB,QAAQ,EAAE,OAAO;oBACjB,cAAc,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;oBAC3C,YAAY,EAAE,OAAO,CAAC,YAAY;iBACnC,CAAC,CAAC;gBACH,MAAM,CAAC,uCAAuC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC,CAAC,yBAAyB;IACtC,CAAC;IAED,oEAAoE;IACpE,oDAAoD;IACpD,6EAA6E;IAC7E,MAAM,WAAW,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAExF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,gCAAgC;QAChC,QAAQ,CAAC,IAAI,CAAC;YACZ,kBAAkB,EAAE;gBAClB,KAAK,EAAE;oBACL,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,QAAQ,EAAE,IAAI,CAAC,cAAc;iBAC9B;aACF;SACF,CAAC,CAAC;QAEH,yBAAyB;QACzB,+EAA+E;QAC/E,oEAAoE;QACpE,QAAQ,CAAC,IAAI,CAAC;YACZ,sBAAsB,EAAE;gBACtB,KAAK,EAAE;oBACL,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,oCAAoC;iBACpE;gBACD,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC;SACF,CAAC,CAAC;IACL,CAAC;IAED,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,CAAC;IAEnB,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,kCAAkC;AAElC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,KAAa,EACb,KAAc,EACd,MAAe;IAEf,sBAAsB;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,sCAAsC;IACtC,MAAM,OAAO,GAA2B;QACtC,iBAAiB,EAAE;YACjB,QAAQ,EAAE,EAAE,KAAK,EAAE;YACnB,GAAG,EAAE,QAAQ;YACb,GAAG,CAAC,KAAK;gBACP,MAAM,IAAI;gBACR,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;oBACzC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;iBACxC;aACF,CAAC;SACL;KACF,CAAC;IAEF,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA0C,EAC1C,aAAqB,EACrB,cAAuB;IAEvB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,qBAAqB;IACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,WAAW,GAA2B;QAC1C,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,eAAe;KACxB,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,0HAA0H;IAC1H,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;IAEhE,uBAAuB;IACvB,MAAM,YAAY,GAA8C;QAC9D,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC;KACzC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,WAAW,EAAE,YAAY;QACzB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,+BAA+B;KACxC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,MAAM;QACd,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;SACf;KACF,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACrC,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,gBAAgB;KACzB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;IACpD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAA4B;IACrD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,GAAuB,EACvB,OAAuB,EACvB,KAAa;IAEb,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAChC,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmD;IAClF,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAA0B,EAAE,EAAE;QAC9D,oBAAoB;QACpB,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAoB,EAAE,EAAE;gBAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACxB,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAa,EAAE,EAAE;gBAChD,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;oBAC1C,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAA8B,EAAE,EAAE;wBACvD,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAoB,EAAE,EAAE;4BAChE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gCACxB,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;4BAC3C,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,GAA4B,EAC5B,KAAa;IAEb,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,UAAU,GAAG,CAAC,IAA0B,EAA6B,EAAE;QAC3E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,aAAa,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,GAAG,CAAC;YACb,CAAC;YACD,gCAAgC;YAChC,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { type sheets_v4 } from 'googleapis';
2
+ import { type SheetsClient } from './types.js';
3
+ /** Cell value type - can be string, number, boolean, or null */
4
+ type CellValue = string | number | boolean | null;
5
+ /**
6
+ * Converts A1 notation to row/column indices (0-based)
7
+ * Example: "A1" -> {row: 0, col: 0}, "B2" -> {row: 1, col: 1}
8
+ */
9
+ export declare function a1ToRowCol(a1: string): {
10
+ row: number;
11
+ col: number;
12
+ };
13
+ /**
14
+ * Converts row/column indices (0-based) to A1 notation
15
+ * Example: {row: 0, col: 0} -> "A1", {row: 1, col: 1} -> "B2"
16
+ */
17
+ export declare function rowColToA1(row: number, col: number): string;
18
+ /**
19
+ * Validates and normalizes a range string
20
+ * Examples: "A1" -> "Sheet1!A1", "A1:B2" -> "Sheet1!A1:B2"
21
+ */
22
+ export declare function normalizeRange(range: string, sheetName?: string): string;
23
+ /**
24
+ * Reads values from a spreadsheet range
25
+ */
26
+ export declare function readRange(sheets: SheetsClient, spreadsheetId: string, range: string): Promise<sheets_v4.Schema$ValueRange>;
27
+ /**
28
+ * Writes values to a spreadsheet range
29
+ */
30
+ export declare function writeRange(sheets: SheetsClient, spreadsheetId: string, range: string, values: CellValue[][], valueInputOption?: 'RAW' | 'USER_ENTERED'): Promise<sheets_v4.Schema$UpdateValuesResponse>;
31
+ /**
32
+ * Appends values to the end of a sheet
33
+ */
34
+ export declare function appendValues(sheets: SheetsClient, spreadsheetId: string, range: string, values: CellValue[][], valueInputOption?: 'RAW' | 'USER_ENTERED'): Promise<sheets_v4.Schema$AppendValuesResponse>;
35
+ /**
36
+ * Clears values from a range
37
+ */
38
+ export declare function clearRange(sheets: SheetsClient, spreadsheetId: string, range: string): Promise<sheets_v4.Schema$ClearValuesResponse>;
39
+ /**
40
+ * Gets spreadsheet metadata including sheet information
41
+ */
42
+ export declare function getSpreadsheetMetadata(sheets: SheetsClient, spreadsheetId: string): Promise<sheets_v4.Schema$Spreadsheet>;
43
+ /**
44
+ * Creates a new sheet/tab in a spreadsheet
45
+ */
46
+ export declare function addSheet(sheets: SheetsClient, spreadsheetId: string, sheetTitle: string): Promise<sheets_v4.Schema$BatchUpdateSpreadsheetResponse>;
47
+ /**
48
+ * Formats cells in a range
49
+ * Note: This function requires the sheetId. For simplicity, we'll get it from the spreadsheet metadata.
50
+ */
51
+ export declare function formatCells(sheets: SheetsClient, spreadsheetId: string, range: string, format: {
52
+ backgroundColor?: {
53
+ red: number;
54
+ green: number;
55
+ blue: number;
56
+ };
57
+ textFormat?: {
58
+ foregroundColor?: {
59
+ red: number;
60
+ green: number;
61
+ blue: number;
62
+ };
63
+ fontSize?: number;
64
+ bold?: boolean;
65
+ italic?: boolean;
66
+ };
67
+ horizontalAlignment?: 'LEFT' | 'CENTER' | 'RIGHT';
68
+ verticalAlignment?: 'TOP' | 'MIDDLE' | 'BOTTOM';
69
+ }): Promise<sheets_v4.Schema$BatchUpdateSpreadsheetResponse>;
70
+ /**
71
+ * Deletes a sheet/tab from a spreadsheet
72
+ */
73
+ export declare function deleteSheet(sheets: SheetsClient, spreadsheetId: string, sheetId: number): Promise<sheets_v4.Schema$BatchUpdateSpreadsheetResponse>;
74
+ export {};
75
+ //# sourceMappingURL=googleSheetsApiHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleSheetsApiHelpers.d.ts","sourceRoot":"","sources":["../src/googleSheetsApiHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,gEAAgE;AAChE,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgBnE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAgB3D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAaxE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAmBtC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EAAE,EAAE,EACrB,gBAAgB,GAAE,KAAK,GAAG,cAA+B,GACxD,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAuBhD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EAAE,EAAE,EACrB,gBAAgB,GAAE,KAAK,GAAG,cAA+B,GACxD,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAwBhD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAmB/C;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAmBvC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC,qCAAqC,CAAC,CA6B1D;AAoBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE;IACN,eAAe,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,UAAU,CAAC,EAAE;QACX,eAAe,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClD,iBAAiB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACjD,GACA,OAAO,CAAC,SAAS,CAAC,qCAAqC,CAAC,CA+H1D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAgC1D"}
@@ -0,0 +1,376 @@
1
+ import { UserError } from 'fastmcp';
2
+ import { isGoogleApiError, getErrorMessage } from './errorHelpers.js';
3
+ // --- Core Helper Functions ---
4
+ /**
5
+ * Converts A1 notation to row/column indices (0-based)
6
+ * Example: "A1" -> {row: 0, col: 0}, "B2" -> {row: 1, col: 1}
7
+ */
8
+ export function a1ToRowCol(a1) {
9
+ const match = /^([A-Z]+)(\d+)$/i.exec(a1);
10
+ if (!match) {
11
+ throw new UserError(`Invalid A1 notation: ${a1}. Expected format like "A1" or "B2"`);
12
+ }
13
+ const colStr = match[1].toUpperCase();
14
+ const row = parseInt(match[2], 10) - 1; // Convert to 0-based
15
+ let col = 0;
16
+ for (let i = 0; i < colStr.length; i++) {
17
+ col = col * 26 + (colStr.charCodeAt(i) - 64);
18
+ }
19
+ col -= 1; // Convert to 0-based
20
+ return { row, col };
21
+ }
22
+ /**
23
+ * Converts row/column indices (0-based) to A1 notation
24
+ * Example: {row: 0, col: 0} -> "A1", {row: 1, col: 1} -> "B2"
25
+ */
26
+ export function rowColToA1(row, col) {
27
+ if (row < 0 || col < 0) {
28
+ throw new UserError(`Row and column indices must be non-negative. Got row: ${row}, col: ${col}`);
29
+ }
30
+ let colStr = '';
31
+ let colNum = col + 1; // Convert to 1-based for calculation
32
+ while (colNum > 0) {
33
+ colNum -= 1;
34
+ colStr = String.fromCharCode(65 + (colNum % 26)) + colStr;
35
+ colNum = Math.floor(colNum / 26);
36
+ }
37
+ return `${colStr}${row + 1}`;
38
+ }
39
+ /**
40
+ * Validates and normalizes a range string
41
+ * Examples: "A1" -> "Sheet1!A1", "A1:B2" -> "Sheet1!A1:B2"
42
+ */
43
+ export function normalizeRange(range, sheetName) {
44
+ // If range already contains '!', assume it's already normalized
45
+ if (range.includes('!')) {
46
+ return range;
47
+ }
48
+ // If sheetName is provided, prepend it
49
+ if (sheetName) {
50
+ return `${sheetName}!${range}`;
51
+ }
52
+ // Default to Sheet1 if no sheet name provided
53
+ return `Sheet1!${range}`;
54
+ }
55
+ /**
56
+ * Reads values from a spreadsheet range
57
+ */
58
+ export async function readRange(sheets, spreadsheetId, range) {
59
+ try {
60
+ const response = await sheets.spreadsheets.values.get({
61
+ spreadsheetId,
62
+ range,
63
+ });
64
+ return response.data;
65
+ }
66
+ catch (error) {
67
+ const code = isGoogleApiError(error) ? error.code : undefined;
68
+ if (code === 404) {
69
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
70
+ }
71
+ if (code === 403) {
72
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have read access.`);
73
+ }
74
+ throw new UserError(`Failed to read range: ${getErrorMessage(error)}`);
75
+ }
76
+ }
77
+ /**
78
+ * Writes values to a spreadsheet range
79
+ */
80
+ export async function writeRange(sheets, spreadsheetId, range, values, valueInputOption = 'USER_ENTERED') {
81
+ try {
82
+ const response = await sheets.spreadsheets.values.update({
83
+ spreadsheetId,
84
+ range,
85
+ valueInputOption,
86
+ requestBody: {
87
+ values,
88
+ },
89
+ });
90
+ return response.data;
91
+ }
92
+ catch (error) {
93
+ const code = isGoogleApiError(error) ? error.code : undefined;
94
+ if (code === 404) {
95
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
96
+ }
97
+ if (code === 403) {
98
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have write access.`);
99
+ }
100
+ throw new UserError(`Failed to write range: ${getErrorMessage(error)}`);
101
+ }
102
+ }
103
+ /**
104
+ * Appends values to the end of a sheet
105
+ */
106
+ export async function appendValues(sheets, spreadsheetId, range, values, valueInputOption = 'USER_ENTERED') {
107
+ try {
108
+ const response = await sheets.spreadsheets.values.append({
109
+ spreadsheetId,
110
+ range,
111
+ valueInputOption,
112
+ insertDataOption: 'INSERT_ROWS',
113
+ requestBody: {
114
+ values,
115
+ },
116
+ });
117
+ return response.data;
118
+ }
119
+ catch (error) {
120
+ const code = isGoogleApiError(error) ? error.code : undefined;
121
+ if (code === 404) {
122
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
123
+ }
124
+ if (code === 403) {
125
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have write access.`);
126
+ }
127
+ throw new UserError(`Failed to append values: ${getErrorMessage(error)}`);
128
+ }
129
+ }
130
+ /**
131
+ * Clears values from a range
132
+ */
133
+ export async function clearRange(sheets, spreadsheetId, range) {
134
+ try {
135
+ const response = await sheets.spreadsheets.values.clear({
136
+ spreadsheetId,
137
+ range,
138
+ });
139
+ return response.data;
140
+ }
141
+ catch (error) {
142
+ const code = isGoogleApiError(error) ? error.code : undefined;
143
+ if (code === 404) {
144
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
145
+ }
146
+ if (code === 403) {
147
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have write access.`);
148
+ }
149
+ throw new UserError(`Failed to clear range: ${getErrorMessage(error)}`);
150
+ }
151
+ }
152
+ /**
153
+ * Gets spreadsheet metadata including sheet information
154
+ */
155
+ export async function getSpreadsheetMetadata(sheets, spreadsheetId) {
156
+ try {
157
+ const response = await sheets.spreadsheets.get({
158
+ spreadsheetId,
159
+ includeGridData: false,
160
+ });
161
+ return response.data;
162
+ }
163
+ catch (error) {
164
+ const code = isGoogleApiError(error) ? error.code : undefined;
165
+ if (code === 404) {
166
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
167
+ }
168
+ if (code === 403) {
169
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have read access.`);
170
+ }
171
+ throw new UserError(`Failed to get spreadsheet metadata: ${getErrorMessage(error)}`);
172
+ }
173
+ }
174
+ /**
175
+ * Creates a new sheet/tab in a spreadsheet
176
+ */
177
+ export async function addSheet(sheets, spreadsheetId, sheetTitle) {
178
+ try {
179
+ const response = await sheets.spreadsheets.batchUpdate({
180
+ spreadsheetId,
181
+ requestBody: {
182
+ requests: [
183
+ {
184
+ addSheet: {
185
+ properties: {
186
+ title: sheetTitle,
187
+ },
188
+ },
189
+ },
190
+ ],
191
+ },
192
+ });
193
+ return response.data;
194
+ }
195
+ catch (error) {
196
+ const code = isGoogleApiError(error) ? error.code : undefined;
197
+ if (code === 404) {
198
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
199
+ }
200
+ if (code === 403) {
201
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have write access.`);
202
+ }
203
+ throw new UserError(`Failed to add sheet: ${getErrorMessage(error)}`);
204
+ }
205
+ }
206
+ /**
207
+ * Parses A1 notation range to extract sheet name and cell range
208
+ * Returns {sheetName, a1Range} where a1Range is just the cell part (e.g., "A1:B2")
209
+ */
210
+ function parseRange(range) {
211
+ if (range.includes('!')) {
212
+ const parts = range.split('!');
213
+ return {
214
+ sheetName: parts[0].replace(/^'|'$/g, ''), // Remove quotes if present
215
+ a1Range: parts[1],
216
+ };
217
+ }
218
+ return {
219
+ sheetName: null,
220
+ a1Range: range,
221
+ };
222
+ }
223
+ /**
224
+ * Formats cells in a range
225
+ * Note: This function requires the sheetId. For simplicity, we'll get it from the spreadsheet metadata.
226
+ */
227
+ export async function formatCells(sheets, spreadsheetId, range, format) {
228
+ try {
229
+ // Parse the range to get sheet name and cell range
230
+ const { sheetName, a1Range } = parseRange(range);
231
+ // Get spreadsheet metadata to find sheetId
232
+ const metadata = await getSpreadsheetMetadata(sheets, spreadsheetId);
233
+ let sheetId;
234
+ if (sheetName) {
235
+ // Find the sheet by name
236
+ const sheet = metadata.sheets?.find((s) => s.properties?.title === sheetName);
237
+ if (!sheet?.properties?.sheetId) {
238
+ throw new UserError(`Sheet "${sheetName}" not found in spreadsheet.`);
239
+ }
240
+ sheetId = sheet.properties.sheetId;
241
+ }
242
+ else {
243
+ // Use the first sheet
244
+ const firstSheet = metadata.sheets?.[0];
245
+ if (!firstSheet?.properties?.sheetId) {
246
+ throw new UserError('Spreadsheet has no sheets.');
247
+ }
248
+ sheetId = firstSheet.properties.sheetId;
249
+ }
250
+ // Parse A1 range to get row/column indices
251
+ // eslint-disable-next-line security/detect-unsafe-regex -- Simple bounded regex for A1 notation parsing
252
+ const rangeMatch = /^([A-Z]+)(\d+)(?::([A-Z]+)(\d+))?$/i.exec(a1Range);
253
+ if (!rangeMatch) {
254
+ throw new UserError(`Invalid range format: ${a1Range}. Expected format like "A1" or "A1:B2"`);
255
+ }
256
+ const startCol = rangeMatch[1].toUpperCase();
257
+ const startRow = parseInt(rangeMatch[2], 10) - 1; // Convert to 0-based
258
+ const endCol = rangeMatch[3] ? rangeMatch[3].toUpperCase() : startCol;
259
+ const endRow = rangeMatch[4] ? parseInt(rangeMatch[4], 10) - 1 : startRow; // Convert to 0-based
260
+ // Convert column letters to 0-based indices
261
+ function colToIndex(col) {
262
+ let index = 0;
263
+ for (let i = 0; i < col.length; i++) {
264
+ index = index * 26 + (col.charCodeAt(i) - 64);
265
+ }
266
+ return index - 1;
267
+ }
268
+ const startColIndex = colToIndex(startCol);
269
+ const endColIndex = colToIndex(endCol);
270
+ const userEnteredFormat = {};
271
+ if (format.backgroundColor) {
272
+ userEnteredFormat.backgroundColor = {
273
+ red: format.backgroundColor.red,
274
+ green: format.backgroundColor.green,
275
+ blue: format.backgroundColor.blue,
276
+ alpha: 1,
277
+ };
278
+ }
279
+ if (format.textFormat) {
280
+ userEnteredFormat.textFormat = {};
281
+ if (format.textFormat.foregroundColor) {
282
+ userEnteredFormat.textFormat.foregroundColor = {
283
+ red: format.textFormat.foregroundColor.red,
284
+ green: format.textFormat.foregroundColor.green,
285
+ blue: format.textFormat.foregroundColor.blue,
286
+ alpha: 1,
287
+ };
288
+ }
289
+ if (format.textFormat.fontSize !== undefined) {
290
+ userEnteredFormat.textFormat.fontSize = format.textFormat.fontSize;
291
+ }
292
+ if (format.textFormat.bold !== undefined) {
293
+ userEnteredFormat.textFormat.bold = format.textFormat.bold;
294
+ }
295
+ if (format.textFormat.italic !== undefined) {
296
+ userEnteredFormat.textFormat.italic = format.textFormat.italic;
297
+ }
298
+ }
299
+ if (format.horizontalAlignment) {
300
+ userEnteredFormat.horizontalAlignment = format.horizontalAlignment;
301
+ }
302
+ if (format.verticalAlignment) {
303
+ userEnteredFormat.verticalAlignment = format.verticalAlignment;
304
+ }
305
+ const response = await sheets.spreadsheets.batchUpdate({
306
+ spreadsheetId,
307
+ requestBody: {
308
+ requests: [
309
+ {
310
+ repeatCell: {
311
+ range: {
312
+ sheetId: sheetId,
313
+ startRowIndex: startRow,
314
+ endRowIndex: endRow + 1, // endRowIndex is exclusive
315
+ startColumnIndex: startColIndex,
316
+ endColumnIndex: endColIndex + 1, // endColumnIndex is exclusive
317
+ },
318
+ cell: {
319
+ userEnteredFormat,
320
+ },
321
+ fields: 'userEnteredFormat(backgroundColor,textFormat,horizontalAlignment,verticalAlignment)',
322
+ },
323
+ },
324
+ ],
325
+ },
326
+ });
327
+ return response.data;
328
+ }
329
+ catch (error) {
330
+ const code = isGoogleApiError(error) ? error.code : undefined;
331
+ if (code === 404) {
332
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
333
+ }
334
+ if (code === 403) {
335
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have write access.`);
336
+ }
337
+ if (error instanceof UserError)
338
+ throw error;
339
+ throw new UserError(`Failed to format cells: ${getErrorMessage(error)}`);
340
+ }
341
+ }
342
+ /**
343
+ * Deletes a sheet/tab from a spreadsheet
344
+ */
345
+ export async function deleteSheet(sheets, spreadsheetId, sheetId) {
346
+ try {
347
+ const response = await sheets.spreadsheets.batchUpdate({
348
+ spreadsheetId,
349
+ requestBody: {
350
+ requests: [
351
+ {
352
+ deleteSheet: {
353
+ sheetId,
354
+ },
355
+ },
356
+ ],
357
+ },
358
+ });
359
+ return response.data;
360
+ }
361
+ catch (error) {
362
+ const code = isGoogleApiError(error) ? error.code : undefined;
363
+ if (code === 404) {
364
+ throw new UserError(`Spreadsheet not found (ID: ${spreadsheetId}). Check the ID.`);
365
+ }
366
+ if (code === 403) {
367
+ throw new UserError(`Permission denied for spreadsheet (ID: ${spreadsheetId}). Ensure you have write access.`);
368
+ }
369
+ if (code === 400) {
370
+ throw new UserError('Cannot delete the last sheet in a spreadsheet. A spreadsheet must have at least one sheet.');
371
+ }
372
+ throw new UserError(`Failed to delete sheet: ${getErrorMessage(error)}`);
373
+ }
374
+ }
375
+ // Note: hexToRgbColor is available from '../types.js' if needed for color conversions
376
+ //# sourceMappingURL=googleSheetsApiHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleSheetsApiHelpers.js","sourceRoot":"","sources":["../src/googleSheetsApiHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":""}
package/dist/server.js ADDED
@@ -0,0 +1,119 @@
1
+ // src/server.ts - Google Workspace MCP Server
2
+ import { FastMCP } from 'fastmcp';
3
+ // Import tool modules
4
+ import { registerDocsTools } from './tools/docs.tools.js';
5
+ import { registerDriveTools } from './tools/drive.tools.js';
6
+ import { registerSheetsTools } from './tools/sheets.tools.js';
7
+ import { registerAccountsTools } from './tools/accounts.tools.js';
8
+ import { registerGmailTools } from './tools/gmail.tools.js';
9
+ import { registerCalendarTools } from './tools/calendar.tools.js';
10
+ import { registerSlidesTools } from './tools/slides.tools.js';
11
+ import { registerFormsTools } from './tools/forms.tools.js';
12
+ // Import multi-account management
13
+ import { initializeAccounts, getAccountClients, getAccountEmail } from './accounts.js';
14
+ // Import server wrapper for read-only mode
15
+ import { createServerWithConfig, getServerConfigFromEnv } from './serverWrapper.js';
16
+ // --- Initialization ---
17
+ let accountsInitialized = false;
18
+ async function ensureAccountsInitialized() {
19
+ if (!accountsInitialized) {
20
+ await initializeAccounts();
21
+ accountsInitialized = true;
22
+ }
23
+ }
24
+ // Set up process-level unhandled error/rejection handlers to prevent crashes
25
+ process.on('uncaughtException', (error) => {
26
+ console.error('Uncaught Exception:', error);
27
+ });
28
+ process.on('unhandledRejection', (reason, _promise) => {
29
+ console.error('Unhandled Promise Rejection:', reason);
30
+ });
31
+ // --- Server Configuration ---
32
+ const serverConfig = getServerConfigFromEnv();
33
+ const baseServer = new FastMCP({
34
+ name: 'Google Workspace MCP Server',
35
+ version: '2.0.0',
36
+ });
37
+ // Wrap server to enforce read-only mode if configured
38
+ const server = createServerWithConfig(baseServer, serverConfig);
39
+ // --- Client Getters for each service ---
40
+ async function getDocsClient(accountName) {
41
+ await ensureAccountsInitialized();
42
+ const clients = await getAccountClients(accountName);
43
+ return clients.docs;
44
+ }
45
+ async function getDriveClient(accountName) {
46
+ await ensureAccountsInitialized();
47
+ const clients = await getAccountClients(accountName);
48
+ return clients.drive;
49
+ }
50
+ async function getSheetsClient(accountName) {
51
+ await ensureAccountsInitialized();
52
+ const clients = await getAccountClients(accountName);
53
+ return clients.sheets;
54
+ }
55
+ async function getGmailClient(accountName) {
56
+ await ensureAccountsInitialized();
57
+ const clients = await getAccountClients(accountName);
58
+ return clients.gmail;
59
+ }
60
+ async function getCalendarClient(accountName) {
61
+ await ensureAccountsInitialized();
62
+ const clients = await getAccountClients(accountName);
63
+ return clients.calendar;
64
+ }
65
+ async function getSlidesClient(accountName) {
66
+ await ensureAccountsInitialized();
67
+ const clients = await getAccountClients(accountName);
68
+ return clients.slides;
69
+ }
70
+ async function getFormsClient(accountName) {
71
+ await ensureAccountsInitialized();
72
+ const clients = await getAccountClients(accountName);
73
+ return clients.forms;
74
+ }
75
+ // ===========================================
76
+ // === REGISTER ALL TOOL MODULES ===
77
+ // ===========================================
78
+ // Register Account management tools
79
+ registerAccountsTools(server, ensureAccountsInitialized);
80
+ // Register Google Docs tools
81
+ registerDocsTools({ server, getDocsClient, getDriveClient, getAccountEmail });
82
+ // Register Google Drive tools
83
+ registerDriveTools({ server, getDriveClient, getDocsClient, getAccountEmail });
84
+ // Register Google Sheets tools
85
+ registerSheetsTools({ server, getSheetsClient, getDriveClient, getAccountEmail });
86
+ // Register Gmail tools
87
+ registerGmailTools({ server, getGmailClient, getAccountEmail });
88
+ // Register Calendar tools
89
+ registerCalendarTools({ server, getCalendarClient, getAccountEmail });
90
+ // Register Slides tools (also needs Drive client for listing)
91
+ registerSlidesTools({ server, getSlidesClient, getDriveClient, getAccountEmail });
92
+ // Register Forms tools (also needs Drive client for listing)
93
+ registerFormsTools({ server, getFormsClient, getDriveClient, getAccountEmail });
94
+ // --- Server Startup ---
95
+ async function startServer() {
96
+ try {
97
+ await ensureAccountsInitialized();
98
+ if (serverConfig.readOnly) {
99
+ console.error('⚠️ Starting Google Workspace MCP server in READ-ONLY mode...');
100
+ console.error(' Write operations are disabled. Use --read-only=false or remove the flag to enable writes.');
101
+ }
102
+ else {
103
+ console.error('Starting Google Workspace MCP server...');
104
+ }
105
+ const configToUse = {
106
+ transportType: 'stdio',
107
+ };
108
+ await server.start(configToUse);
109
+ console.error(`MCP Server running using ${configToUse.transportType}. Awaiting client connection...`);
110
+ console.error('Process-level error handling configured to prevent crashes from timeout errors.');
111
+ }
112
+ catch (startError) {
113
+ const message = startError instanceof Error ? startError.message : String(startError);
114
+ console.error('FATAL: Server failed to start:', message);
115
+ process.exit(1);
116
+ }
117
+ }
118
+ void startServer();
119
+ //# sourceMappingURL=server.js.map