@sheetxl/mcp 0.0.0-stage → 0.8.0-beta.14

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 (509) hide show
  1. package/LICENSE.md +11 -0
  2. package/README.md +72 -2
  3. package/agent/instructions.md +66 -0
  4. package/assets/2zIY9Xuml4y8NI05.js +596 -0
  5. package/assets/33QTHR3r6ZujxFx8.js +18 -0
  6. package/assets/8vRAQlvTcvMLeio0.js +1131 -0
  7. package/assets/9MRZ5Yc2RBgcqZSp.js +594 -0
  8. package/assets/9dbZwzIWefGss7is.js +52 -0
  9. package/assets/B-1_xSqUFCJ6jNjn.js +9109 -0
  10. package/assets/B-jE7tAMA559MtNt.js +37 -0
  11. package/assets/B5xHa5bjZu5ONrm5.js +638 -0
  12. package/assets/B66aeGYrHLbGpuN9.js +9137 -0
  13. package/assets/B6BP5l2qmeZhqVV7.js +7 -0
  14. package/assets/B6b9ytNrHR-ijcOa.js +30 -0
  15. package/assets/B9QlqO6n3MCBsvoj.js +504 -0
  16. package/assets/B9qiPx_BXxo1jgcx.js +2368 -0
  17. package/assets/B9w1dNK8pNq-Z1P3.js +142 -0
  18. package/assets/BDZ1FGc1zFqO1nK7.js +4036 -0
  19. package/assets/BFwNQZVRnbNt-gRJ.js +2260 -0
  20. package/assets/BMnNvUCJu35tT_aO.js +19 -0
  21. package/assets/BNfBq8Eic3Cl-f6A.js +184 -0
  22. package/assets/BOF64A2D2KKcv_fo.js +15 -0
  23. package/assets/BOcWUnxWSG1d5Ljc.js +447 -0
  24. package/assets/BW8XjynUqlfvuQUV.js +37 -0
  25. package/assets/BWsXOU_jh_cA8m8I.js +12 -0
  26. package/assets/BXC6616BWEWNZ2-D.js +63 -0
  27. package/assets/BYtBi8vLoB41QkV8.js +656 -0
  28. package/assets/B_-VPqfsse8AlCTm.js +81 -0
  29. package/assets/BiAEoWSl8c6jcUnS.js +28 -0
  30. package/assets/BkBCkgPNrFR5N9fo.js +19 -0
  31. package/assets/BmxgDCZk_aMDms4i.js +639 -0
  32. package/assets/BoTScfjgygCozDVi.js +23 -0
  33. package/assets/BwisWvPpXRhyIP4O.js +15 -0
  34. package/assets/ByziR0Anm39Bw0Bc.js +1556 -0
  35. package/assets/C-5LlJ5qhC7Ef0gV.js +12996 -0
  36. package/assets/C-CNmTrzNS-ZlQ8j.js +1760 -0
  37. package/assets/C1rIlmARlinuie5E.js +45 -0
  38. package/assets/C1w8NQeox7_92swz.js +35 -0
  39. package/assets/C2Rgsb69SnMOohGt.js +23 -0
  40. package/assets/C55MTJ_5qW94RElE.js +7514 -0
  41. package/assets/CBNNl8igIyeHY4St.js +780 -0
  42. package/assets/CDGeuGB9CBXeCIm6.js +12 -0
  43. package/assets/CH9M37mRwnS0t9wM.js +104 -0
  44. package/assets/CHHJZPAuM3OjbzF6.js +402 -0
  45. package/assets/CMTDUipnLiOj5pbe.js +610 -0
  46. package/assets/COFze3jkZDQRSij9.js +4437 -0
  47. package/assets/CPDkdp0yI4DwUHGZ.js +119 -0
  48. package/assets/CULV-2mwmqYYpAjM.js +119 -0
  49. package/assets/CVFTQ0OwsUt03r4o.js +146 -0
  50. package/assets/CXM1IYmE-TDInPwr.js +118 -0
  51. package/assets/CcLPa6zB5PH3OG2O.js +10289 -0
  52. package/assets/CdF5MxGnISAZ41oQ.js +359 -0
  53. package/assets/CeDqeFLuUfN8UIGx.js +17 -0
  54. package/assets/CfiVUfpeONJ3rf31.js +28 -0
  55. package/assets/Cfvhcua4c6onouhP.js +14 -0
  56. package/assets/CgjR_TiVOcuxg5tO.js +16 -0
  57. package/assets/CjwzOAnab_dpAqiG.js +144 -0
  58. package/assets/Cm3Q_-DDdnVHRBxr.js +351 -0
  59. package/assets/CpOhY88x6AgVxvTz.js +49 -0
  60. package/assets/CtpcYuBFU6fxsUhs.js +71 -0
  61. package/assets/CutEBbZl8oFbTlXZ.js +171 -0
  62. package/assets/CwJyw5Yxpj4PGh14.js +28 -0
  63. package/assets/CwdOInoJwCxXnhog.js +7 -0
  64. package/assets/D2_T0KSaye0ncjQa.js +6294 -0
  65. package/assets/D2w3KjYuONW1G1kX.js +86 -0
  66. package/assets/D3BAmD-1AfFtHdC6.js +242 -0
  67. package/assets/D81iH5MJJfq2t9FP.js +32 -0
  68. package/assets/D94hlZEaHtGHdN_K.js +202 -0
  69. package/assets/DBFXsbIHDxbMBrzV.js +319 -0
  70. package/assets/DCHsM8bfVisYJFTT.js +1783 -0
  71. package/assets/DIy1659Yv5-fD69E.js +123 -0
  72. package/assets/DK0VM9-qrEXBm8Ud.js +223 -0
  73. package/assets/DPazQ_nZv-sXUwO3.js +45 -0
  74. package/assets/DSSrCrejjpWoszj7.js +33 -0
  75. package/assets/DTlvhtB9hvPdbdxu.js +60493 -0
  76. package/assets/DUUt1z6Y_cpxEpYY.js +24 -0
  77. package/assets/DUYoUViqY5U6uQX3.js +18 -0
  78. package/assets/DUzaW_op2vBTwOOI.js +18 -0
  79. package/assets/DWTpPijG5yeNFR0W.js +14 -0
  80. package/assets/DZRp3_yqPS6Lshho.js +32 -0
  81. package/assets/DZZ5R3msiytVNCqK.js +199 -0
  82. package/assets/Df2IAW-O7Gwl7V1l.js +7 -0
  83. package/assets/Dfd7kvLIFNqu-m-r.js +51 -0
  84. package/assets/Dg7xy50qHwqkYd4g.js +1135 -0
  85. package/assets/DihigEGfNCLR8UPN.js +8 -0
  86. package/assets/DkFK1iu4vqjLZMja.js +3011 -0
  87. package/assets/DkPXpv81Y5teMd-R.js +20 -0
  88. package/assets/Dl87mJoXDkCkzBi7.js +3917 -0
  89. package/assets/DnmjS548g7nY6EUS.js +1860 -0
  90. package/assets/DoIU_ohoCBwTZV9G.js +310 -0
  91. package/assets/Doqy_uDSQTCv6a6X.js +35 -0
  92. package/assets/DpGuA6U12gwyGHEM.js +369 -0
  93. package/assets/DuZ6DXQGttY3Lrhd.js +5220 -0
  94. package/assets/Du_JrYiYGJo5_B9H.js +12 -0
  95. package/assets/DvD_K4M5HgJ4uJ8L.js +7 -0
  96. package/assets/EeSGsbh_r4N-qs4w.js +96 -0
  97. package/assets/GnXTzeDYWWeEf5yV.js +55 -0
  98. package/assets/HKLw8b2xTdu5c1w5.js +63 -0
  99. package/assets/KpCEdfpsHnfkyqjx.js +37 -0
  100. package/assets/OU7gC5JF-lyDOOid.js +27 -0
  101. package/assets/PRSerWiAGYu8MVnd.js +304 -0
  102. package/assets/PmooYGqWqoTxPExF.js +449 -0
  103. package/assets/QXKcNTuZqOauSidr.js +58 -0
  104. package/assets/ThqyayHHaBxzfaAt.js +255 -0
  105. package/assets/TzsPqmpG77I4ewVt.js +173 -0
  106. package/assets/UX2ywz3gr7q-MlHr.js +105 -0
  107. package/assets/W-MzzQHZuRxr8adc.js +2346 -0
  108. package/assets/ZBYHyJs7CQgnnHfR.js +362 -0
  109. package/assets/ZTEO4JX22YIOkrJg.js +8338 -0
  110. package/assets/a7BoASyT8yQZY9hJ.js +22 -0
  111. package/assets/aqguaobnu61szXWM.js +22 -0
  112. package/assets/cdIvC9t9tYtVn4nc.js +405 -0
  113. package/assets/cv7k-VAIJtYeL9k4.js +23 -0
  114. package/assets/ddJqSu7gXUkXjGxZ.js +13 -0
  115. package/assets/eHAVGCUcMAfNjEGt.js +7 -0
  116. package/assets/hRLLK6I6m0uGKWo8.js +32 -0
  117. package/assets/mcFLzsOH35mvmd3C.js +145 -0
  118. package/assets/st-UQngeBG4hwKoy.js +47 -0
  119. package/assets/w8YWSMNTTn45ImnB.js +857 -0
  120. package/assets/yNiBIhsMP9BCWd67.js +28 -0
  121. package/assets/zu-72oKE_gCkrozc.js +540 -0
  122. package/index.js +8070 -0
  123. package/lib.js +7 -0
  124. package/licenses/dependencies.txt +1552 -0
  125. package/package.json +44 -3
  126. package/resources/contents.json +333 -0
  127. package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
  128. package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
  129. package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
  130. package/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
  131. package/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
  132. package/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
  133. package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
  134. package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
  135. package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
  136. package/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
  137. package/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
  138. package/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
  139. package/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
  140. package/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
  141. package/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
  142. package/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
  143. package/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
  144. package/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
  145. package/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
  146. package/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
  147. package/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
  148. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
  149. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
  150. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
  151. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
  152. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
  153. package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
  154. package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
  155. package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
  156. package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
  157. package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
  158. package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
  159. package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
  160. package/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
  161. package/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
  162. package/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
  163. package/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
  164. package/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
  165. package/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
  166. package/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
  167. package/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
  168. package/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
  169. package/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
  170. package/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
  171. package/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
  172. package/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
  173. package/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
  174. package/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
  175. package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
  176. package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
  177. package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
  178. package/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
  179. package/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
  180. package/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
  181. package/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
  182. package/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
  183. package/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
  184. package/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
  185. package/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
  186. package/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
  187. package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
  188. package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
  189. package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
  190. package/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
  191. package/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
  192. package/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
  193. package/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
  194. package/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
  195. package/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
  196. package/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
  197. package/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
  198. package/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
  199. package/resources/fonts/@sheetxl/sdk/contents.json +646 -0
  200. package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
  201. package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
  202. package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
  203. package/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
  204. package/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
  205. package/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
  206. package/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
  207. package/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
  208. package/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
  209. package/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
  210. package/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
  211. package/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
  212. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
  213. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
  214. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
  215. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
  216. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
  217. package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
  218. package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
  219. package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
  220. package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
  221. package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
  222. package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
  223. package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
  224. package/resources/locales/@sheetxl/formulas/contents.json +9 -0
  225. package/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
  226. package/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
  227. package/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
  228. package/resources/locales/@sheetxl/sdk/contents.json +19 -0
  229. package/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
  230. package/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
  231. package/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
  232. package/screenshot-page/assets/-cpi3yOZYn6GsYN4.js +9 -0
  233. package/screenshot-page/assets/-i_fTASJeu9NdNH_.js +7 -0
  234. package/screenshot-page/assets/04d8koPx6lzeMYRQ.js +39 -0
  235. package/screenshot-page/assets/0MTaPYjKud2Q9QG9.js +1 -0
  236. package/screenshot-page/assets/21oAESJyBGXeHegm.js +2 -0
  237. package/screenshot-page/assets/3Ls_kOvlQseMV8Q0.js +1 -0
  238. package/screenshot-page/assets/4qZpl2QCzneWdmJO.js +1 -0
  239. package/screenshot-page/assets/6IEV7KeOEbBdrthj.js +1 -0
  240. package/screenshot-page/assets/8QrkTrKHDnMBb7q4.js +1 -0
  241. package/screenshot-page/assets/9w0ECZmzGUyk3F_O.js +1 -0
  242. package/screenshot-page/assets/AjS2PipZDIH3BXB2.js +1 -0
  243. package/screenshot-page/assets/B-KIwD5F_5S-NsPg.js +1 -0
  244. package/screenshot-page/assets/B-sAzW5ROrhvMGM4.js +1 -0
  245. package/screenshot-page/assets/B0FQypGas6gbGT_U.js +1 -0
  246. package/screenshot-page/assets/B2IQMVqTZT1rUnib.js +1 -0
  247. package/screenshot-page/assets/B2g3jiFIQ4Qjh5gG.js +1 -0
  248. package/screenshot-page/assets/B4PbXdzBe9BsoZ0e.js +2 -0
  249. package/screenshot-page/assets/B5GO9v4p9L70Xb9i.js +1 -0
  250. package/screenshot-page/assets/B8y_eLNCGnXLEIaE.js +1 -0
  251. package/screenshot-page/assets/BCl5buf87xUgIfEB.js +2 -0
  252. package/screenshot-page/assets/BEuMvXYIa9A1JacY.js +1 -0
  253. package/screenshot-page/assets/BEwl-ucV9Jfr0RoC.js +1 -0
  254. package/screenshot-page/assets/BFaiQZKle44Rhyou.js +1 -0
  255. package/screenshot-page/assets/BHqg55S-4_OoAu3P.js +2 -0
  256. package/screenshot-page/assets/BNgLvS2bLOYKRguv.js +1 -0
  257. package/screenshot-page/assets/BQAN82ftWBiLJT3r.js +1 -0
  258. package/screenshot-page/assets/BQfe-XTIOGeUnD9B.js +1 -0
  259. package/screenshot-page/assets/BQnELVV0uR4T4ItQ.js +1 -0
  260. package/screenshot-page/assets/BRVZJ0OGJg9XJro6.js +1 -0
  261. package/screenshot-page/assets/BRqSWCr2mTVNFquQ.js +1 -0
  262. package/screenshot-page/assets/BTOQaSn9DDyJPUlX.js +1 -0
  263. package/screenshot-page/assets/BUGXf2DEBog16Slb.js +2 -0
  264. package/screenshot-page/assets/BUjI304IvdJnFXH3.js +1 -0
  265. package/screenshot-page/assets/BYRwTzX1q407lHUS.js +2 -0
  266. package/screenshot-page/assets/Baz0SC2AgGyxMX72.js +1 -0
  267. package/screenshot-page/assets/BbP9KThfrodyosvn.js +1 -0
  268. package/screenshot-page/assets/BcOdl17EeFSxnAiq.js +1 -0
  269. package/screenshot-page/assets/BclKeOKIOBjijhsu.js +1 -0
  270. package/screenshot-page/assets/Bf7xq8PyF4ohjMzP.js +2 -0
  271. package/screenshot-page/assets/BimyzECCZl-NESff.js +1 -0
  272. package/screenshot-page/assets/BkLH7JH3A93TXFJi.js +1 -0
  273. package/screenshot-page/assets/BksaQEoZr5OWq-_d.js +3 -0
  274. package/screenshot-page/assets/Bor_tayB4yBfNOH5.js +2 -0
  275. package/screenshot-page/assets/BowRIybLgENunTOT.js +1 -0
  276. package/screenshot-page/assets/Bp7se0JaDGrzfSA_.js +1 -0
  277. package/screenshot-page/assets/Bwql3QifB2cv7Mqp.js +3 -0
  278. package/screenshot-page/assets/Bx61vmiWY0Xvx9qs.js +1 -0
  279. package/screenshot-page/assets/ByY3fmwyDPAyOLdo.js +1 -0
  280. package/screenshot-page/assets/Bz2U7weS0spa8Xbh.js +1 -0
  281. package/screenshot-page/assets/Bz5V1tmiy5gbT9ys.js +1 -0
  282. package/screenshot-page/assets/Bz9v1lgjvbu4QnOs.js +2 -0
  283. package/screenshot-page/assets/C1k_VrZqlpiUigCP.js +1 -0
  284. package/screenshot-page/assets/C2Wh2h27c7FUb8Yk.js +1 -0
  285. package/screenshot-page/assets/C6oLDVnuCS9LGkkH.js +1 -0
  286. package/screenshot-page/assets/C81mK8aZKZAAS-AB.js +1 -0
  287. package/screenshot-page/assets/C9SC-cEIt6gdhZRw.js +1 -0
  288. package/screenshot-page/assets/CE0MnsfMjqV2ICzk.js +57 -0
  289. package/screenshot-page/assets/CE8MCCIiwjOVwBBW.js +1 -0
  290. package/screenshot-page/assets/CFOaI8g7pJuPzsyk.js +1 -0
  291. package/screenshot-page/assets/CG3ynup87FmG-kkX.js +1 -0
  292. package/screenshot-page/assets/CHlWgOAlcRCjVuhg.js +1 -0
  293. package/screenshot-page/assets/CIged53b3hHKxa-o.js +1 -0
  294. package/screenshot-page/assets/CNQczIR5xcE5u5fT.js +1 -0
  295. package/screenshot-page/assets/CSUd8n1H0VBfREnk.js +2 -0
  296. package/screenshot-page/assets/CSlBTkRDITCC8JRB.js +1 -0
  297. package/screenshot-page/assets/CV2jr9hpQOG2OG0C.js +1 -0
  298. package/screenshot-page/assets/CXGgKVbVXjWzE0p6.js +1 -0
  299. package/screenshot-page/assets/CXKCmZ_TRyGaB9Ob.js +1 -0
  300. package/screenshot-page/assets/CXUO3vYip3JPSJ7A.js +1 -0
  301. package/screenshot-page/assets/CXwbGzavyvYgDbWU.js +1 -0
  302. package/screenshot-page/assets/CZf9s6otzzoaBlSs.js +1 -0
  303. package/screenshot-page/assets/CZvwQEeVhBilgKLG.js +1 -0
  304. package/screenshot-page/assets/Ca6nxdhEuLLty3d7.js +2 -0
  305. package/screenshot-page/assets/CbUDukmvDZmVfhJH.js +1 -0
  306. package/screenshot-page/assets/CbXtAM7H-Jg_J0dk.js +1 -0
  307. package/screenshot-page/assets/CctIRGMFmARVi2KT.js +1 -0
  308. package/screenshot-page/assets/Cenh1POxiGMxIQlv.js +1 -0
  309. package/screenshot-page/assets/ChSvXfVMLxZsP9zG.js +8 -0
  310. package/screenshot-page/assets/Ci5NtzhJLll1kxGf.js +10 -0
  311. package/screenshot-page/assets/CjngjJNheGaVRvZp.js +1 -0
  312. package/screenshot-page/assets/ClzdIJrFdInttVJA.js +1 -0
  313. package/screenshot-page/assets/CnPgk3HcIziOcskY.js +10 -0
  314. package/screenshot-page/assets/CnXLpFE_vFrJ5Jbf.js +1 -0
  315. package/screenshot-page/assets/CnZJ44ncMxZ4ivcB.js +586 -0
  316. package/screenshot-page/assets/CpbohdgEaEsVDi9J.js +1 -0
  317. package/screenshot-page/assets/CqR3hGrC956TkCMj.js +20 -0
  318. package/screenshot-page/assets/Cr1tQKUBVKOQl3QC.js +1 -0
  319. package/screenshot-page/assets/Cv8FG9PPBkkPw86e.js +1 -0
  320. package/screenshot-page/assets/CvL9XK3Ht1mP-rGz.js +4 -0
  321. package/screenshot-page/assets/CykecBozGGFl26KA.js +3940 -0
  322. package/screenshot-page/assets/CzTizxHhb-CI_ajE.js +1 -0
  323. package/screenshot-page/assets/CzzEl3lAkZopkwhC.js +1 -0
  324. package/screenshot-page/assets/D-LgRj0s-PAVqY-L.js +1 -0
  325. package/screenshot-page/assets/D-XR1MGhwn7Jqj60.js +1 -0
  326. package/screenshot-page/assets/D47ePD4x1lVazNdl.js +7 -0
  327. package/screenshot-page/assets/D6Jpaz2YkhOfzxDB.js +1 -0
  328. package/screenshot-page/assets/D9zCVZpnJBfNSNO2.js +1 -0
  329. package/screenshot-page/assets/DDQWM8rNYCYzKa9R.js +1 -0
  330. package/screenshot-page/assets/DDpAoGAPzo1c4vl5.js +27 -0
  331. package/screenshot-page/assets/DGXDfjkGZjMRAXPg.js +5 -0
  332. package/screenshot-page/assets/DHa5_U58lSwCnpmG.js +1 -0
  333. package/screenshot-page/assets/DKVB6ddRfDJatYid.js +1 -0
  334. package/screenshot-page/assets/DM9U7u7FQK0jcwh4.js +1 -0
  335. package/screenshot-page/assets/DNDaHmkQrQTaCHhV.js +1 -0
  336. package/screenshot-page/assets/DQ0kGd99-fXxuNYk.js +1 -0
  337. package/screenshot-page/assets/DQWHkaQeNXft9j8b.js +2 -0
  338. package/screenshot-page/assets/DRVfGdmVBvktrZ1t.js +1 -0
  339. package/screenshot-page/assets/DRrM-dY9nM7nDRpV.js +1 -0
  340. package/screenshot-page/assets/DT2x1gO3f2G5NfeB.js +1 -0
  341. package/screenshot-page/assets/DU3FmyUH0RjPIBd-.js +1 -0
  342. package/screenshot-page/assets/DUJzubL4qqOyizfu.js +1 -0
  343. package/screenshot-page/assets/DVueE--eOrZPrqrm.js +1 -0
  344. package/screenshot-page/assets/DWiI5I3RtoKvVT66.js +1 -0
  345. package/screenshot-page/assets/DYJSIlNxrNw8qk-w.js +1 -0
  346. package/screenshot-page/assets/DYRbCudWTaiE_Sjc.js +1 -0
  347. package/screenshot-page/assets/DZDRRw-62D6Zw7qs.js +1 -0
  348. package/screenshot-page/assets/D_H2dlsQ8PJ0r1WD.js +10 -0
  349. package/screenshot-page/assets/DaKZ4-Li_ULIIwnK.js +1 -0
  350. package/screenshot-page/assets/DadZXeaVK5UXSHIi.js +1 -0
  351. package/screenshot-page/assets/Db_VGqQo2G2JgXWW.js +1 -0
  352. package/screenshot-page/assets/DceNHPrRLok2At-X.js +1 -0
  353. package/screenshot-page/assets/DcrVJCyDwGKeil2U.js +1 -0
  354. package/screenshot-page/assets/DeAKjatTVaZ0u_FY.js +1 -0
  355. package/screenshot-page/assets/DmMZ4pd492HPw_3_.js +1 -0
  356. package/screenshot-page/assets/DmbuCapSSCYIa3yk.js +1 -0
  357. package/screenshot-page/assets/Dpepompn_NhpSncR.js +1 -0
  358. package/screenshot-page/assets/DqM1wwsmN1J4MXMm.js +1 -0
  359. package/screenshot-page/assets/DqYhS4mcQfOe96hU.js +1 -0
  360. package/screenshot-page/assets/DsL71n5SxCVjL6Ho.js +2 -0
  361. package/screenshot-page/assets/DyGpT6t96jrvgJes.js +1 -0
  362. package/screenshot-page/assets/DyLWQxXXTw5uwPVy.js +30 -0
  363. package/screenshot-page/assets/DyYVf8O1rhg3YmjW.js +1 -0
  364. package/screenshot-page/assets/DyxJBLjUkeDuu96F.js +1 -0
  365. package/screenshot-page/assets/DzZRUd0p22CBa27b.js +1 -0
  366. package/screenshot-page/assets/HclGiUj8dZXDFmoM.js +1 -0
  367. package/screenshot-page/assets/IRtoU5oVgBWu9rnK.js +2 -0
  368. package/screenshot-page/assets/IfF7Tv-nhz6Ikpn0.js +1 -0
  369. package/screenshot-page/assets/J73KTOmdZGNmnq-z.js +1 -0
  370. package/screenshot-page/assets/J_xJVgE7YlmeU-ZO.js +6 -0
  371. package/screenshot-page/assets/KoxRo2J_cwB_yOd5.js +2 -0
  372. package/screenshot-page/assets/LVtV_IPhPQroHRui.js +1 -0
  373. package/screenshot-page/assets/MNoPOsydrUv1UGU8.js +2 -0
  374. package/screenshot-page/assets/Miyn0clMq0rovRIo.js +1 -0
  375. package/screenshot-page/assets/Rm5Sf5E6t8bk_Y3r.js +1 -0
  376. package/screenshot-page/assets/b3AbgxQkoaCiBi15.js +1 -0
  377. package/screenshot-page/assets/fGlPAximvsxzPzGA.js +1 -0
  378. package/screenshot-page/assets/gG0AFZ45VxS_moMw.js +2 -0
  379. package/screenshot-page/assets/nHThFXCAZFOM_npq.js +1 -0
  380. package/screenshot-page/assets/pRykm05ElquZBk_a.js +1 -0
  381. package/screenshot-page/assets/qm3VY0bH7F7EgSdi.js +2 -0
  382. package/screenshot-page/assets/rPOkVKdPbFpTG6AY.js +1 -0
  383. package/screenshot-page/assets/w3bV7wggRayUYTd-.js +1 -0
  384. package/screenshot-page/assets/zFbb8ESzwR_bE7IQ.js +1 -0
  385. package/screenshot-page/assets/zHHZFbk5RXnrxbOc.js +42 -0
  386. package/screenshot-page/index.html +44 -0
  387. package/screenshot-page/resources/contents.json +333 -0
  388. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
  389. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
  390. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
  391. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
  392. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
  393. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
  394. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
  395. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
  396. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
  397. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
  398. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
  399. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
  400. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
  401. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
  402. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
  403. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
  404. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
  405. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
  406. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
  407. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
  408. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
  409. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
  410. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
  411. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
  412. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
  413. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
  414. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
  415. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
  416. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
  417. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
  418. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
  419. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
  420. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
  421. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
  422. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
  423. package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
  424. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
  425. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
  426. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
  427. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
  428. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
  429. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
  430. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
  431. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
  432. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
  433. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
  434. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
  435. package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
  436. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
  437. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
  438. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
  439. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
  440. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
  441. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
  442. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
  443. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
  444. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
  445. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
  446. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
  447. package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
  448. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
  449. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
  450. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
  451. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
  452. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
  453. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
  454. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
  455. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
  456. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
  457. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
  458. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
  459. package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
  460. package/screenshot-page/resources/fonts/@sheetxl/sdk/contents.json +646 -0
  461. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
  462. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
  463. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
  464. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
  465. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
  466. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
  467. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
  468. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
  469. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
  470. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
  471. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
  472. package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
  473. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
  474. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
  475. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
  476. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
  477. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
  478. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
  479. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
  480. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
  481. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
  482. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
  483. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
  484. package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
  485. package/screenshot-page/resources/locales/@sheetxl/formulas/contents.json +9 -0
  486. package/screenshot-page/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
  487. package/screenshot-page/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
  488. package/screenshot-page/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
  489. package/screenshot-page/resources/locales/@sheetxl/sdk/contents.json +19 -0
  490. package/screenshot-page/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
  491. package/screenshot-page/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
  492. package/screenshot-page/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
  493. package/types/index.d.ts +1 -0
  494. package/types/lib.d.ts +2 -0
  495. package/types/scripting-api.json +10855 -0
  496. package/types/scripting-enums.json +1339 -0
  497. package/types/scripting.d.ts +49295 -0
  498. package/types/src/SessionRegistry.d.ts +630 -0
  499. package/types/src/index.d.ts +3 -0
  500. package/types/src/instances.d.ts +104 -0
  501. package/types/src/lib/Types.d.ts +17 -0
  502. package/types/src/lib/index.d.ts +2 -0
  503. package/types/src/lib/runReport.d.ts +158 -0
  504. package/types/src/lib.d.ts +2 -0
  505. package/types/src/prepareRun.d.ts +56 -0
  506. package/types/src/relay.d.ts +102 -0
  507. package/types/src/screenshot.d.ts +23 -0
  508. package/types/src/server.d.ts +37 -0
  509. package/types/src/taskStore.d.ts +28 -0
@@ -0,0 +1,656 @@
1
+ /**
2
+ * @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.14
3
+ *
4
+ * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */
7
+ import { ht as e } from "./DkFK1iu4vqjLZMja.js";
8
+ import { c as t, p as n, r as a } from "./CBNNl8igIyeHY4St.js";
9
+ import { c as r, s as i } from "./D94hlZEaHtGHdN_K.js";
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
+ ["IWorkbook", "workbook"],
12
+ ["IWorksheet", "sheet"],
13
+ ["ICellRanges", "ranges"],
14
+ ["ICellRange", "range"]
15
+ ]), d = Array.from(l.keys()), u = (e, t) => {
16
+ Array.from(t.keys()).forEach((n) => {
17
+ const a = t.get(n);
18
+ t.set(`${e}.${n}`, a);
19
+ });
20
+ }, m = /* @__PURE__ */ new Map([
21
+ ["Scalar", "*"],
22
+ ["Lambda", "l"],
23
+ ["FormulaError.Known", n.Error],
24
+ ["Date", a.Date],
25
+ ["IRichData", a.RichData]
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
+ const t = e.typeName.getText();
28
+ return t.startsWith(`${x}.`) ? t.slice(8) : t;
29
+ };
30
+ u(x, o), u(x, l), u(x, c), g.add(x + ".AcceptError"), y.add(`${x}.Omittable`), f.add(`${x}.NoLift`), h.add(`${x}.NoFilter`), v.add(`${x}.Lazy`), $.add(`${x}.ReportType`);
31
+ var k = /* @__PURE__ */ new Map([["Volatile", () => ({ volatile: !0 })], [`${x}.Volatile`, () => ({ volatile: !0 })]]), A = "__scriptContext__", R = "script", N = /* @__PURE__ */ new Set([
32
+ "IScript.ScriptContext",
33
+ `${x}.IScript.ScriptContext`,
34
+ "ScriptContext"
35
+ ]), K = (e, t) => {
36
+ const n = t.literal;
37
+ if (void 0 === n) return;
38
+ const a = e.SyntaxKind;
39
+ switch (n.kind) {
40
+ case a.StringLiteral: return n.text;
41
+ case a.NumericLiteral: return parseFloat(n.text);
42
+ case a.TrueKeyword: return !0;
43
+ case a.FalseKeyword: return !1;
44
+ case a.NullKeyword: return null;
45
+ case a.PrefixUnaryExpression: return n.operator === a.MinusToken && n.operand?.kind === a.NumericLiteral ? -parseFloat(n.operand.text) : void 0;
46
+ default: return;
47
+ }
48
+ }, L = (e) => {
49
+ if (!e || 0 === e.length) return "";
50
+ let t = "";
51
+ for (let n = 0; n < e.length; n++) {
52
+ const a = e[n], r = a.kind;
53
+ if ("link" !== r) {
54
+ if ("linkName" === r) {
55
+ const r = e[n + 1];
56
+ if ("linkText" === r?.kind && r.text.trim()) continue;
57
+ t += a.text;
58
+ continue;
59
+ }
60
+ t += "linkText" !== r ? a.text : a.text.trim();
61
+ }
62
+ }
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
+ };
65
+ function I(t, a, u, I) {
66
+ const E = I?.builtInNames?.length ? new Set(I.builtInNames.map((e) => e.toUpperCase())) : null, F = [], D = /* @__PURE__ */ new Map(), M = [];
67
+ let C = null;
68
+ const P = (e, t, n, a) => {
69
+ const { start: r, length: i } = ((e) => {
70
+ if (!e || "function" != typeof e.getStart) return {
71
+ start: 0,
72
+ length: 0
73
+ };
74
+ try {
75
+ return {
76
+ start: e.getStart(),
77
+ length: e.getWidth()
78
+ };
79
+ } catch {
80
+ return {
81
+ start: 0,
82
+ length: 0
83
+ };
84
+ }
85
+ })(e);
86
+ M.push({
87
+ start: r,
88
+ length: i,
89
+ severity: n,
90
+ code: t,
91
+ message: a
92
+ });
93
+ }, U = (e, t, n) => {
94
+ P(e, t, "error", n);
95
+ }, z = (e) => e?.parent?.name?.escapedText;
96
+ let O = null;
97
+ const j = (e, t, n, a, i = !1, o = !1, s = !1) => {
98
+ const l = { count: 0 }, d = Q(e, t, n, a, l, i, o, s);
99
+ l.count >= 2 && (t.range || (t.range = "m", l.count -= 2), !a && l.count >= 1 && (l.count -= 1, l.count > 0 && U(e, r.ArrayDepth, `Arrays of more than 2 dimensions are not supported: '${z(e)}'.`))), l.count > 0 && (t.arrayDepth = l.count);
100
+ const u = t.enum;
101
+ return u && (l.count > (s ? 1 : 0) || t.range) && !q.has(t) && (t.valueOrRange || (U(e, r.EnumPosition, `A list cannot hold the enum '${u.id}': '${t.name ?? z(e)}'. Its members reach the body as they are, so nothing checks them against the enum. Take one value per argument ('...x: ${u.id}[]'), or type the list by its scalar ('${u.type}').`), delete t.enum)), d;
102
+ }, V = (e, n, a, r, i) => {
103
+ if ("Lambda" !== n && n !== `${x}.Lambda`) return !1;
104
+ const o = e.typeArguments;
105
+ let s = "*";
106
+ if (o && 2 === o.length) if (i && o[0].kind === t.SyntaxKind.TupleType && (a.lambdaArity = o[0].elements.length), o[1].kind === t.SyntaxKind.AnyKeyword) s = "raw";
107
+ else {
108
+ const e = {};
109
+ Q(o[1], e, r, !1, { count: 0 }), s = e.scalar ?? "*";
110
+ }
111
+ else if (o && 1 === o.length && o[0].kind !== t.SyntaxKind.TupleType && o[0].kind !== t.SyntaxKind.ArrayType) if (i && (a.lambdaArity = 2), o[0].kind === t.SyntaxKind.AnyKeyword) s = "raw";
112
+ else {
113
+ const e = {};
114
+ Q(o[0], e, r, !1, { count: 0 }), s = e.scalar ?? "*";
115
+ }
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() === 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
+ const t = e.getJsDocTags(u).find((e) => "deprecated" === e.name);
119
+ if (t) return t.text?.map((e) => e.text).join("").trim() || !0;
120
+ }, H = (e, i) => {
121
+ const o = t.isTypeReferenceNode(e) ? e.typeName : void 0, s = o ? u.getSymbolAtLocation(o) : void 0, l = s?.declarations?.length ? s : void 0;
122
+ if (o) {
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
+ if (!(l && l.flags & t.SymbolFlags.Type)) {
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
+ }
128
+ const n = G.get(l);
129
+ if (void 0 !== n) return n;
130
+ if (J.has(l)) return;
131
+ }
132
+ const d = [];
133
+ let m = !1;
134
+ if (l && l.flags & t.SymbolFlags.Enum) {
135
+ if (!l.declarations?.some(W)) return void U(e, r.EnumNotLocal, `'${l.name}' is not declared in this module: '${i}'. An enum must be declared in the module that uses it.`);
136
+ m = !0;
137
+ let n = !1;
138
+ if (l.exports?.forEach((e) => {
139
+ const a = e.valueDeclaration;
140
+ if (!a || !t.isEnumMember(a)) return;
141
+ const i = u.getConstantValue(a);
142
+ if (void 0 === i) return U(a, r.EnumMemberNotConstant, `'${l.name}.${e.name}' is not a constant number or string. A formula passes the VALUE, so every member needs one that can be read at compile time.`), void (n = !0);
143
+ d.push([
144
+ X(e, !0),
145
+ i,
146
+ a,
147
+ L(e.getDocumentationComment(u)),
148
+ Z(e)
149
+ ]);
150
+ }), n) return void J.add(l);
151
+ } else {
152
+ const n = u.getTypeFromTypeNode(e), a = t.TypeFlags.Null | t.TypeFlags.Undefined | t.TypeFlags.Void, r = (n.isUnion() ? n.types : [n]).filter((e) => !(e.flags & a)), i = [];
153
+ for (const e of r) {
154
+ if (!(e.flags & (t.TypeFlags.NumberLiteral | t.TypeFlags.StringLiteral))) return l && G.set(l, null), null;
155
+ i.push(e.value);
156
+ }
157
+ if (0 === i.length) return null;
158
+ const o = l?.declarations?.find((e) => t.isTypeAliasDeclaration(e)), s = t.isUnionTypeNode(e) ? e : o?.type;
159
+ if (s && t.isUnionTypeNode(s)) {
160
+ const e = s.types.map((e) => {
161
+ const t = u.getTypeFromTypeNode(e);
162
+ return t.isLiteral() ? t.value : void 0;
163
+ }), t = (t) => {
164
+ const n = e.indexOf(t);
165
+ return n < 0 ? e.length : n;
166
+ };
167
+ i.sort((e, n) => t(e) - t(n));
168
+ }
169
+ const c = l && l.flags & t.SymbolFlags.Variable ? l.valueDeclaration : void 0, p = new Set(i);
170
+ if (l && c && W(c)) for (const e of u.getTypeOfSymbolAtLocation(l, c).getProperties()) {
171
+ const n = e.valueDeclaration, a = u.getTypeOfSymbolAtLocation(e, n ?? c);
172
+ if (!(a.flags & (t.TypeFlags.NumberLiteral | t.TypeFlags.StringLiteral))) continue;
173
+ const r = a.value;
174
+ i.includes(r) && (m = !0, p.delete(r), d.push([
175
+ X(e, !0),
176
+ r,
177
+ n,
178
+ L(e.getDocumentationComment(u)),
179
+ Z(e)
180
+ ]));
181
+ }
182
+ for (const e of i) p.has(e) && d.push([
183
+ String(e),
184
+ e,
185
+ void 0,
186
+ null
187
+ ]);
188
+ }
189
+ if (0 === d.length) return null;
190
+ const c = "number" == typeof d[0][1];
191
+ if (d.some(([, e]) => "number" == typeof e !== c)) return void U(e, r.EnumMixed, `'${l?.name ?? e.getText()}' mixes number and string members: '${i}'. A parameter has one type, so an enum is all numbers or all strings.`);
192
+ const p = l ? X(l) : d.map(([, e]) => String(e)).join("|"), g = l ? void 0 : B.get(p);
193
+ if (g) return g;
194
+ if (m) {
195
+ const t = /* @__PURE__ */ new Map();
196
+ for (const [n, a, i, o] of d) {
197
+ const s = i?.name?.getText() ?? n, l = t.get(a);
198
+ void 0 !== l ? P(i ?? e, r.EnumDuplicateValue, "warning", `'${p}.${s}' has the same value as '${p}.${l}' (${JSON.stringify(a)}). A formula passes the value, so the two cannot be told apart.`) : t.set(a, s), "" === o && P(i ?? e, r.EnumMemberUndocumented, "warning", `'${p}.${s}' is missing a description. Add a doc comment above the member — it is what the argument dropdown shows.`);
199
+ }
200
+ }
201
+ const y = {
202
+ id: p,
203
+ type: c ? n.Number : n.String,
204
+ members: d.map(([e, t, , , n]) => n ? [
205
+ e,
206
+ t,
207
+ n
208
+ ] : [e, t])
209
+ };
210
+ l ? G.set(l, y) : B.set(p, y);
211
+ const f = l ? L(l.getDocumentationComment(u)) : "", h = {};
212
+ for (const [e, , , t] of d) t && (h[e] = { description: t });
213
+ if (f || Object.keys(h).length > 0) {
214
+ const e = {};
215
+ f && (e.summary = f), Object.keys(h).length > 0 && (e.members = h), _.set(y, e);
216
+ }
217
+ return y;
218
+ }, Q = (e, a, i, s, u, b = !1, T = !1, w = !1) => {
219
+ if (e) {
220
+ if (e.kind === t.SyntaxKind.ParenthesizedType) return Q(e.type, a, i, s, u, b, T, w);
221
+ if (e.kind === t.SyntaxKind.UnionType) {
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
+ if (void 0 === d) return;
226
+ if (null !== d) return a.scalar = d.type, void (s && (a.enum = d));
227
+ if (!s) return void (a.scalar = "*");
228
+ if (2 === l.length) {
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
+ }
232
+ if (s && 2 === l.length) {
233
+ const e = (e) => {
234
+ if (e.kind === t.SyntaxKind.TypeReference && !e.typeArguments?.length) return o.get(S(e));
235
+ }, n = l.findIndex((t) => void 0 !== e(t));
236
+ if (n >= 0 && void 0 === e(l[1 - n])) {
237
+ const t = {}, r = u.count;
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
+ const r = t.enum;
241
+ r && (a.enum = r);
242
+ return;
243
+ }
244
+ }
245
+ }
246
+ if (s && 2 === l.length) {
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
+ if (void 0 === t) return;
251
+ if (null !== t) return a.scalar = "*", void (a.enum = t);
252
+ }
253
+ }
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
+ return;
256
+ }
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
+ else if (e.kind === t.SyntaxKind.UndefinedKeyword || e.kind === t.SyntaxKind.NullKeyword || e.kind === t.SyntaxKind.VoidKeyword) {
261
+ if (s) return void U(e, r.UndefinedInput, `'undefined' is not a valid type for input: '${z(e)}'.`);
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
+ else if (e.kind === t.SyntaxKind.ArrayType) {
266
+ const t = e.elementType;
267
+ if (!t) return void U(e, r.UntypedArray, `'Array' must be typed: '${z(e)}'.`);
268
+ if (s && T) {
269
+ const n = a, r = n.name ?? z(e) ?? "parameter", o = n.acceptError;
270
+ delete n.acceptError;
271
+ const s = { name: r };
272
+ j(t, s, i, !0), o && !s.acceptError && (s.acceptError = !0), n.repeating = [s];
273
+ return;
274
+ }
275
+ u.count++, Q(t, a, i, s, u);
276
+ } else if (e.kind !== t.SyntaxKind.TupleType) if (e.kind === t.SyntaxKind.TypeReference) {
277
+ const n = S(e);
278
+ if (g.has(n)) {
279
+ const t = z(e);
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
+ if (o.acceptError) return void U(e, r.InvalidParamType, `'${t}' declares 'AcceptError' more than once.`);
283
+ const l = e.typeArguments;
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
+ }
286
+ if ($.has(n)) {
287
+ const t = a.name ?? z(e);
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
+ const o = e.typeArguments;
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
+ }
292
+ if (f.has(n)) {
293
+ const t = a.name ?? z(e);
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
+ const o = e.typeArguments;
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
+ l.noLift = !0;
299
+ const d = u.count;
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
+ return;
302
+ }
303
+ if (h.has(n)) {
304
+ const t = a.name ?? z(e);
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
+ const o = e.typeArguments;
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
+ l.noFilter = !0;
310
+ const d = u.count;
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
+ const m = l.repeating;
313
+ if (m) {
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.`);
315
+ m[0].noFilter = !0;
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
+ return;
318
+ }
319
+ if (y.has(n)) {
320
+ const o = a.name ?? z(e);
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
+ const l = e.typeArguments;
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
+ if (d.omittable = !0, 2 === l.length) {
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
+ }
330
+ const m = Q(l[0], a, i, s, u, b, T, w), c = d.omittedValue;
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
+ }
333
+ if (v.has(n)) {
334
+ const o = a.name ?? z(e);
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 = a;
337
+ if (l.lazy) return void U(e, r.InvalidParamType, `'${o}' declares 'Lazy' more than once.`);
338
+ const d = e.typeArguments;
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
+ if (l.lazy = !0, 2 === d.length) {
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
+ }
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
+ return;
347
+ }
348
+ if (p.has(n)) {
349
+ const t = a.name ?? z(e);
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
+ const o = e.typeArguments;
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
+ }
354
+ if ("repeating" === c.get(n)) {
355
+ const o = a.name ?? z(e);
356
+ if (!s) return void U(e, r.RepeatingPosition, `'Repeating' is not a valid return type: '${o}'.`);
357
+ if (0 !== u.count) return void U(e, r.RepeatingPosition, `'Repeating' cannot be nested inside another type: '${o}'.`);
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
+ let m;
361
+ if (2 === d.length) {
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
+ m = s, i.maxArguments = s;
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], a, i, s, u, b, T);
367
+ const c = l.acceptError;
368
+ delete l.acceptError;
369
+ const p = ((e, n, a, i) => {
370
+ const o = (e, t, n) => {
371
+ const r = { name: e };
372
+ return j(t, r, a, !0), n && (r.optional = !0), i && !r.acceptError && (r.acceptError = !0), r;
373
+ };
374
+ if (e.kind !== t.SyntaxKind.TupleType) return [o(n, e, !1)];
375
+ const s = e.elements;
376
+ if (s.length < 2) return U(e, r.RepeatingSlots, `'${n}': a repeating group of period ${s.length} must be spelled 'Repeating<T>' without the tuple.`), null;
377
+ const l = [];
378
+ for (let e = 0; e < s.length; e++) {
379
+ const a = s[e];
380
+ if (a.kind !== t.SyntaxKind.NamedTupleMember) return U(a, r.RepeatingSlots, `'${n}': every slot of a repeating group must be labelled, e.g. 'Repeating<[criteriaRange: IRange, criteria: Scalar]>'.`), null;
381
+ const i = !!a.questionToken;
382
+ if (i && e !== s.length - 1) return U(a, r.RepeatingOptional, `'${n}': only the LAST slot of a repeating group may be optional (slot '${a.name?.getText?.()}' is not).`), null;
383
+ l.push(o(a.name?.getText?.() ?? `${e}`, a.type, i));
384
+ }
385
+ return l;
386
+ })(d[0], o ?? "parameter", i, c);
387
+ p && (l.repeating = p);
388
+ return;
389
+ }
390
+ const R = o.get(n);
391
+ let L = !1;
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
+ if (s) {
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
+ if (t) return t;
400
+ } else if ("Promise" === n) O = e, L = !0;
401
+ else {
402
+ const e = k.get(n);
403
+ e && (Object.assign(a, e()), L = !0);
404
+ }
405
+ if (!L) {
406
+ const t = H(e, a.name ?? z(e));
407
+ if (void 0 === t) return;
408
+ if (null !== t) return a.scalar = t.type, void (s && (a.enum = t));
409
+ }
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>)", a = "number, string, boolean, Scalar, Date, FormulaError.Known, IRichData, IRange, Volatile<T> (and arrays of these)";
412
+ let i;
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
+ return;
415
+ }
416
+ const E = e.typeArguments;
417
+ if (E) {
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
+ }
424
+ } else e.kind === t.SyntaxKind.FunctionType && ((e, n, a, i) => {
425
+ if (!i) return void U(e, r.FunctionReturn, `Function type is not a valid return type: '${z(e)}'. Declare a 'Lambda' return instead.`);
426
+ const o = e.type, s = {};
427
+ let l = "*";
428
+ o && (o.kind === t.SyntaxKind.AnyKeyword ? l = "raw" : (Q(o, s, a, !1, { count: 0 }), l = s.scalar ?? "*"));
429
+ const d = e.parameters;
430
+ d && !d.some((e) => e.dotDotDotToken) && (n.lambdaArity = d.length), n.lambda = l;
431
+ })(e, a, i, s);
432
+ } else U(e, r.MissingType, `Type is not defined for '${a?.name ?? "return"}'.`);
433
+ };
434
+ try {
435
+ t.forEachChild(a, (e) => {
436
+ if (a = e, 0 !== (t.getCombinedModifierFlags(a) & t.ModifierFlags.Export) && t.isFunctionDeclaration(e)) {
437
+ const a = e?.name?.getText();
438
+ if (!e.body) return void U(e, r.NoBody, `'${a}': function has no body.`);
439
+ if (!a) return void U(e, r.Anonymous, "Anonymous exported functions are not allowed.");
440
+ const o = {}, l = { parameters: {} };
441
+ try {
442
+ o.name = a;
443
+ const d = L(u.getSymbolAtLocation(e.name)?.getDocumentationComment(u));
444
+ d && (l.summary = d);
445
+ const m = {};
446
+ O = null, j(e.type, m, o, !1), o.returnType = m;
447
+ const c = {};
448
+ n = e, 0 !== (t.getCombinedModifierFlags(n) & t.ModifierFlags.Default) && (c.default = !0, C = a), o.parameters = [];
449
+ const p = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Set();
450
+ let f = null, h = null, v = null, $ = 0, x = !1, S = 0;
451
+ for (let n = 0; n < e.parameters.length; n++) {
452
+ const a = e.parameters[n], i = {};
453
+ i.name = a.name?.getText();
454
+ const s = 0 === o.parameters.length;
455
+ if (I?.lenient && 0 === n && !a.type && c.default) {
456
+ o.context = R;
457
+ continue;
458
+ }
459
+ const d = j(a.type, i, o, !0, s, !a.dotDotDotToken, !!a.dotDotDotToken);
460
+ if (d === A) {
461
+ 0 === n && void 0 === o.context && (o.context = R);
462
+ continue;
463
+ }
464
+ if (d) {
465
+ if (0 !== o.parameters.length) return void U(a, r.ContextNotFirst, `'${o.name}' contexts must be the first parameter: '${i.name}'.`);
466
+ o.context = d;
467
+ continue;
468
+ }
469
+ if (void 0 !== i.lambda) {
470
+ if (null !== f) return void U(a, r.MultipleLambda, `'${o.name}' has more than one Lambda parameter ('${f}' and '${i.name}'). Only one Lambda parameter is allowed.`);
471
+ f = i.name;
472
+ } else if (null !== f) return void U(a, r.LambdaNotLast, `'${o.name}' Lambda parameter ('${f}') must be the last parameter, but '${i.name}' follows it.`);
473
+ const m = !0 === i.optional || void 0 !== a.initializer && null !== a.initializer || void 0 !== a.questionToken && null !== a.questionToken;
474
+ let b;
475
+ if (m && (i.optional = !0, a.initializer)) try {
476
+ if (a.initializer.kind === t.SyntaxKind.StringLiteral) b = a.initializer.text;
477
+ else if (a.initializer.kind === t.SyntaxKind.NumericLiteral) b = parseFloat(a.initializer.text);
478
+ else if (a.initializer.kind === t.SyntaxKind.TrueKeyword || a.initializer.kind === t.SyntaxKind.FalseKeyword) b = a.initializer.kind === t.SyntaxKind.TrueKeyword;
479
+ else if (a.initializer.kind === t.SyntaxKind.NullKeyword) b = null;
480
+ else if (t.isPrefixUnaryExpression(a.initializer) && a.initializer.operator === t.SyntaxKind.MinusToken && a.initializer.operand.kind === t.SyntaxKind.NumericLiteral) b = -parseFloat(a.initializer.operand.text);
481
+ else if (t.isPropertyAccessExpression(a.initializer) || t.isElementAccessExpression(a.initializer)) {
482
+ const e = u.getTypeAtLocation(a.initializer);
483
+ e.flags & (t.TypeFlags.NumberLiteral | t.TypeFlags.StringLiteral) && (b = e.value);
484
+ }
485
+ } catch (e) {
486
+ console.warn(`Couldn't extract default value for parameter '${i.name}'`, e);
487
+ }
488
+ a.dotDotDotToken && (i.rest = !0);
489
+ const T = i.repeating;
490
+ if (T) {
491
+ if (i.rest) return void U(a, r.RepeatingPosition, `'${o.name}' parameter '${i.name}' is both a rest parameter and a repeating group. A group already repeats — drop the '...'.`);
492
+ if (m && 1 === T.length) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${i.name}' cannot be an optional repeating group. Use '...${i.name}: T[]' for zero-or-more, or drop the '?' for one-or-more.`);
493
+ if (null !== h) return void U(a, r.MultipleRepeating, `'${o.name}' has more than one repeating group ('${h}' and '${i.name}'). Only one is allowed — two would make the argument count ambiguous.`);
494
+ if (null !== v) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${v}' is optional and precedes the repeating group '${i.name}'. Every parameter outside a group must be required.`);
495
+ h = i.name, $ = T.length, x = !0 === T[T.length - 1].optional;
496
+ } else {
497
+ if (null !== h && i.rest) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${i.name}' is a rest parameter and follows the repeating group '${h}'. Two variadic tails would make the argument count ambiguous.`);
498
+ if (null !== h && m) {
499
+ if (S >= $ - 1) return void U(a, r.RepeatingOptional, 1 === $ ? `'${o.name}' parameter '${i.name}' is optional and follows the period-1 repeating group '${h}'. One more argument is indistinguishable from one more repetition — make it required, or give the group a period.` : `'${o.name}' has ${S + 1} optional parameters after the repeating group '${h}', which has period ${$}. At most ${$ - 1} may be optional, or the argument count no longer decides the parse.`);
500
+ if (x) return void U(a, r.RepeatingOptional, `'${o.name}' parameter '${i.name}' is optional and follows '${h}', whose own last slot is already optional. Both omissions reach the same argument count — drop one.`);
501
+ S++;
502
+ }
503
+ }
504
+ m && !T && (v = i.name);
505
+ const w = (i.range ? 2 : 0) + (i.arrayDepth ?? 0), k = "r" === i.range || "p" === i.range || "*" === i.range, N = i.rest || k ? 3 : 2;
506
+ if (w > N) return void U(a, r.ArrayDepth, `'${o.name}' parameter '${i.name}' has an array depth of ${w}; the maximum is ${N}${i.rest ? " for a rest parameter" : " (use a rest parameter for one more level, or an IRange)"}.`);
507
+ o.parameters.push(i);
508
+ const K = { description: "" };
509
+ l.parameters[i.name] = K, K.description = L(u.getSymbolAtLocation(a.name)?.getDocumentationComment(u)), void 0 !== b && (i.defaultValue = b);
510
+ for (const e of [i, ...i.repeating ?? []]) {
511
+ const t = e.enum ? _.get(e.enum) : void 0;
512
+ t && ((l.enums ??= {})[e.enum.id] = t);
513
+ }
514
+ if (p.set(i.name, i), g.set(i.name, a), T && T.length > 1) {
515
+ y.add(i.name);
516
+ for (const e of T) {
517
+ const t = `${i.name}.${e.name}`;
518
+ l.parameters[t] = { description: "" }, p.set(t, e), g.set(t, a);
519
+ }
520
+ }
521
+ }
522
+ const k = o.maxArguments;
523
+ if (void 0 !== k) {
524
+ const t = o.parameters ?? [];
525
+ if (!t.some((e) => !0 === e.rest || void 0 !== e.repeating)) return void U(e, r.RepeatingMax, `'${o.name}' declares a maximum of ${k} arguments but takes a fixed ${t.length}. A maximum only means something on a variadic tail.`);
526
+ let n = 0;
527
+ for (const e of t) !0 !== e.rest && !0 !== e.optional && (n += e.repeating ? e.repeating.length : 1);
528
+ if (k < n) return void U(e, r.RepeatingMax, `'${o.name}' declares a maximum of ${k} arguments but requires ${n}.`);
529
+ }
530
+ if (e.jsDoc && e.jsDoc.length > 0) {
531
+ const t = e.jsDoc, n = t.length;
532
+ for (let e = 0; e < n; e++) {
533
+ const n = t[e]?.tags;
534
+ if (!n) continue;
535
+ const d = n.length;
536
+ for (let e = 0; e < d; e++) {
537
+ const t = n[e];
538
+ let d = t?.tagName?.text;
539
+ if (!d) continue;
540
+ d = d.toLowerCase();
541
+ let u = t.comment;
542
+ const m = i(d);
543
+ if ("string" == typeof u || m) {
544
+ if ("string" == typeof u && (u = u.replace(/\r\n?/g, "\n").trim()), m || !u || (u = u.split("\n")[0].trim(), u && 0 !== u.length)) {
545
+ if (u && "string" == typeof u) {
546
+ const e = /\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;
547
+ let t, n = u, a = [];
548
+ for (; null !== (t = e.exec(u));) {
549
+ const [e, n, a, r] = t, i = [a.trim()];
550
+ r && i.push(r.trim());
551
+ }
552
+ u = n, a.length > 0 && "see" === d && (l.links || (l.links = []), l.links.push(...a));
553
+ }
554
+ if ("name" === d) {
555
+ const e = u;
556
+ e !== a && (l.name = e);
557
+ } else if ("description" !== d) {
558
+ if ("param" === d) {
559
+ const e = t.name?.getText?.() ?? t.name?.text;
560
+ if (!p.get(e)) {
561
+ U(t, r.UnknownParam, `Parameter '${e}' not found in function '${a}'.`);
562
+ continue;
563
+ }
564
+ const n = l.parameters?.[e];
565
+ n && !n.description && "string" == typeof u && u && (n.description = u);
566
+ } else if ("returns" === d || "return" === d) o.returnType.description = u;
567
+ else if ("returnkind" === d) {
568
+ const e = (u ?? "").trim().toLowerCase();
569
+ s.has(e) ? o.returnType.kind = e : U(t, r.UnknownReturnKind, `'@returnKind ${e}' is not a known value kind. Known: ${[...s].map((e) => `'${e}'`).join(", ")}.`);
570
+ } else if ("category" === d) l.category = u;
571
+ else if ("deprecated" === d || "hidden" === d) {
572
+ let e = !0;
573
+ const t = u?.toLowerCase();
574
+ "false" === t ? e = !1 : "true" !== t && (e = u), !1 !== e && (l.deprecated = e ?? !0, o.hidden = !0);
575
+ }
576
+ }
577
+ }
578
+ } else "returnkind" === d && U(t, r.UnknownReturnKind, `'@returnKind' needs a value kind. Known: ${[...s].map((e) => `'${e}'`).join(", ")}.`);
579
+ }
580
+ }
581
+ }
582
+ if (!o.context && O) return void U(O, r.InvalidReturnType, `'${a}': Promise<T> is not a valid return type for a calculation function. Return the value the cell shows now, and call FormulaContext.defer(executor, payload) to deliver the result later.`);
583
+ 0 === Object.keys(o.returnType).length && delete o.returnType, Object.keys(c).length > 0 && (o.behavior = c), l.summary || P(e.name ?? e, r.MissingSummary, "warning", `'${a}': missing a description. Add a JSDoc comment above the function.`);
584
+ const N = !o.context, K = N && l.name || a;
585
+ if (N && !b.test(K)) {
586
+ const t = l.name ? `'@name ${l.name}'` : `'${K}'`;
587
+ U(e.name ?? e, r.InvalidName, `'${a}': ${t} cannot be called from a formula. A function name starts with a letter or '_', and continues with letters, digits, '_' or '.'.` + (l.name ? "" : " Add an '@name' tag to register it under another name."));
588
+ return;
589
+ }
590
+ if (N && !I?.isBuiltIn && ((e) => {
591
+ if (w.test(e)) return !0;
592
+ const t = T.exec(e);
593
+ if (!t) return !1;
594
+ let n = 0;
595
+ for (const e of t[1].toUpperCase()) n = 26 * n + (e.charCodeAt(0) - 64);
596
+ const a = Number(t[2]);
597
+ return n <= 16384 && a >= 1 && a <= 1048576;
598
+ })(K)) {
599
+ const t = l.name ? `'@name ${l.name}'` : `'${K}'`;
600
+ U(e.name ?? e, r.InvalidName, `'${a}': ${t} cannot be called from a formula. It reads as a cell address.` + (l.name ? "" : " Add an '@name' tag to register it under another name."));
601
+ return;
602
+ }
603
+ const M = D.get(K.toUpperCase());
604
+ if (void 0 !== M) return void U(e.name ?? e, r.DuplicateName, `'${a}': '${K}' is already the name of '${M}' in this module.`);
605
+ if (D.set(K.toUpperCase(), a), N && E?.has(K.toUpperCase())) return void U(e.name ?? e, r.BuiltInName, `'${K}' is a built-in function. Choose a different name - a calculation function cannot replace a built-in.`);
606
+ if (N) {
607
+ const e = l.parameters ?? {};
608
+ for (const [t, n] of Object.entries(e)) if (!y.has(t) && !n.description) {
609
+ const e = g.get(t);
610
+ P(e, r.MissingParamDescription, "warning", `'${a}': parameter '${t}' is missing a description. Add an '@param ${t}' tag.`);
611
+ }
612
+ }
613
+ F.push([o, l]);
614
+ } catch (t) {
615
+ U(e, r.ParseError, `'${a}': ${t.message}`);
616
+ }
617
+ }
618
+ var n, a;
619
+ });
620
+ } catch (e) {
621
+ U(void 0, r.ParseError, `Unable to analyze module: ${e?.message ?? e}`);
622
+ }
623
+ return {
624
+ functions: F,
625
+ autoRun: C,
626
+ diagnostics: M
627
+ };
628
+ }
629
+ function E(e, t, n) {
630
+ const a = "script.ts", r = "lib.d.ts", i = {
631
+ [a]: t ?? "",
632
+ [r]: ""
633
+ }, o = e.createProgram([a], {
634
+ allowJs: !0,
635
+ noResolve: !0,
636
+ noLib: !0,
637
+ isolatedModules: !0,
638
+ module: 99,
639
+ target: e.ScriptTarget.ES2020
640
+ }, {
641
+ getSourceFile: (t) => {
642
+ const n = i[t];
643
+ if (void 0 !== n) return e.createSourceFile(t, n, e.ScriptTarget.Latest, !0);
644
+ },
645
+ fileExists: (e) => void 0 !== i[e],
646
+ readFile: (e) => i[e],
647
+ writeFile: () => {},
648
+ getCurrentDirectory: () => "./",
649
+ getCanonicalFileName: (e) => e,
650
+ useCaseSensitiveFileNames: () => !0,
651
+ getDefaultLibFileName: () => r,
652
+ getNewLine: () => "\n"
653
+ }), s = o.getTypeChecker(), l = o.getSourceFile(a);
654
+ return l ? I(e, l, s, n).diagnostics : [];
655
+ }
656
+ export { I as n, E as t };