@mcp-z/mcp-sheets 1.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 (363) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/bin/server.js +5 -0
  4. package/dist/cjs/constants.d.cts +7 -0
  5. package/dist/cjs/constants.d.ts +7 -0
  6. package/dist/cjs/constants.js +18 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/index.d.cts +8 -0
  9. package/dist/cjs/index.d.ts +8 -0
  10. package/dist/cjs/index.js +314 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/lib/create-store.d.cts +2 -0
  13. package/dist/cjs/lib/create-store.d.ts +2 -0
  14. package/dist/cjs/lib/create-store.js +166 -0
  15. package/dist/cjs/lib/create-store.js.map +1 -0
  16. package/dist/cjs/mcp/index.d.cts +3 -0
  17. package/dist/cjs/mcp/index.d.ts +3 -0
  18. package/dist/cjs/mcp/index.js +66 -0
  19. package/dist/cjs/mcp/index.js.map +1 -0
  20. package/dist/cjs/mcp/prompts/a1-notation.d.cts +19 -0
  21. package/dist/cjs/mcp/prompts/a1-notation.d.ts +19 -0
  22. package/dist/cjs/mcp/prompts/a1-notation.js +169 -0
  23. package/dist/cjs/mcp/prompts/a1-notation.js.map +1 -0
  24. package/dist/cjs/mcp/prompts/index.d.cts +1 -0
  25. package/dist/cjs/mcp/prompts/index.d.ts +1 -0
  26. package/dist/cjs/mcp/prompts/index.js +17 -0
  27. package/dist/cjs/mcp/prompts/index.js.map +1 -0
  28. package/dist/cjs/mcp/resources/index.d.cts +1 -0
  29. package/dist/cjs/mcp/resources/index.d.ts +1 -0
  30. package/dist/cjs/mcp/resources/index.js +17 -0
  31. package/dist/cjs/mcp/resources/index.js.map +1 -0
  32. package/dist/cjs/mcp/resources/spreadsheet.d.cts +2 -0
  33. package/dist/cjs/mcp/resources/spreadsheet.d.ts +2 -0
  34. package/dist/cjs/mcp/resources/spreadsheet.js +258 -0
  35. package/dist/cjs/mcp/resources/spreadsheet.js.map +1 -0
  36. package/dist/cjs/mcp/tools/cells-format.d.cts +144 -0
  37. package/dist/cjs/mcp/tools/cells-format.d.ts +144 -0
  38. package/dist/cjs/mcp/tools/cells-format.js +484 -0
  39. package/dist/cjs/mcp/tools/cells-format.js.map +1 -0
  40. package/dist/cjs/mcp/tools/chart-create.d.cts +94 -0
  41. package/dist/cjs/mcp/tools/chart-create.d.ts +94 -0
  42. package/dist/cjs/mcp/tools/chart-create.js +575 -0
  43. package/dist/cjs/mcp/tools/chart-create.js.map +1 -0
  44. package/dist/cjs/mcp/tools/columns-get.d.cts +55 -0
  45. package/dist/cjs/mcp/tools/columns-get.d.ts +55 -0
  46. package/dist/cjs/mcp/tools/columns-get.js +289 -0
  47. package/dist/cjs/mcp/tools/columns-get.js.map +1 -0
  48. package/dist/cjs/mcp/tools/columns-update.d.cts +86 -0
  49. package/dist/cjs/mcp/tools/columns-update.d.ts +86 -0
  50. package/dist/cjs/mcp/tools/columns-update.js +482 -0
  51. package/dist/cjs/mcp/tools/columns-update.js.map +1 -0
  52. package/dist/cjs/mcp/tools/csv-get-columns.d.cts +43 -0
  53. package/dist/cjs/mcp/tools/csv-get-columns.d.ts +43 -0
  54. package/dist/cjs/mcp/tools/csv-get-columns.js +386 -0
  55. package/dist/cjs/mcp/tools/csv-get-columns.js.map +1 -0
  56. package/dist/cjs/mcp/tools/dimensions-batch-update.d.cts +118 -0
  57. package/dist/cjs/mcp/tools/dimensions-batch-update.d.ts +118 -0
  58. package/dist/cjs/mcp/tools/dimensions-batch-update.js +504 -0
  59. package/dist/cjs/mcp/tools/dimensions-batch-update.js.map +1 -0
  60. package/dist/cjs/mcp/tools/dimensions-move.d.cts +86 -0
  61. package/dist/cjs/mcp/tools/dimensions-move.d.ts +86 -0
  62. package/dist/cjs/mcp/tools/dimensions-move.js +359 -0
  63. package/dist/cjs/mcp/tools/dimensions-move.js.map +1 -0
  64. package/dist/cjs/mcp/tools/index.d.cts +26 -0
  65. package/dist/cjs/mcp/tools/index.d.ts +26 -0
  66. package/dist/cjs/mcp/tools/index.js +122 -0
  67. package/dist/cjs/mcp/tools/index.js.map +1 -0
  68. package/dist/cjs/mcp/tools/lib/dimension-operations.d.cts +48 -0
  69. package/dist/cjs/mcp/tools/lib/dimension-operations.d.ts +48 -0
  70. package/dist/cjs/mcp/tools/lib/dimension-operations.js +177 -0
  71. package/dist/cjs/mcp/tools/lib/dimension-operations.js.map +1 -0
  72. package/dist/cjs/mcp/tools/rows-append.d.cts +58 -0
  73. package/dist/cjs/mcp/tools/rows-append.d.ts +58 -0
  74. package/dist/cjs/mcp/tools/rows-append.js +335 -0
  75. package/dist/cjs/mcp/tools/rows-append.js.map +1 -0
  76. package/dist/cjs/mcp/tools/rows-csv-append.d.cts +67 -0
  77. package/dist/cjs/mcp/tools/rows-csv-append.d.ts +67 -0
  78. package/dist/cjs/mcp/tools/rows-csv-append.js +859 -0
  79. package/dist/cjs/mcp/tools/rows-csv-append.js.map +1 -0
  80. package/dist/cjs/mcp/tools/rows-get.d.cts +56 -0
  81. package/dist/cjs/mcp/tools/rows-get.d.ts +56 -0
  82. package/dist/cjs/mcp/tools/rows-get.js +292 -0
  83. package/dist/cjs/mcp/tools/rows-get.js.map +1 -0
  84. package/dist/cjs/mcp/tools/sheet-copy-to.d.cts +68 -0
  85. package/dist/cjs/mcp/tools/sheet-copy-to.d.ts +68 -0
  86. package/dist/cjs/mcp/tools/sheet-copy-to.js +341 -0
  87. package/dist/cjs/mcp/tools/sheet-copy-to.js.map +1 -0
  88. package/dist/cjs/mcp/tools/sheet-copy.d.cts +80 -0
  89. package/dist/cjs/mcp/tools/sheet-copy.d.ts +80 -0
  90. package/dist/cjs/mcp/tools/sheet-copy.js +394 -0
  91. package/dist/cjs/mcp/tools/sheet-copy.js.map +1 -0
  92. package/dist/cjs/mcp/tools/sheet-create.d.cts +56 -0
  93. package/dist/cjs/mcp/tools/sheet-create.d.ts +56 -0
  94. package/dist/cjs/mcp/tools/sheet-create.js +283 -0
  95. package/dist/cjs/mcp/tools/sheet-create.js.map +1 -0
  96. package/dist/cjs/mcp/tools/sheet-delete.d.cts +62 -0
  97. package/dist/cjs/mcp/tools/sheet-delete.d.ts +62 -0
  98. package/dist/cjs/mcp/tools/sheet-delete.js +341 -0
  99. package/dist/cjs/mcp/tools/sheet-delete.js.map +1 -0
  100. package/dist/cjs/mcp/tools/sheet-find.d.cts +48 -0
  101. package/dist/cjs/mcp/tools/sheet-find.d.ts +48 -0
  102. package/dist/cjs/mcp/tools/sheet-find.js +261 -0
  103. package/dist/cjs/mcp/tools/sheet-find.js.map +1 -0
  104. package/dist/cjs/mcp/tools/sheet-rename.d.cts +60 -0
  105. package/dist/cjs/mcp/tools/sheet-rename.d.ts +60 -0
  106. package/dist/cjs/mcp/tools/sheet-rename.js +305 -0
  107. package/dist/cjs/mcp/tools/sheet-rename.js.map +1 -0
  108. package/dist/cjs/mcp/tools/spreadsheet-copy.d.cts +58 -0
  109. package/dist/cjs/mcp/tools/spreadsheet-copy.d.ts +58 -0
  110. package/dist/cjs/mcp/tools/spreadsheet-copy.js +319 -0
  111. package/dist/cjs/mcp/tools/spreadsheet-copy.js.map +1 -0
  112. package/dist/cjs/mcp/tools/spreadsheet-create.d.cts +52 -0
  113. package/dist/cjs/mcp/tools/spreadsheet-create.d.ts +52 -0
  114. package/dist/cjs/mcp/tools/spreadsheet-create.js +270 -0
  115. package/dist/cjs/mcp/tools/spreadsheet-create.js.map +1 -0
  116. package/dist/cjs/mcp/tools/spreadsheet-find.d.cts +58 -0
  117. package/dist/cjs/mcp/tools/spreadsheet-find.d.ts +58 -0
  118. package/dist/cjs/mcp/tools/spreadsheet-find.js +334 -0
  119. package/dist/cjs/mcp/tools/spreadsheet-find.js.map +1 -0
  120. package/dist/cjs/mcp/tools/spreadsheet-rename.d.cts +56 -0
  121. package/dist/cjs/mcp/tools/spreadsheet-rename.d.ts +56 -0
  122. package/dist/cjs/mcp/tools/spreadsheet-rename.js +289 -0
  123. package/dist/cjs/mcp/tools/spreadsheet-rename.js.map +1 -0
  124. package/dist/cjs/mcp/tools/validation-set.d.cts +144 -0
  125. package/dist/cjs/mcp/tools/validation-set.d.ts +144 -0
  126. package/dist/cjs/mcp/tools/validation-set.js +564 -0
  127. package/dist/cjs/mcp/tools/validation-set.js.map +1 -0
  128. package/dist/cjs/mcp/tools/values-batch-update.d.cts +102 -0
  129. package/dist/cjs/mcp/tools/values-batch-update.d.ts +102 -0
  130. package/dist/cjs/mcp/tools/values-batch-update.js +409 -0
  131. package/dist/cjs/mcp/tools/values-batch-update.js.map +1 -0
  132. package/dist/cjs/mcp/tools/values-clear.d.cts +56 -0
  133. package/dist/cjs/mcp/tools/values-clear.d.ts +56 -0
  134. package/dist/cjs/mcp/tools/values-clear.js +308 -0
  135. package/dist/cjs/mcp/tools/values-clear.js.map +1 -0
  136. package/dist/cjs/mcp/tools/values-csv-update.d.cts +75 -0
  137. package/dist/cjs/mcp/tools/values-csv-update.d.ts +75 -0
  138. package/dist/cjs/mcp/tools/values-csv-update.js +500 -0
  139. package/dist/cjs/mcp/tools/values-csv-update.js.map +1 -0
  140. package/dist/cjs/mcp/tools/values-replace.d.cts +68 -0
  141. package/dist/cjs/mcp/tools/values-replace.d.ts +68 -0
  142. package/dist/cjs/mcp/tools/values-replace.js +378 -0
  143. package/dist/cjs/mcp/tools/values-replace.js.map +1 -0
  144. package/dist/cjs/mcp/tools/values-search.d.cts +74 -0
  145. package/dist/cjs/mcp/tools/values-search.d.ts +74 -0
  146. package/dist/cjs/mcp/tools/values-search.js +470 -0
  147. package/dist/cjs/mcp/tools/values-search.js.map +1 -0
  148. package/dist/cjs/package.json +1 -0
  149. package/dist/cjs/schemas/index.d.cts +14 -0
  150. package/dist/cjs/schemas/index.d.ts +14 -0
  151. package/dist/cjs/schemas/index.js +64 -0
  152. package/dist/cjs/schemas/index.js.map +1 -0
  153. package/dist/cjs/setup/config.d.cts +44 -0
  154. package/dist/cjs/setup/config.d.ts +44 -0
  155. package/dist/cjs/setup/config.js +201 -0
  156. package/dist/cjs/setup/config.js.map +1 -0
  157. package/dist/cjs/setup/http.d.cts +8 -0
  158. package/dist/cjs/setup/http.d.ts +8 -0
  159. package/dist/cjs/setup/http.js +260 -0
  160. package/dist/cjs/setup/http.js.map +1 -0
  161. package/dist/cjs/setup/index.d.cts +5 -0
  162. package/dist/cjs/setup/index.d.ts +5 -0
  163. package/dist/cjs/setup/index.js +46 -0
  164. package/dist/cjs/setup/index.js.map +1 -0
  165. package/dist/cjs/setup/oauth-google.d.cts +54 -0
  166. package/dist/cjs/setup/oauth-google.d.ts +54 -0
  167. package/dist/cjs/setup/oauth-google.js +332 -0
  168. package/dist/cjs/setup/oauth-google.js.map +1 -0
  169. package/dist/cjs/setup/runtime.d.cts +10 -0
  170. package/dist/cjs/setup/runtime.d.ts +10 -0
  171. package/dist/cjs/setup/runtime.js +353 -0
  172. package/dist/cjs/setup/runtime.js.map +1 -0
  173. package/dist/cjs/setup/stdio.d.cts +7 -0
  174. package/dist/cjs/setup/stdio.d.ts +7 -0
  175. package/dist/cjs/setup/stdio.js +239 -0
  176. package/dist/cjs/setup/stdio.js.map +1 -0
  177. package/dist/cjs/spreadsheet/column-utilities.d.cts +1 -0
  178. package/dist/cjs/spreadsheet/column-utilities.d.ts +1 -0
  179. package/dist/cjs/spreadsheet/column-utilities.js +21 -0
  180. package/dist/cjs/spreadsheet/column-utilities.js.map +1 -0
  181. package/dist/cjs/spreadsheet/csv-streaming.d.cts +19 -0
  182. package/dist/cjs/spreadsheet/csv-streaming.d.ts +19 -0
  183. package/dist/cjs/spreadsheet/csv-streaming.js +188 -0
  184. package/dist/cjs/spreadsheet/csv-streaming.js.map +1 -0
  185. package/dist/cjs/spreadsheet/data-operations.d.cts +115 -0
  186. package/dist/cjs/spreadsheet/data-operations.d.ts +115 -0
  187. package/dist/cjs/spreadsheet/data-operations.js +1515 -0
  188. package/dist/cjs/spreadsheet/data-operations.js.map +1 -0
  189. package/dist/cjs/spreadsheet/deduplication-utils.d.cts +31 -0
  190. package/dist/cjs/spreadsheet/deduplication-utils.d.ts +31 -0
  191. package/dist/cjs/spreadsheet/deduplication-utils.js +65 -0
  192. package/dist/cjs/spreadsheet/deduplication-utils.js.map +1 -0
  193. package/dist/cjs/spreadsheet/range-operations.d.cts +184 -0
  194. package/dist/cjs/spreadsheet/range-operations.d.ts +184 -0
  195. package/dist/cjs/spreadsheet/range-operations.js +672 -0
  196. package/dist/cjs/spreadsheet/range-operations.js.map +1 -0
  197. package/dist/cjs/spreadsheet/sheet-operations.d.cts +30 -0
  198. package/dist/cjs/spreadsheet/sheet-operations.d.ts +30 -0
  199. package/dist/cjs/spreadsheet/sheet-operations.js +811 -0
  200. package/dist/cjs/spreadsheet/sheet-operations.js.map +1 -0
  201. package/dist/cjs/spreadsheet/spreadsheet-management.d.cts +21 -0
  202. package/dist/cjs/spreadsheet/spreadsheet-management.d.ts +21 -0
  203. package/dist/cjs/spreadsheet/spreadsheet-management.js +310 -0
  204. package/dist/cjs/spreadsheet/spreadsheet-management.js.map +1 -0
  205. package/dist/cjs/types.d.cts +53 -0
  206. package/dist/cjs/types.d.ts +53 -0
  207. package/dist/cjs/types.js +5 -0
  208. package/dist/cjs/types.js.map +1 -0
  209. package/dist/esm/constants.d.ts +7 -0
  210. package/dist/esm/constants.js +7 -0
  211. package/dist/esm/constants.js.map +1 -0
  212. package/dist/esm/index.d.ts +8 -0
  213. package/dist/esm/index.js +34 -0
  214. package/dist/esm/index.js.map +1 -0
  215. package/dist/esm/lib/create-store.d.ts +2 -0
  216. package/dist/esm/lib/create-store.js +6 -0
  217. package/dist/esm/lib/create-store.js.map +1 -0
  218. package/dist/esm/mcp/index.d.ts +3 -0
  219. package/dist/esm/mcp/index.js +6 -0
  220. package/dist/esm/mcp/index.js.map +1 -0
  221. package/dist/esm/mcp/prompts/a1-notation.d.ts +19 -0
  222. package/dist/esm/mcp/prompts/a1-notation.js +49 -0
  223. package/dist/esm/mcp/prompts/a1-notation.js.map +1 -0
  224. package/dist/esm/mcp/prompts/index.d.ts +1 -0
  225. package/dist/esm/mcp/prompts/index.js +1 -0
  226. package/dist/esm/mcp/prompts/index.js.map +1 -0
  227. package/dist/esm/mcp/resources/index.d.ts +1 -0
  228. package/dist/esm/mcp/resources/index.js +1 -0
  229. package/dist/esm/mcp/resources/index.js.map +1 -0
  230. package/dist/esm/mcp/resources/spreadsheet.d.ts +2 -0
  231. package/dist/esm/mcp/resources/spreadsheet.js +88 -0
  232. package/dist/esm/mcp/resources/spreadsheet.js.map +1 -0
  233. package/dist/esm/mcp/tools/cells-format.d.ts +144 -0
  234. package/dist/esm/mcp/tools/cells-format.js +288 -0
  235. package/dist/esm/mcp/tools/cells-format.js.map +1 -0
  236. package/dist/esm/mcp/tools/chart-create.d.ts +94 -0
  237. package/dist/esm/mcp/tools/chart-create.js +408 -0
  238. package/dist/esm/mcp/tools/chart-create.js.map +1 -0
  239. package/dist/esm/mcp/tools/columns-get.d.ts +55 -0
  240. package/dist/esm/mcp/tools/columns-get.js +113 -0
  241. package/dist/esm/mcp/tools/columns-get.js.map +1 -0
  242. package/dist/esm/mcp/tools/columns-update.d.ts +86 -0
  243. package/dist/esm/mcp/tools/columns-update.js +296 -0
  244. package/dist/esm/mcp/tools/columns-update.js.map +1 -0
  245. package/dist/esm/mcp/tools/csv-get-columns.d.ts +43 -0
  246. package/dist/esm/mcp/tools/csv-get-columns.js +95 -0
  247. package/dist/esm/mcp/tools/csv-get-columns.js.map +1 -0
  248. package/dist/esm/mcp/tools/dimensions-batch-update.d.ts +118 -0
  249. package/dist/esm/mcp/tools/dimensions-batch-update.js +321 -0
  250. package/dist/esm/mcp/tools/dimensions-batch-update.js.map +1 -0
  251. package/dist/esm/mcp/tools/dimensions-move.d.ts +86 -0
  252. package/dist/esm/mcp/tools/dimensions-move.js +183 -0
  253. package/dist/esm/mcp/tools/dimensions-move.js.map +1 -0
  254. package/dist/esm/mcp/tools/index.d.ts +26 -0
  255. package/dist/esm/mcp/tools/index.js +26 -0
  256. package/dist/esm/mcp/tools/index.js.map +1 -0
  257. package/dist/esm/mcp/tools/lib/dimension-operations.d.ts +48 -0
  258. package/dist/esm/mcp/tools/lib/dimension-operations.js +93 -0
  259. package/dist/esm/mcp/tools/lib/dimension-operations.js.map +1 -0
  260. package/dist/esm/mcp/tools/rows-append.d.ts +58 -0
  261. package/dist/esm/mcp/tools/rows-append.js +151 -0
  262. package/dist/esm/mcp/tools/rows-append.js.map +1 -0
  263. package/dist/esm/mcp/tools/rows-csv-append.d.ts +67 -0
  264. package/dist/esm/mcp/tools/rows-csv-append.js +342 -0
  265. package/dist/esm/mcp/tools/rows-csv-append.js.map +1 -0
  266. package/dist/esm/mcp/tools/rows-get.d.ts +56 -0
  267. package/dist/esm/mcp/tools/rows-get.js +116 -0
  268. package/dist/esm/mcp/tools/rows-get.js.map +1 -0
  269. package/dist/esm/mcp/tools/sheet-copy-to.d.ts +68 -0
  270. package/dist/esm/mcp/tools/sheet-copy-to.js +156 -0
  271. package/dist/esm/mcp/tools/sheet-copy-to.js.map +1 -0
  272. package/dist/esm/mcp/tools/sheet-copy.d.ts +80 -0
  273. package/dist/esm/mcp/tools/sheet-copy.js +177 -0
  274. package/dist/esm/mcp/tools/sheet-copy.js.map +1 -0
  275. package/dist/esm/mcp/tools/sheet-create.d.ts +56 -0
  276. package/dist/esm/mcp/tools/sheet-create.js +110 -0
  277. package/dist/esm/mcp/tools/sheet-create.js.map +1 -0
  278. package/dist/esm/mcp/tools/sheet-delete.d.ts +62 -0
  279. package/dist/esm/mcp/tools/sheet-delete.js +125 -0
  280. package/dist/esm/mcp/tools/sheet-delete.js.map +1 -0
  281. package/dist/esm/mcp/tools/sheet-find.d.ts +48 -0
  282. package/dist/esm/mcp/tools/sheet-find.js +90 -0
  283. package/dist/esm/mcp/tools/sheet-find.js.map +1 -0
  284. package/dist/esm/mcp/tools/sheet-rename.d.ts +60 -0
  285. package/dist/esm/mcp/tools/sheet-rename.js +128 -0
  286. package/dist/esm/mcp/tools/sheet-rename.js.map +1 -0
  287. package/dist/esm/mcp/tools/spreadsheet-copy.d.ts +58 -0
  288. package/dist/esm/mcp/tools/spreadsheet-copy.js +117 -0
  289. package/dist/esm/mcp/tools/spreadsheet-copy.js.map +1 -0
  290. package/dist/esm/mcp/tools/spreadsheet-create.d.ts +52 -0
  291. package/dist/esm/mcp/tools/spreadsheet-create.js +97 -0
  292. package/dist/esm/mcp/tools/spreadsheet-create.js.map +1 -0
  293. package/dist/esm/mcp/tools/spreadsheet-find.d.ts +58 -0
  294. package/dist/esm/mcp/tools/spreadsheet-find.js +113 -0
  295. package/dist/esm/mcp/tools/spreadsheet-find.js.map +1 -0
  296. package/dist/esm/mcp/tools/spreadsheet-rename.d.ts +56 -0
  297. package/dist/esm/mcp/tools/spreadsheet-rename.js +112 -0
  298. package/dist/esm/mcp/tools/spreadsheet-rename.js.map +1 -0
  299. package/dist/esm/mcp/tools/validation-set.d.ts +144 -0
  300. package/dist/esm/mcp/tools/validation-set.js +366 -0
  301. package/dist/esm/mcp/tools/validation-set.js.map +1 -0
  302. package/dist/esm/mcp/tools/values-batch-update.d.ts +102 -0
  303. package/dist/esm/mcp/tools/values-batch-update.js +224 -0
  304. package/dist/esm/mcp/tools/values-batch-update.js.map +1 -0
  305. package/dist/esm/mcp/tools/values-clear.d.ts +56 -0
  306. package/dist/esm/mcp/tools/values-clear.js +131 -0
  307. package/dist/esm/mcp/tools/values-clear.js.map +1 -0
  308. package/dist/esm/mcp/tools/values-csv-update.d.ts +75 -0
  309. package/dist/esm/mcp/tools/values-csv-update.js +202 -0
  310. package/dist/esm/mcp/tools/values-csv-update.js.map +1 -0
  311. package/dist/esm/mcp/tools/values-replace.d.ts +68 -0
  312. package/dist/esm/mcp/tools/values-replace.js +171 -0
  313. package/dist/esm/mcp/tools/values-replace.js.map +1 -0
  314. package/dist/esm/mcp/tools/values-search.d.ts +74 -0
  315. package/dist/esm/mcp/tools/values-search.js +229 -0
  316. package/dist/esm/mcp/tools/values-search.js.map +1 -0
  317. package/dist/esm/package.json +1 -0
  318. package/dist/esm/schemas/index.d.ts +14 -0
  319. package/dist/esm/schemas/index.js +35 -0
  320. package/dist/esm/schemas/index.js.map +1 -0
  321. package/dist/esm/setup/config.d.ts +44 -0
  322. package/dist/esm/setup/config.js +151 -0
  323. package/dist/esm/setup/config.js.map +1 -0
  324. package/dist/esm/setup/http.d.ts +8 -0
  325. package/dist/esm/setup/http.js +54 -0
  326. package/dist/esm/setup/http.js.map +1 -0
  327. package/dist/esm/setup/index.d.ts +5 -0
  328. package/dist/esm/setup/index.js +5 -0
  329. package/dist/esm/setup/index.js.map +1 -0
  330. package/dist/esm/setup/oauth-google.d.ts +54 -0
  331. package/dist/esm/setup/oauth-google.js +142 -0
  332. package/dist/esm/setup/oauth-google.js.map +1 -0
  333. package/dist/esm/setup/runtime.d.ts +10 -0
  334. package/dist/esm/setup/runtime.js +84 -0
  335. package/dist/esm/setup/runtime.js.map +1 -0
  336. package/dist/esm/setup/stdio.d.ts +7 -0
  337. package/dist/esm/setup/stdio.js +38 -0
  338. package/dist/esm/setup/stdio.js.map +1 -0
  339. package/dist/esm/spreadsheet/column-utilities.d.ts +1 -0
  340. package/dist/esm/spreadsheet/column-utilities.js +10 -0
  341. package/dist/esm/spreadsheet/column-utilities.js.map +1 -0
  342. package/dist/esm/spreadsheet/csv-streaming.d.ts +19 -0
  343. package/dist/esm/spreadsheet/csv-streaming.js +43 -0
  344. package/dist/esm/spreadsheet/csv-streaming.js.map +1 -0
  345. package/dist/esm/spreadsheet/data-operations.d.ts +115 -0
  346. package/dist/esm/spreadsheet/data-operations.js +712 -0
  347. package/dist/esm/spreadsheet/data-operations.js.map +1 -0
  348. package/dist/esm/spreadsheet/deduplication-utils.d.ts +31 -0
  349. package/dist/esm/spreadsheet/deduplication-utils.js +54 -0
  350. package/dist/esm/spreadsheet/deduplication-utils.js.map +1 -0
  351. package/dist/esm/spreadsheet/range-operations.d.ts +184 -0
  352. package/dist/esm/spreadsheet/range-operations.js +591 -0
  353. package/dist/esm/spreadsheet/range-operations.js.map +1 -0
  354. package/dist/esm/spreadsheet/sheet-operations.d.ts +30 -0
  355. package/dist/esm/spreadsheet/sheet-operations.js +359 -0
  356. package/dist/esm/spreadsheet/sheet-operations.js.map +1 -0
  357. package/dist/esm/spreadsheet/spreadsheet-management.d.ts +21 -0
  358. package/dist/esm/spreadsheet/spreadsheet-management.js +73 -0
  359. package/dist/esm/spreadsheet/spreadsheet-management.js.map +1 -0
  360. package/dist/esm/types.d.ts +53 -0
  361. package/dist/esm/types.js +1 -0
  362. package/dist/esm/types.js.map +1 -0
  363. package/package.json +108 -0
@@ -0,0 +1,19 @@
1
+ /** Streaming CSV parsing utilities for memory-efficient large file processing */
2
+ import { Readable } from 'stream';
3
+ /**
4
+ * Get readable stream from CSV URI
5
+ *
6
+ * Memory efficiency:
7
+ * - file:// URIs stream directly from disk
8
+ * - http:// URIs stream directly from response (no temp files!)
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const readStream = await getCsvReadStream(csvUri);
13
+ * const parser = readStream.pipe(parse({ columns: true }));
14
+ * for await (const record of parser) {
15
+ * // Process record
16
+ * }
17
+ * ```
18
+ */
19
+ export declare function getCsvReadStream(csvUri: string): Promise<Readable>;
@@ -0,0 +1,19 @@
1
+ /** Streaming CSV parsing utilities for memory-efficient large file processing */
2
+ import { Readable } from 'stream';
3
+ /**
4
+ * Get readable stream from CSV URI
5
+ *
6
+ * Memory efficiency:
7
+ * - file:// URIs stream directly from disk
8
+ * - http:// URIs stream directly from response (no temp files!)
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const readStream = await getCsvReadStream(csvUri);
13
+ * const parser = readStream.pipe(parse({ columns: true }));
14
+ * for await (const record of parser) {
15
+ * // Process record
16
+ * }
17
+ * ```
18
+ */
19
+ export declare function getCsvReadStream(csvUri: string): Promise<Readable>;
@@ -0,0 +1,188 @@
1
+ /** Streaming CSV parsing utilities for memory-efficient large file processing */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getCsvReadStream", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getCsvReadStream;
9
+ }
10
+ });
11
+ var _fs = require("fs");
12
+ var _path = require("path");
13
+ var _stream = require("stream");
14
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
15
+ try {
16
+ var info = gen[key](arg);
17
+ var value = info.value;
18
+ } catch (error) {
19
+ reject(error);
20
+ return;
21
+ }
22
+ if (info.done) {
23
+ resolve(value);
24
+ } else {
25
+ Promise.resolve(value).then(_next, _throw);
26
+ }
27
+ }
28
+ function _async_to_generator(fn) {
29
+ return function() {
30
+ var self = this, args = arguments;
31
+ return new Promise(function(resolve, reject) {
32
+ var gen = fn.apply(self, args);
33
+ function _next(value) {
34
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
35
+ }
36
+ function _throw(err) {
37
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
38
+ }
39
+ _next(undefined);
40
+ });
41
+ };
42
+ }
43
+ function _ts_generator(thisArg, body) {
44
+ var f, y, t, _ = {
45
+ label: 0,
46
+ sent: function() {
47
+ if (t[0] & 1) throw t[1];
48
+ return t[1];
49
+ },
50
+ trys: [],
51
+ ops: []
52
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
53
+ return d(g, "next", {
54
+ value: verb(0)
55
+ }), d(g, "throw", {
56
+ value: verb(1)
57
+ }), d(g, "return", {
58
+ value: verb(2)
59
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
60
+ value: function() {
61
+ return this;
62
+ }
63
+ }), g;
64
+ function verb(n) {
65
+ return function(v) {
66
+ return step([
67
+ n,
68
+ v
69
+ ]);
70
+ };
71
+ }
72
+ function step(op) {
73
+ if (f) throw new TypeError("Generator is already executing.");
74
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
75
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
76
+ if (y = 0, t) op = [
77
+ op[0] & 2,
78
+ t.value
79
+ ];
80
+ switch(op[0]){
81
+ case 0:
82
+ case 1:
83
+ t = op;
84
+ break;
85
+ case 4:
86
+ _.label++;
87
+ return {
88
+ value: op[1],
89
+ done: false
90
+ };
91
+ case 5:
92
+ _.label++;
93
+ y = op[1];
94
+ op = [
95
+ 0
96
+ ];
97
+ continue;
98
+ case 7:
99
+ op = _.ops.pop();
100
+ _.trys.pop();
101
+ continue;
102
+ default:
103
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
104
+ _ = 0;
105
+ continue;
106
+ }
107
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
108
+ _.label = op[1];
109
+ break;
110
+ }
111
+ if (op[0] === 6 && _.label < t[1]) {
112
+ _.label = t[1];
113
+ t = op;
114
+ break;
115
+ }
116
+ if (t && _.label < t[2]) {
117
+ _.label = t[2];
118
+ _.ops.push(op);
119
+ break;
120
+ }
121
+ if (t[2]) _.ops.pop();
122
+ _.trys.pop();
123
+ continue;
124
+ }
125
+ op = body.call(thisArg, _);
126
+ } catch (e) {
127
+ op = [
128
+ 6,
129
+ e
130
+ ];
131
+ y = 0;
132
+ } finally{
133
+ f = t = 0;
134
+ }
135
+ if (op[0] & 5) throw op[1];
136
+ return {
137
+ value: op[0] ? op[1] : void 0,
138
+ done: true
139
+ };
140
+ }
141
+ }
142
+ function getCsvReadStream(csvUri) {
143
+ return _async_to_generator(function() {
144
+ var filePath, resolvedPath, response;
145
+ return _ts_generator(this, function(_state) {
146
+ switch(_state.label){
147
+ case 0:
148
+ if (csvUri.startsWith('file://')) {
149
+ // Local file - stream directly from disk
150
+ filePath = csvUri.replace('file://', '');
151
+ resolvedPath = (0, _path.resolve)(filePath);
152
+ return [
153
+ 2,
154
+ (0, _fs.createReadStream)(resolvedPath, {
155
+ encoding: 'utf-8'
156
+ })
157
+ ];
158
+ }
159
+ if (!(csvUri.startsWith('http://') || csvUri.startsWith('https://'))) return [
160
+ 3,
161
+ 2
162
+ ];
163
+ return [
164
+ 4,
165
+ fetch(csvUri)
166
+ ];
167
+ case 1:
168
+ response = _state.sent();
169
+ if (!response.ok) {
170
+ throw new Error("Failed to fetch CSV from ".concat(csvUri, ": ").concat(response.statusText));
171
+ }
172
+ if (!response.body) {
173
+ throw new Error("No response body from ".concat(csvUri));
174
+ }
175
+ // Convert web stream to Node.js stream
176
+ // response.body is ReadableStream<Uint8Array> from fetch API
177
+ // Cast to Node.js ReadableStream type for compatibility with Readable.fromWeb
178
+ return [
179
+ 2,
180
+ _stream.Readable.fromWeb(response.body)
181
+ ];
182
+ case 2:
183
+ throw new Error("Invalid CSV URI: ".concat(csvUri, ". Must start with file://, http://, or https://"));
184
+ }
185
+ });
186
+ })();
187
+ }
188
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-sheets/src/spreadsheet/csv-streaming.ts"],"sourcesContent":["/** Streaming CSV parsing utilities for memory-efficient large file processing */\n\nimport { createReadStream } from 'fs';\nimport { resolve } from 'path';\nimport { Readable } from 'stream';\nimport type { ReadableStream as NodeReadableStream } from 'stream/web';\n\n/**\n * Get readable stream from CSV URI\n *\n * Memory efficiency:\n * - file:// URIs stream directly from disk\n * - http:// URIs stream directly from response (no temp files!)\n *\n * @example\n * ```ts\n * const readStream = await getCsvReadStream(csvUri);\n * const parser = readStream.pipe(parse({ columns: true }));\n * for await (const record of parser) {\n * // Process record\n * }\n * ```\n */\nexport async function getCsvReadStream(csvUri: string): Promise<Readable> {\n if (csvUri.startsWith('file://')) {\n // Local file - stream directly from disk\n const filePath = csvUri.replace('file://', '');\n const resolvedPath = resolve(filePath);\n return createReadStream(resolvedPath, { encoding: 'utf-8' });\n }\n\n if (csvUri.startsWith('http://') || csvUri.startsWith('https://')) {\n // Remote file - stream directly from fetch response\n const response = await fetch(csvUri);\n if (!response.ok) {\n throw new Error(`Failed to fetch CSV from ${csvUri}: ${response.statusText}`);\n }\n\n if (!response.body) {\n throw new Error(`No response body from ${csvUri}`);\n }\n\n // Convert web stream to Node.js stream\n // response.body is ReadableStream<Uint8Array> from fetch API\n // Cast to Node.js ReadableStream type for compatibility with Readable.fromWeb\n return Readable.fromWeb(response.body as unknown as NodeReadableStream<Uint8Array>);\n }\n\n throw new Error(`Invalid CSV URI: ${csvUri}. Must start with file://, http://, or https://`);\n}\n"],"names":["getCsvReadStream","csvUri","filePath","resolvedPath","response","startsWith","replace","resolve","createReadStream","encoding","fetch","ok","Error","statusText","body","Readable","fromWeb"],"mappings":"AAAA,+EAA+E;;;;+BAuBzDA;;;eAAAA;;;kBArBW;oBACT;sBACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBlB,SAAeA,iBAAiBC,MAAc;;YAG3CC,UACAC,cAMAC;;;;oBATR,IAAIH,OAAOI,UAAU,CAAC,YAAY;wBAChC,yCAAyC;wBACnCH,WAAWD,OAAOK,OAAO,CAAC,WAAW;wBACrCH,eAAeI,IAAAA,aAAO,EAACL;wBAC7B;;4BAAOM,IAAAA,oBAAgB,EAACL,cAAc;gCAAEM,UAAU;4BAAQ;;oBAC5D;yBAEIR,CAAAA,OAAOI,UAAU,CAAC,cAAcJ,OAAOI,UAAU,CAAC,WAAU,GAA5DJ;;;;oBAEe;;wBAAMS,MAAMT;;;oBAAvBG,WAAW;oBACjB,IAAI,CAACA,SAASO,EAAE,EAAE;wBAChB,MAAM,IAAIC,MAAM,AAAC,4BAAsCR,OAAXH,QAAO,MAAwB,OAApBG,SAASS,UAAU;oBAC5E;oBAEA,IAAI,CAACT,SAASU,IAAI,EAAE;wBAClB,MAAM,IAAIF,MAAM,AAAC,yBAA+B,OAAPX;oBAC3C;oBAEA,uCAAuC;oBACvC,6DAA6D;oBAC7D,8EAA8E;oBAC9E;;wBAAOc,gBAAQ,CAACC,OAAO,CAACZ,SAASU,IAAI;;;oBAGvC,MAAM,IAAIF,MAAM,AAAC,oBAA0B,OAAPX,QAAO;;;IAC7C"}
@@ -0,0 +1,115 @@
1
+ import type { sheets_v4 } from 'googleapis';
2
+ import type { Logger } from '../types.js';
3
+ export type Cell = string | number | boolean | null | undefined;
4
+ export type Row = Cell[];
5
+ export interface ColumnMapping {
6
+ canonical: string;
7
+ sheet: string;
8
+ index: number;
9
+ }
10
+ export interface HeaderValidationResult {
11
+ valid: boolean;
12
+ missingColumns: string[];
13
+ extraColumns: string[];
14
+ mappings: ColumnMapping[];
15
+ }
16
+ export interface KeyGenerationStrategy {
17
+ keyColumns: string[];
18
+ useProviderIdLogic: boolean;
19
+ separator?: string;
20
+ }
21
+ export interface DataPartition {
22
+ toAppend: Row[];
23
+ toUpdate: Array<{
24
+ row: Row;
25
+ existingRowIndex: number;
26
+ }>;
27
+ skippedKeys: string[];
28
+ }
29
+ export interface BatchOperationResult {
30
+ updatedRows: number;
31
+ inserted: string[];
32
+ rowsSkipped: number;
33
+ errors?: string[];
34
+ }
35
+ export interface UpsertOptions {
36
+ keyStrategy: KeyGenerationStrategy;
37
+ allowUpdates: boolean;
38
+ batchSize?: number;
39
+ valueInputOption?: 'RAW' | 'USER_ENTERED';
40
+ }
41
+ export declare function discoverHeader(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string): Promise<string[]>;
42
+ export declare function validateAndMapHeaders(sheetHeaders: string[], canonicalHeaders: string[], requiredColumns?: string[]): HeaderValidationResult;
43
+ /** Ensures consistent key generation across all functions */
44
+ export declare function generateRowKey(row: Row, header: string[], strategy: KeyGenerationStrategy): string;
45
+ export declare function validateRowKeys(rows: Row[], header: string[], strategy: KeyGenerationStrategy): {
46
+ valid: boolean;
47
+ duplicateKeys: string[];
48
+ keyMap: Map<string, number[]>;
49
+ };
50
+ export declare function appendRows(sheets: sheets_v4.Sheets, params: {
51
+ spreadsheetId: string;
52
+ sheetTitle: string;
53
+ rows?: unknown[];
54
+ keySet?: Set<string> | null;
55
+ keyColumns?: string[];
56
+ header?: string[];
57
+ logger: Logger;
58
+ }): Promise<{
59
+ updatedRows: number;
60
+ inserted: string[];
61
+ rowsSkipped?: number;
62
+ }>;
63
+ export declare function appendRows(sheets: sheets_v4.Sheets, params: {
64
+ spreadsheetId: string;
65
+ sheetRef: string;
66
+ rows?: unknown[];
67
+ keySet?: Set<string> | null;
68
+ keyColumns?: string[];
69
+ header?: string[];
70
+ logger: Logger;
71
+ }): Promise<{
72
+ updatedRows: number;
73
+ inserted: string[];
74
+ rowsSkipped?: number;
75
+ }>;
76
+ export declare function mapRowsToHeader({ rows, header, canonical }: {
77
+ rows?: Row[];
78
+ header?: string[];
79
+ canonical?: string[];
80
+ }): Row[];
81
+ export declare function snapshotHeaderAndKeys(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string, keyColumns?: string[], keyStrategy?: Partial<KeyGenerationStrategy>): Promise<{
82
+ header: string[];
83
+ keySet: Set<string>;
84
+ keyIndices: number[];
85
+ }>;
86
+ /** Tracks row positions for updates in addition to keys */
87
+ export declare function snapshotHeaderKeysAndPositions(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string, keyColumns?: string[], keyStrategy?: Partial<KeyGenerationStrategy>): Promise<{
88
+ header: string[];
89
+ keySet: Set<string>;
90
+ keyToRowMap: Map<string, number>;
91
+ keyIndices: number[];
92
+ }>;
93
+ /**
94
+ * Partitions data into updates vs appends based on existing keys with row position tracking
95
+ */
96
+ export declare function partitionDataForUpsert(rows: Row[], header: string[], keyStrategy: KeyGenerationStrategy, existingKeys: Set<string>, allowUpdates?: boolean, keyToRowMap?: Map<string, number>): DataPartition;
97
+ /**
98
+ * Performs batch updates on existing rows using batchUpdate API
99
+ */
100
+ export declare function performBatchUpdates(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string, updates: Array<{
101
+ row: Row;
102
+ existingRowIndex: number;
103
+ }>, header: string[], batchSize: number, valueInputOption: 'RAW' | 'USER_ENTERED'): Promise<{
104
+ updatedRows: number;
105
+ errors?: string[];
106
+ }>;
107
+ export declare function upsertByKey(sheets: sheets_v4.Sheets, { spreadsheetId, sheetTitle, sheetRef, rows, canonicalHeaders, options, logger, }: {
108
+ spreadsheetId: string;
109
+ sheetTitle?: string;
110
+ sheetRef?: string;
111
+ rows: Row[];
112
+ canonicalHeaders?: string[];
113
+ options: UpsertOptions;
114
+ logger: Logger;
115
+ }): Promise<BatchOperationResult>;
@@ -0,0 +1,115 @@
1
+ import type { sheets_v4 } from 'googleapis';
2
+ import type { Logger } from '../types.js';
3
+ export type Cell = string | number | boolean | null | undefined;
4
+ export type Row = Cell[];
5
+ export interface ColumnMapping {
6
+ canonical: string;
7
+ sheet: string;
8
+ index: number;
9
+ }
10
+ export interface HeaderValidationResult {
11
+ valid: boolean;
12
+ missingColumns: string[];
13
+ extraColumns: string[];
14
+ mappings: ColumnMapping[];
15
+ }
16
+ export interface KeyGenerationStrategy {
17
+ keyColumns: string[];
18
+ useProviderIdLogic: boolean;
19
+ separator?: string;
20
+ }
21
+ export interface DataPartition {
22
+ toAppend: Row[];
23
+ toUpdate: Array<{
24
+ row: Row;
25
+ existingRowIndex: number;
26
+ }>;
27
+ skippedKeys: string[];
28
+ }
29
+ export interface BatchOperationResult {
30
+ updatedRows: number;
31
+ inserted: string[];
32
+ rowsSkipped: number;
33
+ errors?: string[];
34
+ }
35
+ export interface UpsertOptions {
36
+ keyStrategy: KeyGenerationStrategy;
37
+ allowUpdates: boolean;
38
+ batchSize?: number;
39
+ valueInputOption?: 'RAW' | 'USER_ENTERED';
40
+ }
41
+ export declare function discoverHeader(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string): Promise<string[]>;
42
+ export declare function validateAndMapHeaders(sheetHeaders: string[], canonicalHeaders: string[], requiredColumns?: string[]): HeaderValidationResult;
43
+ /** Ensures consistent key generation across all functions */
44
+ export declare function generateRowKey(row: Row, header: string[], strategy: KeyGenerationStrategy): string;
45
+ export declare function validateRowKeys(rows: Row[], header: string[], strategy: KeyGenerationStrategy): {
46
+ valid: boolean;
47
+ duplicateKeys: string[];
48
+ keyMap: Map<string, number[]>;
49
+ };
50
+ export declare function appendRows(sheets: sheets_v4.Sheets, params: {
51
+ spreadsheetId: string;
52
+ sheetTitle: string;
53
+ rows?: unknown[];
54
+ keySet?: Set<string> | null;
55
+ keyColumns?: string[];
56
+ header?: string[];
57
+ logger: Logger;
58
+ }): Promise<{
59
+ updatedRows: number;
60
+ inserted: string[];
61
+ rowsSkipped?: number;
62
+ }>;
63
+ export declare function appendRows(sheets: sheets_v4.Sheets, params: {
64
+ spreadsheetId: string;
65
+ sheetRef: string;
66
+ rows?: unknown[];
67
+ keySet?: Set<string> | null;
68
+ keyColumns?: string[];
69
+ header?: string[];
70
+ logger: Logger;
71
+ }): Promise<{
72
+ updatedRows: number;
73
+ inserted: string[];
74
+ rowsSkipped?: number;
75
+ }>;
76
+ export declare function mapRowsToHeader({ rows, header, canonical }: {
77
+ rows?: Row[];
78
+ header?: string[];
79
+ canonical?: string[];
80
+ }): Row[];
81
+ export declare function snapshotHeaderAndKeys(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string, keyColumns?: string[], keyStrategy?: Partial<KeyGenerationStrategy>): Promise<{
82
+ header: string[];
83
+ keySet: Set<string>;
84
+ keyIndices: number[];
85
+ }>;
86
+ /** Tracks row positions for updates in addition to keys */
87
+ export declare function snapshotHeaderKeysAndPositions(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string, keyColumns?: string[], keyStrategy?: Partial<KeyGenerationStrategy>): Promise<{
88
+ header: string[];
89
+ keySet: Set<string>;
90
+ keyToRowMap: Map<string, number>;
91
+ keyIndices: number[];
92
+ }>;
93
+ /**
94
+ * Partitions data into updates vs appends based on existing keys with row position tracking
95
+ */
96
+ export declare function partitionDataForUpsert(rows: Row[], header: string[], keyStrategy: KeyGenerationStrategy, existingKeys: Set<string>, allowUpdates?: boolean, keyToRowMap?: Map<string, number>): DataPartition;
97
+ /**
98
+ * Performs batch updates on existing rows using batchUpdate API
99
+ */
100
+ export declare function performBatchUpdates(sheets: sheets_v4.Sheets, spreadsheetId: string, sheetTitle: string, updates: Array<{
101
+ row: Row;
102
+ existingRowIndex: number;
103
+ }>, header: string[], batchSize: number, valueInputOption: 'RAW' | 'USER_ENTERED'): Promise<{
104
+ updatedRows: number;
105
+ errors?: string[];
106
+ }>;
107
+ export declare function upsertByKey(sheets: sheets_v4.Sheets, { spreadsheetId, sheetTitle, sheetRef, rows, canonicalHeaders, options, logger, }: {
108
+ spreadsheetId: string;
109
+ sheetTitle?: string;
110
+ sheetRef?: string;
111
+ rows: Row[];
112
+ canonicalHeaders?: string[];
113
+ options: UpsertOptions;
114
+ logger: Logger;
115
+ }): Promise<BatchOperationResult>;