@sheetxl/mcp 0.8.0-beta.18 → 0.8.0-beta.20
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.
- package/assets/{o9G5KuG1VkSazTvI.js → -qQT-DFFz0CqGx5C.js} +373 -373
- package/assets/{CNE-erNKNIT7bUb1.js → 4Qlx8FuxoYbVTgNW.js} +27 -27
- package/assets/{yBFl0kPv-nwFtG4Z.js → 4Za9gEGCvms62R7k.js} +1 -1
- package/assets/{D0-I0aLr6w8IvxFD.js → 8FzS1bgbz4U1QE_m.js} +1 -1
- package/assets/{10d0ZbYF23zeF8_1.js → 93ksqLKL1o40anfw.js} +1 -1
- package/assets/{BV11qLZKVWxFwVGV.js → B-7inN76S1zUWSAt.js} +1 -1
- package/assets/{DjoFujVwGRAxviCF.js → B4ii9PGvnlYkSX2q.js} +2 -2
- package/assets/{Bi8ct8GYvMDKHCE3.js → B5UmlawoCVwHHM_e.js} +5 -5
- package/assets/{D5nleqRNvTcmN5_9.js → B5yaBbFj2Np9Eh8b.js} +1 -1
- package/assets/{F0HGXXl9AizCAcFy.js → B6J8XN1FRN00a_ps.js} +1 -1
- package/assets/{DY1x1ZN7ZyE4OR1-.js → BBm3Xjnehvx2fYj8.js} +8 -8
- package/assets/{CiKd3BnRjhac2Hik.js → BEq2PSZQN7VV19RQ.js} +1 -1
- package/assets/{wZ-GQhOhikv-_3iQ.js → BGQ1GrnQ-X16GU8k.js} +2 -2
- package/assets/{BrwNVveK5LvYkoGk.js → BGlx7_eRiv47Hu9C.js} +1 -1
- package/assets/{BEtUOCupmeICfGE1.js → BHiZ3GtGCWUWwHqY.js} +3 -3
- package/assets/{BOdkvYo03yZ96iZt.js → BItblzoSm0lN3bTV.js} +1 -1
- package/assets/{pg7E7B7ouG2qdZve.js → BJYl-kvBtcnMVP8W.js} +1 -1
- package/assets/{hvCnPO_Fu7Nqz0rs.js → BKc7zTK6ZIhcD_Wu.js} +1 -1
- package/assets/{DmCRCUmmkoRNCS9J.js → BMH_wtFTiRj43c69.js} +2 -2
- package/assets/{CL4BYdfIXgFQA8nY.js → BVdH9-49M3APSiPy.js} +1 -1
- package/assets/{BsYVa-oRhTLH6wnH.js → BYYbglFmasE5PrS2.js} +1 -1
- package/assets/{BgGFX6QJ30T3seyX.js → Bg8EN9R3hbeNfFyU.js} +103 -103
- package/assets/{BRQd_GNkeaBTl3Zr.js → BghxJxTwaebNVcIS.js} +1 -1
- package/assets/{CnLLwj7OCz4U71wa.js → BieAybaOdneMdvBS.js} +1 -1
- package/assets/{Ct8BhGWuqN5yOpUF.js → BkhWR4P1Evw_VP5z.js} +1 -1
- package/assets/BmmIukrNOivfENgD.js +199 -0
- package/assets/{DbwDQlhCuGoasVUz.js → Bndiqwoh132Upow1.js} +2 -2
- package/assets/{CLBxNjtPjuGX1KnU.js → Bp9zuG6P6r9GEb6G.js} +1 -1
- package/assets/{Bz5ioWvl-Xl3xspC.js → C0MAjW1vgsw6o0fx.js} +1 -1
- package/assets/{CcB4xmoUFWBbSISF.js → C3BZQ5NFwAU_ZdeQ.js} +1 -1
- package/assets/{hLMlKg3lU36xZ6G6.js → C46dyA4YSP1-iTSN.js} +1 -1
- package/assets/{CkO0JR629W2kcDMd.js → C7oUg84aGjYrJUc6.js} +2 -2
- package/assets/{DmUCKxOYIBM6DX64.js → C9JUgNS6CrdgIcW3.js} +1 -1
- package/assets/{CGGpkGg85FZsnYHc.js → C9aV1SF8uCWIB4zU.js} +15 -15
- package/assets/{B2C5njsdPylyQOCM.js → C9eaFlFi_4GmymzP.js} +40 -40
- package/assets/{VcmpHRbBIrw6av3U.js → C9w-KoMwxvouC73F.js} +148 -148
- package/assets/{Bi4pI6e3AwTjn-lQ.js → C9wXzrhl0dwqZgJ6.js} +1 -1
- package/assets/CCl8x9s8Bujsew7W.js +14 -0
- package/assets/{nnqtgWxMIc_Nc-IP.js → CDmri0gcZxpVZfWn.js} +446 -445
- package/assets/{CPkGFumcwSKh5zea.js → CDvP9QyhDwdm3MZn.js} +2 -2
- package/assets/{Byd5zSRU6LWfL2No.js → CLFe9HgUi_83dE3d.js} +1 -1
- package/assets/{CzoexWLhnn08u05j.js → CTGfmocA1WgM0_e0.js} +718 -721
- package/assets/{CYUerpa6WB0Hc3fs.js → CUJiePMri5kkpdA7.js} +1 -1
- package/assets/{BxizypreLEtLqpIc.js → CW2Ca6tsd0aLTz88.js} +1 -1
- package/assets/{EDEUvF-L72a6fMCK.js → CaI562iJKKOoMw8p.js} +1 -1
- package/assets/{D2sRTakzE5POMnhF.js → CaOEaghQqXiA1ZzO.js} +122 -122
- package/assets/{CPa4og3WQ7BgHrsO.js → CbTKUrroY9PQ6eTu.js} +28 -28
- package/assets/{DP-FzazhSKAvylUa.js → CgIHqG1qp9n1Gwm7.js} +285 -285
- package/assets/{VL-vwx7Pyw1zqIx9.js → Cheq-qaVWm7EaIlQ.js} +1 -1
- package/assets/{D49iRcrfnODORRNC.js → Cirpx81bWi4G2foA.js} +11 -11
- package/assets/{B74Ls4nlmyBxWanf.js → Cm2WENwEZ0KMyF--.js} +2 -2
- package/assets/{Cv8UXBL7O7h1uMR8.js → CoOIn2wx6je_rMDO.js} +34 -34
- package/assets/{CT6kRDlkfvKq8XGZ.js → Co_ZOyp4mKmSfh0A.js} +1 -1
- package/assets/{Rpi4k7hMH8wPAIcB.js → CpLTCQemd_cJ4yFu.js} +1663 -1663
- package/assets/{Iv_Zbm3pMLOK2uxf.js → CpfpXfCqzZumY4pf.js} +1 -1
- package/assets/{r9WSFw3a-_a5hlPm.js → CrRJqUPbvvhnp4p4.js} +3 -7
- package/assets/{DI_SAQ7hesioI9TW.js → CrULZhDt8uE-MR2s.js} +1 -1
- package/assets/{CDqOifqA400y7KQY.js → CyOyY32LLW-Pj_L7.js} +1 -1
- package/assets/{gAg9rL3U8fWUDeEb.js → CyYbUk6pGr3NIBsy.js} +51 -51
- package/assets/{Dh2iae-q0IngEeyH.js → D--emvI048MvLsXl.js} +1 -1
- package/assets/{DMnhlFBJ2AlVx2_t.js → D4lMEKXi13vhDJbE.js} +1 -1
- package/assets/{B-6CmVJvxPNZB9bE.js → DALP-GkmzCJdFIV9.js} +1 -1
- package/assets/{DCHjwIx59QhiV2Zx.js → DAVN6N3srI1WMHCN.js} +2 -2
- package/assets/{8hZAYFV_v2KmJ_NL.js → DBfBV-tvRxCLgdvs.js} +4 -4
- package/assets/{BhHneZZ7gq4dRaEJ.js → DIntlX_ha_wRdxYj.js} +1 -1
- package/assets/{XDQBri0_cS5paHej.js → DMDx0fX8tHKH0DdL.js} +2 -2
- package/assets/{9rJMq-cyOmajlBEQ.js → DMMw2v0iTuBnUjMI.js} +1 -1
- package/assets/{BCeSyFXflYgNP_ES.js → DNwyEanz3LqtOorY.js} +1 -1
- package/assets/{BFGVZsstQm2MWi7Y.js → DPUXpIzEs1t-jBiv.js} +1 -1
- package/assets/{DKnwIboAj_Sg9aVP.js → DSy6cpdU-KNWsbSj.js} +2 -2
- package/assets/{DN4zv4AjDxTsLFsA.js → DTXRsv2Ww7WbIwCb.js} +9352 -9281
- package/assets/{Du9_Ajy9KvnwHApK.js → DV_nCOON8Fgq5RBt.js} +2 -2
- package/assets/{BFcxaubQp1WMeknL.js → DYRis8fOyk2uIZ-1.js} +4 -4
- package/assets/{BQzUK7KiJeJpu-rK.js → DZ2Njh8YgfXcv7EM.js} +1 -1
- package/assets/{CMXukie7sxP12H2E.js → Dc2LiflUYpt0nVVk.js} +4 -4
- package/assets/{BQ76ntZm9YFicjXj.js → DcwqgbgqPyzQxSsQ.js} +1 -1
- package/assets/{DSDlxGN059KmkCxT.js → DjH6ckvISyssOSit.js} +1 -1
- package/assets/{NZeFs1MV5h-uMZqJ.js → Dlbgs8csKymbxu7r.js} +1 -1
- package/assets/{BwQM6Q6HHQTXznpy.js → DnDTldUjKy0O586y.js} +2 -2
- package/assets/{CLsD7YwSKAsliRZy.js → DndzARNYtmumqGnG.js} +1 -1
- package/assets/{nPoObUd0MvWI-j0F.js → Drmg3-gF0VJs4Yx3.js} +1 -1
- package/assets/{DwOPJ5TXttTx69oF.js → DsSlUklPSAsh9DhW.js} +330 -330
- package/assets/{rIReGgfQ90pzLAbU.js → DsWJ-YRyuwDUuSge.js} +1 -1
- package/assets/{BQeb2zXfAs5lRoGt.js → Dsjx528shW3GcGpD.js} +3 -3
- package/assets/{C_UAskmm-u2Iw9Nl.js → Dv9ZDmKuxn2tQDGb.js} +1 -1
- package/assets/{Bqq5Sl5E9ytcPJ3J.js → DvRH46hupHUjkc7a.js} +1 -1
- package/assets/{D5wI7O_L6QVNXj5I.js → DwsoGIyPuoQij_vi.js} +1 -1
- package/assets/{SCOKwiDu6SYiQrQ0.js → Dx_IFz5FEPKw-HC1.js} +1 -1
- package/assets/{CmlxzZYM5hOAAcx5.js → DzLrAy24em5k5en0.js} +3 -3
- package/assets/{D1pD8u8nRprUvn-u.js → I7LAF1nLmYqQwt9i.js} +1 -1
- package/assets/{CJoWPN_DsFbaGAiE.js → IDq3QQa5uRqjVJx_.js} +1 -1
- package/assets/{BSvHkSY0R0EU0gC4.js → LugZP3XHNnoiiTJO.js} +1 -1
- package/assets/{CoQFpWEh4CUgcdwe.js → MpvZt7VpFWEINIT6.js} +1 -1
- package/assets/{DMGq2icilGiyfBTM.js → NiD8iNE47sjggYTx.js} +1 -1
- package/assets/{vXZw1AmMzswOZMiP.js → PMBjuoD2MpG87dao.js} +1 -1
- package/assets/{CvkibaXI8SOD22pw.js → TdK2ciXA5BAlGjbR.js} +1 -1
- package/assets/{DWK-OKV0MErx-IrU.js → Ti7kMsQ-Eo3lkfIh.js} +6 -6
- package/assets/{D2IMjoGcj5oz1Kr7.js → Xkr_4WLwk0ZPaYH2.js} +1 -1
- package/assets/{DcjJ_zTfdh6RqmVZ.js → YG5hEr6CzWNmNJQ2.js} +1 -1
- package/assets/{MfkAFluI0ZyU0UDV.js → YGYD-116vlZfzPn1.js} +13 -13
- package/assets/{BhJ1mH7pUONJScU7.js → Z1zwOeCe-JTLgkxf.js} +47 -47
- package/assets/{Dhg0yeTmVfmRV5rK.js → _LMcVYWJksPfGVxz.js} +1 -1
- package/assets/{DzEJwSC-_aavYiFd.js → eV0oowKJe44NBnWj.js} +1 -1
- package/assets/{DH7Rur7rNOYzv35r.js → eWHWPRWHX6YU8bJU.js} +1 -1
- package/assets/{DL3ms6Hf2uEGaMgH.js → hcXZqO-0tG873E-L.js} +2 -2
- package/assets/{BM-ax5N1GzF9KkI4.js → klKXcdZmbQmsK2rt.js} +1 -1
- package/assets/{CQBFUsemb94zMBo6.js → ltqqdJxoPnLCjhBV.js} +3 -3
- package/assets/{BQsLqKWy17wy3znE.js → mYZ9Z5AKCn7zltHw.js} +2 -2
- package/assets/{BatIfPAYElNTXVzb.js → nV0eE4R3npcOHLbx.js} +1 -1
- package/assets/{BedBCvJP064ZYuO8.js → ndBoGVVjmy3vkff8.js} +2 -2
- package/assets/{ARPN5UhoadZC1yqE.js → noAnElnMhF05bfJN.js} +1 -1
- package/assets/{CYcb-DojX92VNGzd.js → q57cDvIPcIvWlh5T.js} +3 -3
- package/assets/{CWuPUrDsnBxboJ02.js → rtUwIBgECTX9UO_B.js} +108 -108
- package/assets/{DafqFM-FGeZJ_fzg.js → swG-DVTsez1uNW8c.js} +1 -1
- package/assets/{BDNqot_JWBuVW_pC.js → tCavNu-Tru6yRbec.js} +1 -1
- package/assets/{B7GE-6NROw0onnLD.js → u-pSumbU-rgT6eLF.js} +224 -224
- package/assets/{BMc-Hsrp_iifxzG_.js → uMoGfJGab8mZX6eN.js} +1 -1
- package/assets/{C3PZVWI_SEXYrzVk.js → uoUKT9hTrwZ2INHN.js} +3 -3
- package/assets/{CnCtLKkz0bdXIxn2.js → wYvkLI8IeHaWTtAx.js} +92 -92
- package/assets/{DlWRvc1pLGPCRMwi.js → yDh_W6M1rvuDhFv1.js} +1 -1
- package/index.js +224 -224
- package/lib.js +1 -1
- package/licenses/dependencies.txt +35 -35
- package/package.json +2 -2
- package/screenshot-page/assets/{Di8Yn8O-rD9idC2h.js → 1yHlU53ypZZelMPx.js} +1 -1
- package/screenshot-page/assets/{Btgo0VFTT0JxuaP3.js → B-8IMo2f1yGNXOyz.js} +86 -90
- package/screenshot-page/assets/{NDzpWLUA0pbyI-Rd.js → B9kA0vdaFJi9iRGo.js} +4 -4
- package/screenshot-page/assets/{iAWaCU0XkY0ktnNk.js → BLPyKyNun9-SHQBZ.js} +1 -1
- package/screenshot-page/assets/BMKiUDjoabO4aG1U.js +1 -0
- package/screenshot-page/assets/{C1lrvl0Ad1-NjWKG.js → BOjOE9CEMSzcij2W.js} +2 -2
- package/screenshot-page/assets/{DjtXY9uxB3QP6hU3.js → BQ5BNe1adYfpa2OH.js} +1 -1
- package/screenshot-page/assets/{B7u12-Sf0HF7g4wI.js → BUO6zT3gqK0uOOa-.js} +1 -1
- package/screenshot-page/assets/{5TxlmdZxlCDkawVW.js → BWtLNVUXjY6EBdEt.js} +1 -1
- package/screenshot-page/assets/BZpFWPd0PR1kPT-A.js +1 -0
- package/screenshot-page/assets/BaCs7lUeZ7NidSkP.js +1 -0
- package/screenshot-page/assets/Bf9AN5sYHaxae0vV.js +586 -0
- package/screenshot-page/assets/Bh2PQ0zsoGtMKWp1.js +39 -0
- package/screenshot-page/assets/BkhZQsVlVHOiKGTJ.js +1 -0
- package/screenshot-page/assets/BnPHZ_1rjv6kQgsL.js +1 -0
- package/screenshot-page/assets/{DNoZea7QMO9zB6D5.js → BuzI4z8RJGOw8BZD.js} +1 -1
- package/screenshot-page/assets/Bzf_upccQ2ho6mX0.js +13 -0
- package/screenshot-page/assets/{CM9cBiCjJIY64PWg.js → C0AbuMHcIS9oy4XL.js} +1 -1
- package/screenshot-page/assets/{Csjis_Fk8q4mSqdp.js → C4v6Ljs6kwQJu06t.js} +2 -2
- package/screenshot-page/assets/C7YRL2bVWHPIwzn_.js +1 -0
- package/screenshot-page/assets/{DqXO_Zw1Cp7rAQ04.js → C7mXat-6esc1AmRD.js} +2 -2
- package/screenshot-page/assets/{D6WTzLygjgK85siu.js → CFl15-2FAF9f3V7L.js} +2 -2
- package/screenshot-page/assets/CImp91jfSuqX0Wz-.js +1 -0
- package/screenshot-page/assets/{BMf827t1Ul65MHd5.js → CQukCzhuewMuFOlO.js} +1 -1
- package/screenshot-page/assets/{CaiPDssAQqXac5AG.js → CXmrXx6MZ5ApF3co.js} +1 -1
- package/screenshot-page/assets/CZq2dMHs2MHHyyBl.js +1 -0
- package/screenshot-page/assets/Cv-YUArreXqhafcU.js +2 -0
- package/screenshot-page/assets/{DgtqX4DiBgkepVZZ.js → Cx1kZ2u_8JFV2Q8D.js} +1 -1
- package/screenshot-page/assets/D23_69pojBfIh4nV.js +5 -0
- package/screenshot-page/assets/D2q4M3I5Jmxm85P2.js +1 -0
- package/screenshot-page/assets/{BYQZ8o8k3-MDoNat.js → D6Yv5cc1JE7DGd6j.js} +1 -1
- package/screenshot-page/assets/D8QsCbSaWCLAYYso.js +1 -0
- package/screenshot-page/assets/{F6yLCIlSWZ1lAUEp.js → DC_Hdwa9KL7xKU8u.js} +2 -2
- package/screenshot-page/assets/DHtL9Iawmr2Uo5VV.js +2 -0
- package/screenshot-page/assets/{Cfs_rQCXBMVhJgat.js → DKWRl8rs3K9jBYtr.js} +1 -1
- package/screenshot-page/assets/DMhOGCTy8V0N14gY.js +1 -0
- package/screenshot-page/assets/{C6vseMcEu3To1U6k.js → DNYWB6WNZTquqQ9v.js} +3 -3
- package/screenshot-page/assets/{Bwk0ScujWaYYqx5G.js → DegZKTNqt1LRnSxY.js} +1 -1
- package/screenshot-page/assets/{tPEJNcr51GaPfk3O.js → Dhh1xqujbhLa8WFd.js} +1 -1
- package/screenshot-page/assets/{CNFMt4XhKy4tlsUn.js → Dkr-6Z1RJsAp9Xrv.js} +1 -1
- package/screenshot-page/assets/DllI8kZZZ5LG0Mjd.js +2 -0
- package/screenshot-page/assets/{t4FRkJl27a0itCt6.js → DrcpGT9FLbDzeLeG.js} +2 -2
- package/screenshot-page/assets/{D1TqM0Bt65K6svMS.js → FjOiReLnknWbsRRr.js} +19 -19
- package/screenshot-page/assets/{C3KvRJ_eXd6xnmlO.js → H_hWDMWfWmjTui7V.js} +1 -1
- package/screenshot-page/assets/LCjlxIt1dn3smVjX.js +1 -0
- package/screenshot-page/assets/{DGB9wBuDWt0bzTNE.js → RutPv2GFWmeBiWvn.js} +1 -1
- package/screenshot-page/assets/{DeyRZ5rprDbRbuf4.js → Tj3B5At0OAN3tDza.js} +1 -1
- package/screenshot-page/assets/{CpZHZoz3xpJMDWI0.js → TwKKik-YQENv52LX.js} +1 -1
- package/screenshot-page/assets/XiUItCqTNNEApgfa.js +2 -0
- package/screenshot-page/assets/XrFpPrRqQNE9AAwH.js +1 -0
- package/screenshot-page/assets/mBuOPJeUPXlKwfPZ.js +48 -0
- package/screenshot-page/assets/qFyplGXRu7IepHio.js +1 -0
- package/screenshot-page/assets/zSnM7GhGzLu1MM_u.js +3 -0
- package/screenshot-page/assets/{DtihumgXQ7ETaN0A.js → zvxBjll3jnL0-vNn.js} +2 -2
- package/screenshot-page/index.html +11 -11
- package/types/scripting-api.json +9329 -9329
- package/types/scripting.d.ts +24 -18
- package/assets/Del35nO_1HyjItI0.js +0 -199
- package/assets/LLdkCOYvtc1-vOsy.js +0 -14
- package/screenshot-page/assets/2XWoSsrRz2kognCK.js +0 -1
- package/screenshot-page/assets/BCOjWc-VhkuVoCVf.js +0 -1
- package/screenshot-page/assets/BqQ2A9WL6mcRxbSt.js +0 -2
- package/screenshot-page/assets/Bw4kRw8JKyNRlLE2.js +0 -1
- package/screenshot-page/assets/BwF-LAYFu91KqvJ8.js +0 -2
- package/screenshot-page/assets/ByehV0cOs5aIySS-.js +0 -13
- package/screenshot-page/assets/C0F9BL11dkgzjp7Y.js +0 -1
- package/screenshot-page/assets/C3QIYFX-vF_1DVmi.js +0 -586
- package/screenshot-page/assets/CafJ2T5GCjkumgLh.js +0 -1
- package/screenshot-page/assets/CijzqW2bsxOQdDxl.js +0 -2
- package/screenshot-page/assets/D5kEl0N4l6MzdmTG.js +0 -1
- package/screenshot-page/assets/D6CzedWHXTesD55R.js +0 -1
- package/screenshot-page/assets/D7e00cCBTtcIRmjV.js +0 -1
- package/screenshot-page/assets/DTrnAtpccj55fGg5.js +0 -1
- package/screenshot-page/assets/DZ2zDgzt-mnhg3Kd.js +0 -1
- package/screenshot-page/assets/DaVBDkeZxbXnuyGz.js +0 -42
- package/screenshot-page/assets/DgNbqKuVd-Q170VZ.js +0 -2
- package/screenshot-page/assets/Dv-4mfeFKIoD5jaY.js +0 -3
- package/screenshot-page/assets/HZAIE0lHXXFqlb2v.js +0 -1
- package/screenshot-page/assets/Lr2MYBmoCKMLBl_6.js +0 -5
- package/screenshot-page/assets/O-S3tcMip6iXUjQF.js +0 -1
- package/screenshot-page/assets/eV_6j-vFozPgfcjz.js +0 -1
- package/screenshot-page/assets/it1wnIFQtbJ4Dm8N.js +0 -1
- package/screenshot-page/assets/mCyh2440vZi8s1uY.js +0 -39
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.20
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: SheetXL EULA — https://www.sheetxl.com/eula
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import { n as t } from "./
|
|
7
|
+
import { P as e } from "./DsSlUklPSAsh9DhW.js";
|
|
8
|
+
import { n as t } from "./NiD8iNE47sjggYTx.js";
|
|
9
9
|
var r = async (r, n) => {
|
|
10
10
|
let o = r;
|
|
11
11
|
(function(e) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.20
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: SheetXL EULA — https://www.sheetxl.com/eula
|
|
6
6
|
*/
|
|
7
|
-
import { ht as e } from "./
|
|
8
|
-
import { c as t,
|
|
9
|
-
import { c as r, s as i } from "./
|
|
7
|
+
import { ht as e } from "./CyOyY32LLW-Pj_L7.js";
|
|
8
|
+
import { c as t, f as n, i as a } from "./CrRJqUPbvvhnp4p4.js";
|
|
9
|
+
import { c as r, s as i } from "./Ti7kMsQ-Eo3lkfIh.js";
|
|
10
10
|
var o = /* @__PURE__ */ new Map([["IReferenceRange", "p"], ["IRange", "r"]]), s = new Set(Object.values(t).filter((e) => e !== t.Omitted)), l = /* @__PURE__ */ new Map([
|
|
11
11
|
["IWorkbook", "workbook"],
|
|
12
12
|
["IWorksheet", "sheet"],
|
|
@@ -20,9 +20,9 @@ var o = /* @__PURE__ */ new Map([["IReferenceRange", "p"], ["IRange", "r"]]), s
|
|
|
20
20
|
}, m = /* @__PURE__ */ new Map([
|
|
21
21
|
["Scalar", "*"],
|
|
22
22
|
["Lambda", "l"],
|
|
23
|
-
["FormulaError.Known",
|
|
24
|
-
["Date",
|
|
25
|
-
["IRichData",
|
|
23
|
+
["FormulaError.Known", n.Error],
|
|
24
|
+
["Date", a.Date],
|
|
25
|
+
["IRichData", a.RichData]
|
|
26
26
|
]), c = /* @__PURE__ */ new Map([["Repeating", "repeating"]]), p = /* @__PURE__ */ new Set(["Flatten", "SheetXL.Flatten"]), g = /* @__PURE__ */ new Set(["AcceptError"]), y = /* @__PURE__ */ new Set(["Omittable"]), f = /* @__PURE__ */ new Set(["NoLift"]), h = /* @__PURE__ */ new Set(["NoFilter"]), v = /* @__PURE__ */ new Set(["Lazy"]), $ = /* @__PURE__ */ new Set(["ReportType"]), b = /^[a-zA-Z_-][a-zA-Z0-9_.-]*$/, T = /^([a-z]{1,3})([0-9]+)$/i, w = /^r[0-9]*c[0-9]*$/i, x = "SheetXL", S = (e) => {
|
|
27
27
|
const t = e.typeName.getText();
|
|
28
28
|
return t.startsWith(`${x}.`) ? t.slice(8) : t;
|
|
@@ -62,7 +62,7 @@ var k = /* @__PURE__ */ new Map([["Volatile", () => ({ volatile: !0 })], [`${x}.
|
|
|
62
62
|
}
|
|
63
63
|
return t.replace(/\r\n?/g, "\n").split(/\n[^\S\n]*\n\s*/).map((e) => e.split("\n").map((e) => e.trim()).filter(Boolean).join(" ")).filter(Boolean).join("\n").trim();
|
|
64
64
|
};
|
|
65
|
-
function I(t,
|
|
65
|
+
function I(t, a, u, I) {
|
|
66
66
|
const E = I?.builtInNames?.length ? new Set(I.builtInNames.map((e) => e.toUpperCase())) : null, F = [], D = /* @__PURE__ */ new Map(), M = [];
|
|
67
67
|
let C = null;
|
|
68
68
|
const P = (e, t, n, a) => {
|
|
@@ -114,7 +114,7 @@ function I(t, n, u, I) {
|
|
|
114
114
|
Q(o[0], e, r, !1, { count: 0 }), s = e.scalar ?? "*";
|
|
115
115
|
}
|
|
116
116
|
return a.lambda = s, !0;
|
|
117
|
-
}, G = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), J = /* @__PURE__ */ new Set(), q = /* @__PURE__ */ new WeakSet(), W = (e) => void 0 !== e && e.getSourceFile() ===
|
|
117
|
+
}, G = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), J = /* @__PURE__ */ new Set(), q = /* @__PURE__ */ new WeakSet(), W = (e) => void 0 !== e && e.getSourceFile() === a, X = (t, n = !1) => t.getJsDocTags(u).find((e) => "name" === e.name)?.text?.map((e) => e.text).join("").trim() || (n ? e.camelToPrettyCase(t.name) : t.name), Z = (e) => {
|
|
118
118
|
const t = e.getJsDocTags(u).find((e) => "deprecated" === e.name);
|
|
119
119
|
if (t) return t.text?.map((e) => e.text).join("").trim() || !0;
|
|
120
120
|
}, H = (e, i) => {
|
|
@@ -122,11 +122,11 @@ function I(t, n, u, I) {
|
|
|
122
122
|
if (o) {
|
|
123
123
|
if (l && l.flags & t.SymbolFlags.Alias) return void U(e, r.EnumNotLocal, `'${o.getText()}' is imported, so its declaration cannot be read: '${i}'. An enum must be declared in the module that uses it.`);
|
|
124
124
|
if (!(l && l.flags & t.SymbolFlags.Type)) {
|
|
125
|
-
const
|
|
126
|
-
return (l ? 0 !== (l.flags & t.SymbolFlags.Variable) :
|
|
125
|
+
const n = o.getText();
|
|
126
|
+
return (l ? 0 !== (l.flags & t.SymbolFlags.Variable) : a.statements.some((e) => t.isVariableStatement(e) && e.declarationList.declarations.some((e) => t.isIdentifier(e.name) && e.name.text === n))) ? void U(e, r.EnumMissingAlias, `'${n}' is a value, not a type: '${i}'. Pair the object with a same-name type — 'type ${n} = typeof ${n}[keyof typeof ${n}];' — or declare it as 'enum ${n} { … }'.`) : null;
|
|
127
127
|
}
|
|
128
|
-
const
|
|
129
|
-
if (void 0 !==
|
|
128
|
+
const n = G.get(l);
|
|
129
|
+
if (void 0 !== n) return n;
|
|
130
130
|
if (J.has(l)) return;
|
|
131
131
|
}
|
|
132
132
|
const d = [];
|
|
@@ -200,7 +200,7 @@ function I(t, n, u, I) {
|
|
|
200
200
|
}
|
|
201
201
|
const y = {
|
|
202
202
|
id: p,
|
|
203
|
-
type: c ?
|
|
203
|
+
type: c ? n.Number : n.String,
|
|
204
204
|
members: d.map(([e, t, , , n]) => n ? [
|
|
205
205
|
e,
|
|
206
206
|
t,
|
|
@@ -215,100 +215,100 @@ function I(t, n, u, I) {
|
|
|
215
215
|
f && (e.summary = f), Object.keys(h).length > 0 && (e.members = h), _.set(y, e);
|
|
216
216
|
}
|
|
217
217
|
return y;
|
|
218
|
-
}, Q = (e,
|
|
218
|
+
}, Q = (e, a, i, s, u, b = !1, T = !1, w = !1) => {
|
|
219
219
|
if (e) {
|
|
220
|
-
if (e.kind === t.SyntaxKind.ParenthesizedType) return Q(e.type,
|
|
220
|
+
if (e.kind === t.SyntaxKind.ParenthesizedType) return Q(e.type, a, i, s, u, b, T, w);
|
|
221
221
|
if (e.kind === t.SyntaxKind.UnionType) {
|
|
222
|
-
const
|
|
223
|
-
if (1 === l.length) return Q(l[0],
|
|
224
|
-
const d = H(e,
|
|
222
|
+
const n = (e) => e.kind === t.SyntaxKind.UndefinedKeyword || e.kind === t.SyntaxKind.VoidKeyword || e.kind === t.SyntaxKind.NullKeyword || e.kind === t.SyntaxKind.LiteralType && e.literal?.kind === t.SyntaxKind.NullKeyword, l = e.types.filter((e) => !n(e));
|
|
223
|
+
if (1 === l.length) return Q(l[0], a, i, s, u, b, T, w);
|
|
224
|
+
const d = H(e, a.name ?? z(e));
|
|
225
225
|
if (void 0 === d) return;
|
|
226
|
-
if (null !== d) return
|
|
227
|
-
if (!s) return void (
|
|
226
|
+
if (null !== d) return a.scalar = d.type, void (s && (a.enum = d));
|
|
227
|
+
if (!s) return void (a.scalar = "*");
|
|
228
228
|
if (2 === l.length) {
|
|
229
|
-
const e = (e) => e.kind === t.SyntaxKind.TypeReference && t.isTypeReferenceNode(e) && "Lambda" === S(e),
|
|
230
|
-
if (
|
|
229
|
+
const e = (e) => e.kind === t.SyntaxKind.TypeReference && t.isTypeReferenceNode(e) && "Lambda" === S(e), n = l.findIndex(e);
|
|
230
|
+
if (n >= 0 && !e(l[1 - n])) return Q(l[1 - n], a, i, s, u, b, T, w), void V(l[n], S(l[n]), a, i, s);
|
|
231
231
|
}
|
|
232
232
|
if (s && 2 === l.length) {
|
|
233
233
|
const e = (e) => {
|
|
234
234
|
if (e.kind === t.SyntaxKind.TypeReference && !e.typeArguments?.length) return o.get(S(e));
|
|
235
|
-
},
|
|
236
|
-
if (
|
|
235
|
+
}, n = l.findIndex((t) => void 0 !== e(t));
|
|
236
|
+
if (n >= 0 && void 0 === e(l[1 - n])) {
|
|
237
237
|
const t = {}, r = u.count;
|
|
238
|
-
if (Q(l[1 -
|
|
239
|
-
|
|
238
|
+
if (Q(l[1 - n], t, i, s, u, b, !1), t.scalar && !t.range && null == t.lambda && u.count === r) {
|
|
239
|
+
a.range = e(l[n]), a.scalar = t.scalar, a.valueOrRange = !0;
|
|
240
240
|
const r = t.enum;
|
|
241
|
-
r && (
|
|
241
|
+
r && (a.enum = r);
|
|
242
242
|
return;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
if (s && 2 === l.length) {
|
|
247
|
-
const
|
|
248
|
-
if (r >= 0 && !
|
|
249
|
-
const t = H(l[1 - r],
|
|
247
|
+
const n = (e) => e.kind === t.SyntaxKind.TypeReference && !e.typeArguments?.length && "Scalar" === S(e), r = l.findIndex(n);
|
|
248
|
+
if (r >= 0 && !n(l[1 - r])) {
|
|
249
|
+
const t = H(l[1 - r], a.name ?? z(e));
|
|
250
250
|
if (void 0 === t) return;
|
|
251
|
-
if (null !== t) return
|
|
251
|
+
if (null !== t) return a.scalar = "*", void (a.enum = t);
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
U(e, r.InvalidParamType, `Union parameter types are not supported: '${z(e)}'. Use a single type, optionally with '| null' or '| undefined', 'T | Lambda<…>' for a value-or-lambda slot, 'IRange | Scalar' for a value-or-range slot, or 'E | Scalar' for an uncoerced slot whose values an enum documents.`);
|
|
255
255
|
return;
|
|
256
256
|
}
|
|
257
|
-
if (e.kind === t.SyntaxKind.NumberKeyword)
|
|
258
|
-
else if (e.kind === t.SyntaxKind.StringKeyword)
|
|
259
|
-
else if (e.kind === t.SyntaxKind.BooleanKeyword)
|
|
257
|
+
if (e.kind === t.SyntaxKind.NumberKeyword) a.scalar = n.Number;
|
|
258
|
+
else if (e.kind === t.SyntaxKind.StringKeyword) a.scalar = n.String;
|
|
259
|
+
else if (e.kind === t.SyntaxKind.BooleanKeyword) a.scalar = n.Boolean;
|
|
260
260
|
else if (e.kind === t.SyntaxKind.UndefinedKeyword || e.kind === t.SyntaxKind.NullKeyword || e.kind === t.SyntaxKind.VoidKeyword) {
|
|
261
261
|
if (s) return void U(e, r.UndefinedInput, `'undefined' is not a valid type for input: '${z(e)}'.`);
|
|
262
|
-
|
|
263
|
-
} else if (e.kind === t.SyntaxKind.BigIntKeyword)
|
|
264
|
-
else if (e.kind === t.SyntaxKind.AnyKeyword) s && (
|
|
262
|
+
a.scalar = n.Null;
|
|
263
|
+
} else if (e.kind === t.SyntaxKind.BigIntKeyword) a.scalar = n.Number;
|
|
264
|
+
else if (e.kind === t.SyntaxKind.AnyKeyword) s && (a.range = "*");
|
|
265
265
|
else if (e.kind === t.SyntaxKind.ArrayType) {
|
|
266
266
|
const t = e.elementType;
|
|
267
267
|
if (!t) return void U(e, r.UntypedArray, `'Array' must be typed: '${z(e)}'.`);
|
|
268
268
|
if (s && T) {
|
|
269
|
-
const
|
|
270
|
-
delete
|
|
269
|
+
const n = a, r = n.name ?? z(e) ?? "parameter", o = n.acceptError;
|
|
270
|
+
delete n.acceptError;
|
|
271
271
|
const s = { name: r };
|
|
272
|
-
j(t, s, i, !0), o && !s.acceptError && (s.acceptError = !0),
|
|
272
|
+
j(t, s, i, !0), o && !s.acceptError && (s.acceptError = !0), n.repeating = [s];
|
|
273
273
|
return;
|
|
274
274
|
}
|
|
275
|
-
u.count++, Q(t,
|
|
275
|
+
u.count++, Q(t, a, i, s, u);
|
|
276
276
|
} else if (e.kind !== t.SyntaxKind.TupleType) if (e.kind === t.SyntaxKind.TypeReference) {
|
|
277
|
-
const
|
|
278
|
-
if (g.has(
|
|
277
|
+
const n = S(e);
|
|
278
|
+
if (g.has(n)) {
|
|
279
279
|
const t = z(e);
|
|
280
|
-
if (!s) return void U(e, r.InvalidReturnType, `'${
|
|
281
|
-
const o =
|
|
280
|
+
if (!s) return void U(e, r.InvalidReturnType, `'${n}' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
281
|
+
const o = a;
|
|
282
282
|
if (o.acceptError) return void U(e, r.InvalidParamType, `'${t}' declares 'AcceptError' more than once.`);
|
|
283
283
|
const l = e.typeArguments;
|
|
284
|
-
return l && 1 === l.length ? (o.acceptError = !0, Q(l[0],
|
|
284
|
+
return l && 1 === l.length ? (o.acceptError = !0, Q(l[0], a, i, s, u, b, T, w)) : void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
285
285
|
}
|
|
286
|
-
if ($.has(
|
|
287
|
-
const t =
|
|
286
|
+
if ($.has(n)) {
|
|
287
|
+
const t = a.name ?? z(e);
|
|
288
288
|
if (!s) return void U(e, r.InvalidReturnType, `'ReportType' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
289
289
|
const o = e.typeArguments;
|
|
290
|
-
return o && 1 === o.length ? (
|
|
290
|
+
return o && 1 === o.length ? (a.reportType = !0, Q(o[0], a, i, s, u, b, T, w)) : void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
291
291
|
}
|
|
292
|
-
if (f.has(
|
|
293
|
-
const t =
|
|
292
|
+
if (f.has(n)) {
|
|
293
|
+
const t = a.name ?? z(e);
|
|
294
294
|
if (!s) return void U(e, r.InvalidReturnType, `'NoLift' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
295
295
|
const o = e.typeArguments;
|
|
296
|
-
if (!o || 1 !== o.length) return void U(e, r.GenericArity, `'${
|
|
297
|
-
const l =
|
|
296
|
+
if (!o || 1 !== o.length) return void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
297
|
+
const l = a;
|
|
298
298
|
l.noLift = !0;
|
|
299
299
|
const d = u.count;
|
|
300
|
-
Q(o[0],
|
|
300
|
+
Q(o[0], a, i, s, u, b, T, w), (l.range || null != l.lambda || l.repeating || u.count !== d) && U(e, r.InvalidParamType, `'${t}': 'NoLift' applies to a SCALAR parameter only - a range, list, repeating or lambda slot never lifts.`);
|
|
301
301
|
return;
|
|
302
302
|
}
|
|
303
|
-
if (h.has(
|
|
304
|
-
const t =
|
|
303
|
+
if (h.has(n)) {
|
|
304
|
+
const t = a.name ?? z(e);
|
|
305
305
|
if (!s) return void U(e, r.InvalidReturnType, `'NoFilter' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
306
306
|
const o = e.typeArguments;
|
|
307
|
-
if (!o || 1 !== o.length) return void U(e, r.GenericArity, `'${
|
|
308
|
-
const l =
|
|
307
|
+
if (!o || 1 !== o.length) return void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
308
|
+
const l = a;
|
|
309
309
|
l.noFilter = !0;
|
|
310
310
|
const d = u.count;
|
|
311
|
-
if (Q(o[0],
|
|
311
|
+
if (Q(o[0], a, i, s, u, b, T, w), l.range || null != l.lambda || u.count !== d) return void U(e, r.InvalidParamType, `'${t}': 'NoFilter' applies to a SCALAR slot only - a range, list or lambda slot has no members to coerce.`);
|
|
312
312
|
const m = l.repeating;
|
|
313
313
|
if (m) {
|
|
314
314
|
if (delete l.noFilter, 1 !== m.length) return void U(e, r.InvalidParamType, `'${t}': 'NoFilter' over a repeating group applies to a period-1 group only - write it on the slot that takes the members.`);
|
|
@@ -316,54 +316,54 @@ function I(t, n, u, I) {
|
|
|
316
316
|
} else T && U(e, r.InvalidParamType, `'${t}': 'NoFilter' applies to a REPEATING slot only - a single scalar argument has no members to coerce.`);
|
|
317
317
|
return;
|
|
318
318
|
}
|
|
319
|
-
if (y.has(
|
|
320
|
-
const o =
|
|
319
|
+
if (y.has(n)) {
|
|
320
|
+
const o = a.name ?? z(e);
|
|
321
321
|
if (!s) return void U(e, r.InvalidReturnType, `'Omittable' is not a valid return type: '${o}'. It describes how an ARGUMENT is received.`);
|
|
322
322
|
const l = e.typeArguments;
|
|
323
|
-
if (!l || l.length < 1 || l.length > 2) return void U(e, r.GenericArity, `'${
|
|
324
|
-
const d =
|
|
323
|
+
if (!l || l.length < 1 || l.length > 2) return void U(e, r.GenericArity, `'${n}' must be typed with 1 or 2 types: '${o}'.`);
|
|
324
|
+
const d = a;
|
|
325
325
|
if (d.omittable = !0, 2 === l.length) {
|
|
326
|
-
const
|
|
327
|
-
if (void 0 ===
|
|
328
|
-
d.omittedValue =
|
|
326
|
+
const a = K(t, l[1]);
|
|
327
|
+
if (void 0 === a) return void U(e, r.InvalidParamType, `'${o}' declares '${n}' with a second type that is not a literal value. Use a number, string, boolean or null - the engine substitutes it for an omitted argument.`);
|
|
328
|
+
d.omittedValue = a;
|
|
329
329
|
}
|
|
330
|
-
const m = Q(l[0],
|
|
330
|
+
const m = Q(l[0], a, i, s, u, b, T, w), c = d.omittedValue;
|
|
331
331
|
return d.enum && null != c && !d.enum.members.some(([, e]) => e === c) && U(l[1], r.EnumOmittedValue, `'${o}': ${JSON.stringify(c)} is not a member of '${d.enum.id}'. An omitted argument must mean a member (${d.enum.members.map(([, e]) => JSON.stringify(e)).join(", ")}) or null.`), m;
|
|
332
332
|
}
|
|
333
|
-
if (v.has(
|
|
334
|
-
const o =
|
|
333
|
+
if (v.has(n)) {
|
|
334
|
+
const o = a.name ?? z(e);
|
|
335
335
|
if (!s) return void U(e, r.InvalidReturnType, `'Lazy' is not a valid return type: '${o}'. It describes how an ARGUMENT is received.`);
|
|
336
|
-
const l =
|
|
336
|
+
const l = a;
|
|
337
337
|
if (l.lazy) return void U(e, r.InvalidParamType, `'${o}' declares 'Lazy' more than once.`);
|
|
338
338
|
const d = e.typeArguments;
|
|
339
|
-
if (!d || d.length < 1 || d.length > 2) return void U(e, r.GenericArity, `'${
|
|
339
|
+
if (!d || d.length < 1 || d.length > 2) return void U(e, r.GenericArity, `'${n}' must be typed with 1 or 2 types: '${o}'.`);
|
|
340
340
|
if (l.lazy = !0, 2 === d.length) {
|
|
341
|
-
const
|
|
342
|
-
if (void 0 ===
|
|
343
|
-
l.optional = !0, l.defaultValue =
|
|
341
|
+
const a = K(t, d[1]);
|
|
342
|
+
if (void 0 === a) return void U(e, r.InvalidParamType, `'${o}' declares '${n}' with a second type that is not a literal value. Use a number, string, boolean or null - the engine substitutes it for an absent argument.`);
|
|
343
|
+
l.optional = !0, l.defaultValue = a;
|
|
344
344
|
}
|
|
345
|
-
Q(d[0],
|
|
345
|
+
Q(d[0], a, i, s, u, b, T, w), l.enum ? (U(e, r.EnumPosition, `'${o}': 'Lazy' cannot hold the enum '${l.enum.id}'. The argument may never be evaluated, so there is no point at which it could be checked against the members.`), delete l.enum) : null != l.lambda ? U(e, r.InvalidParamType, `'${o}': 'Lazy' cannot be combined with a Lambda parameter - a callable slot is already the body's to call, or not.`) : l.repeating && U(e, r.InvalidParamType, `'${o}': 'Lazy' applies to a VALUE, not to a repeating group - mark the group's slots instead.`);
|
|
346
346
|
return;
|
|
347
347
|
}
|
|
348
|
-
if (p.has(
|
|
349
|
-
const t =
|
|
348
|
+
if (p.has(n)) {
|
|
349
|
+
const t = a.name ?? z(e);
|
|
350
350
|
if (!s) return void U(e, r.InvalidReturnType, `'Flatten' is not a valid return type: '${t}'. It describes how an ARGUMENT is received.`);
|
|
351
351
|
const o = e.typeArguments;
|
|
352
|
-
return o && 1 === o.length ? (u.count++, Q(o[0],
|
|
352
|
+
return o && 1 === o.length ? (u.count++, Q(o[0], a, i, s, u, b)) : void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${t}'.`);
|
|
353
353
|
}
|
|
354
|
-
if ("repeating" === c.get(
|
|
355
|
-
const o =
|
|
354
|
+
if ("repeating" === c.get(n)) {
|
|
355
|
+
const o = a.name ?? z(e);
|
|
356
356
|
if (!s) return void U(e, r.RepeatingPosition, `'Repeating' is not a valid return type: '${o}'.`);
|
|
357
357
|
if (0 !== u.count) return void U(e, r.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${o}'.`);
|
|
358
|
-
const l =
|
|
359
|
-
if (!d || d.length < 1 || d.length > 2) return void U(e, r.GenericArity, `'${
|
|
358
|
+
const l = a, d = e.typeArguments;
|
|
359
|
+
if (!d || d.length < 1 || d.length > 2) return void U(e, r.GenericArity, `'${n}' must be typed with 1 type, optionally followed by a maximum argument count: '${o}'.`);
|
|
360
360
|
let m;
|
|
361
361
|
if (2 === d.length) {
|
|
362
|
-
const e = d[1],
|
|
363
|
-
if (!Number.isInteger(s) || s < 1 || s > 255) return void U(e, r.RepeatingMax, `'${o}': '${
|
|
362
|
+
const e = d[1], a = e.kind === t.SyntaxKind.LiteralType ? e.literal : null, s = a && a.kind === t.SyntaxKind.NumericLiteral ? Number(a.text) : NaN;
|
|
363
|
+
if (!Number.isInteger(s) || s < 1 || s > 255) return void U(e, r.RepeatingMax, `'${o}': '${n}'’s maximum must be a whole number between 1 and 255.`);
|
|
364
364
|
m = s, i.maxArguments = s;
|
|
365
365
|
}
|
|
366
|
-
if (w) return void 0 === m ? void U(e, r.RepeatingPosition, `'${o}' is a rest parameter and a repeating group. A group already repeats — drop the '...', or give the group a maximum ('Repeating<T, 254>') if the ceiling is all you meant.`) : Q(d[0],
|
|
366
|
+
if (w) return void 0 === m ? void U(e, r.RepeatingPosition, `'${o}' is a rest parameter and a repeating group. A group already repeats — drop the '...', or give the group a maximum ('Repeating<T, 254>') if the ceiling is all you meant.`) : Q(d[0], a, i, s, u, b, T);
|
|
367
367
|
const c = l.acceptError;
|
|
368
368
|
delete l.acceptError;
|
|
369
369
|
const p = ((e, n, a, i) => {
|
|
@@ -387,39 +387,39 @@ function I(t, n, u, I) {
|
|
|
387
387
|
p && (l.repeating = p);
|
|
388
388
|
return;
|
|
389
389
|
}
|
|
390
|
-
const R = o.get(
|
|
390
|
+
const R = o.get(n);
|
|
391
391
|
let L = !1;
|
|
392
|
-
R && (
|
|
393
|
-
const I = m.get(
|
|
394
|
-
if (I && (
|
|
392
|
+
R && (a.range = R, L = !0);
|
|
393
|
+
const I = m.get(n);
|
|
394
|
+
if (I && (a.scalar = I), void 0 !== I && (L = !0), V(e, n, a, i, s)) return;
|
|
395
395
|
if (s) {
|
|
396
|
-
if ("Volatile" ===
|
|
397
|
-
if (N.has(
|
|
398
|
-
const t = l.get(
|
|
396
|
+
if ("Volatile" === n || n === `${x}.Volatile`) return void U(e, r.InvalidParamType, `'Volatile' is not a valid parameter type: '${z(e)}'. It describes the function's RESULT, so it belongs on the return type.`);
|
|
397
|
+
if (N.has(n)) return A;
|
|
398
|
+
const t = l.get(n);
|
|
399
399
|
if (t) return t;
|
|
400
|
-
} else if ("Promise" ===
|
|
400
|
+
} else if ("Promise" === n) O = e, L = !0;
|
|
401
401
|
else {
|
|
402
|
-
const e = k.get(
|
|
403
|
-
e && (Object.assign(
|
|
402
|
+
const e = k.get(n);
|
|
403
|
+
e && (Object.assign(a, e()), L = !0);
|
|
404
404
|
}
|
|
405
405
|
if (!L) {
|
|
406
|
-
const t = H(e,
|
|
406
|
+
const t = H(e, a.name ?? z(e));
|
|
407
407
|
if (void 0 === t) return;
|
|
408
|
-
if (null !== t) return
|
|
408
|
+
if (null !== t) return a.scalar = t.type, void (s && (a.enum = t));
|
|
409
409
|
}
|
|
410
410
|
if (!L) {
|
|
411
|
-
const t = "number, string, boolean, Scalar, Lambda, Date, FormulaError.Known, IRichData, IRange, IReferenceRange (and arrays of these; optionally wrapped in AcceptError<T>, or grouped with Repeating<T>)",
|
|
411
|
+
const t = "number, string, boolean, Scalar, Lambda, Date, FormulaError.Known, IRichData, IRange, IReferenceRange (and arrays of these; optionally wrapped in AcceptError<T>, or grouped with Repeating<T>)", a = "number, string, boolean, Scalar, Date, FormulaError.Known, IRichData, IRange, Volatile<T> (and arrays of these)";
|
|
412
412
|
let i;
|
|
413
|
-
i = s ? b ? `'${
|
|
413
|
+
i = s ? b ? `'${n}' is not a valid first parameter: '${z(e)}'. The first parameter is EITHER a macro target (making this a macro) OR a calculation input (making this a calculation function). Allowed: ${d.join(", ")} (macro target); ${t} (calculation input).` : `'${n}' is not a valid parameter type: '${z(e)}'. Allowed: ${t}.` : `'${n}' is not a valid return type: '${z(e)}'. Allowed: ${a}.`, U(e, s ? r.InvalidParamType : r.InvalidReturnType, i);
|
|
414
414
|
return;
|
|
415
415
|
}
|
|
416
416
|
const E = e.typeArguments;
|
|
417
417
|
if (E) {
|
|
418
|
-
if (1 !== E.length) return void U(e, r.GenericArity, `'${
|
|
419
|
-
const o = E[0], l = s && t.isTypeReferenceNode(o) && $.has(S(o)), d =
|
|
420
|
-
l && q.add(
|
|
421
|
-
const u =
|
|
422
|
-
u && !l && (U(E[0], r.EnumPosition, `'${
|
|
418
|
+
if (1 !== E.length) return void U(e, r.GenericArity, `'${n}' must be typed with exactly 1 type: '${z(e)}'.`);
|
|
419
|
+
const o = E[0], l = s && t.isTypeReferenceNode(o) && $.has(S(o)), d = a.reportType;
|
|
420
|
+
l && q.add(a), j(o, a, i, s), l && void 0 === d && delete a.reportType;
|
|
421
|
+
const u = a.enum;
|
|
422
|
+
u && !l && (U(E[0], r.EnumPosition, `'${n}' cannot hold the enum '${u.id}': '${z(e)}'. The members of a range reach the body as they are, so nothing checks them against the enum. Take the enum as a value, or type the range by its scalar ('${n}<${u.type}>').`), delete a.enum);
|
|
423
423
|
}
|
|
424
424
|
} else e.kind === t.SyntaxKind.FunctionType && ((e, n, a, i) => {
|
|
425
425
|
if (!i) return void U(e, r.FunctionReturn, `Function type is not a valid return type: '${z(e)}'. Declare a 'Lambda' return instead.`);
|
|
@@ -428,11 +428,11 @@ function I(t, n, u, I) {
|
|
|
428
428
|
o && (o.kind === t.SyntaxKind.AnyKeyword ? l = "raw" : (Q(o, s, a, !1, { count: 0 }), l = s.scalar ?? "*"));
|
|
429
429
|
const d = e.parameters;
|
|
430
430
|
d && !d.some((e) => e.dotDotDotToken) && (n.lambdaArity = d.length), n.lambda = l;
|
|
431
|
-
})(e,
|
|
432
|
-
} else U(e, r.MissingType, `Type is not defined for '${
|
|
431
|
+
})(e, a, i, s);
|
|
432
|
+
} else U(e, r.MissingType, `Type is not defined for '${a?.name ?? "return"}'.`);
|
|
433
433
|
};
|
|
434
434
|
try {
|
|
435
|
-
t.forEachChild(
|
|
435
|
+
t.forEachChild(a, (e) => {
|
|
436
436
|
if (a = e, 0 !== (t.getCombinedModifierFlags(a) & t.ModifierFlags.Export) && t.isFunctionDeclaration(e)) {
|
|
437
437
|
const a = e?.name?.getText();
|
|
438
438
|
if (!e.body) return void U(e, r.NoBody, `'${a}': function has no body.`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.20
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: SheetXL EULA — https://www.sheetxl.com/eula
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.20
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: SheetXL EULA — https://www.sheetxl.com/eula
|