@sheetxl/mcp 0.8.0-beta.16 → 0.8.0-beta.17
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/agent/instructions.md +15 -4
- package/assets/{B_nQLUWaxp-Q1IfV.js → -cMvbaW1kvHslPKX.js} +2 -2
- package/assets/{D1g6IOzdvInVLV-x.js → 0kfwZuOHUkJmVjg6.js} +6 -6
- package/assets/{Gqh12ggLm5KlvN3v.js → 1feDuXw6tBXu2XFg.js} +1 -1
- package/assets/{DmLbqbAez7Dzwyl7.js → 4qMP71Fe1Ep8kbOX.js} +1 -1
- package/assets/{AjWB-QdIkr07kToW.js → 7TRx0dMYnL2i4tqL.js} +193 -193
- package/assets/{iqQWGoJaPha0_8lU.js → 8cVPexxAVrFJ9QLX.js} +1 -1
- package/assets/{C-AIgWmHugqMcl9J.js → APP8AzsNgQXHTalA.js} +2 -2
- package/assets/{Cl98sBOj9GM2XnFe.js → AnF1Kh3Vo2AniIYO.js} +2 -2
- package/assets/{B2YEEPHIkNcezk9T.js → B2BfjRdJGZs6afVL.js} +2 -2
- package/assets/{DEIkGoOZ_WeuY0Lj.js → B2UxLSteMiPlg8Uu.js} +1 -1
- package/assets/{BiGm1tKvxUh8oWbD.js → B3mh2tuvP-lMP6f_.js} +1 -1
- package/assets/{CG8zvnxueimOY7wm.js → B6NnxkSmEzCGZEZA.js} +1 -1
- package/assets/{DFAqI-o57Kd_Azlt.js → B7Nqa7V-v0cxGBux.js} +1 -1
- package/assets/{DTLbKr_XIJMwQJmk.js → B7OyFSpBb1eBvMVd.js} +13 -13
- package/assets/{CFdJvXLSbUrvNera.js → B8JX7a6VZlBNA_Bd.js} +8 -8
- package/assets/{Z01wJImjl6lBMpf4.js → B9J8nV-dh6jHpzZI.js} +1 -1
- package/assets/{C75i_5ip7OhGkuiF.js → B9M_sgHpoc-op6FF.js} +1 -1
- package/assets/{POdlv6cpSx6ftJxx.js → BBC_WF8BcAH-k_cQ.js} +1 -1
- package/assets/{DdrsYdX3bLixdb_9.js → BGZ_ltNFYvnAmbVR.js} +1 -1
- package/assets/{BNrpvJZtIL0Ex_wE.js → BJBoygm-gY68bLAP.js} +15 -15
- package/assets/{SaCo3me4_hw2b1L4.js → BJdWgj1hv57eGVl4.js} +389 -389
- package/assets/{Co_y6GfwJTYtOmlt.js → BKRLtOdVOUTrLjQN.js} +3 -3
- package/assets/{DNhfziNrJGdL8BYs.js → BKjovBsLpX2Fkhov.js} +6 -6
- package/assets/{pQUJKbHGetb7dcOr.js → BMJhHHX2LWgOJWGz.js} +1 -1
- package/assets/{D-irgQZ2WmkP9dnK.js → BOx4Ut_Rme7NH34X.js} +1 -1
- package/assets/{DfzLOnWTNL_2J90y.js → BQYpVYbvfWuUJgdx.js} +1 -1
- package/assets/{BtNRIFE92ka4hATo.js → BS4ZsfH5D6aemSpO.js} +1 -1
- package/assets/{CZepo1lDTQp1myg6.js → BSAdmOdx3brRE9LW.js} +1 -1
- package/assets/{DFn_thWGK0_EZI5k.js → BSY9Tbmz6VEY_F_x.js} +1 -1
- package/assets/{Dd8CHUZz7xuYTfp-.js → BT8AGlSg2t7V1QNj.js} +488 -488
- package/assets/{SB2aKOIVln0EkgXR.js → BUV7BlOZcuPgDZ__.js} +1 -1
- package/assets/{BbXlmp8W_cbr75FN.js → BX5xFncPLyeN7TqA.js} +5 -5
- package/assets/{3t-I20nDzFHBd5UJ.js → Bcak_hZpcIkB2gJD.js} +1 -1
- package/assets/{C0JSC9gVwR1QxopD.js → BdijGsy5W7yZ_I_n.js} +1 -1
- package/assets/{QVWayvB03YMyTKt3.js → BebXDUnlrDDRGW60.js} +2 -2
- package/assets/{D7iU4kaxzl_PojNt.js → BgldX21zhey2aR9D.js} +1 -1
- package/assets/{DQcus4X_kTKIIyX6.js → BhCbCEPpDzhg5nqL.js} +1 -1
- package/assets/{BZbxPclVVopktv3l.js → Bj4BFLBC9Tf6SGSt.js} +1 -1
- package/assets/{Di4ehJD7muvtcrN3.js → BjhAYfsKC8iEbtgn.js} +40 -40
- package/assets/{Ct5VTtdW77k-WcP_.js → BjnQVl1lb1KEbt2D.js} +51 -51
- package/assets/{CAEhAL7-0FG7jdzN.js → BlbxiLf1zD6_fWZs.js} +1 -1
- package/assets/{JC8UUcu6m23qqrr3.js → BmM-nHMAAuNatCcN.js} +1 -1
- package/assets/{BlWfQ5HPEehB_lPz.js → Bni-y4FJS4rkFYtn.js} +107 -107
- package/assets/{C2dG4GHThf9O-IJy.js → BodrfKIAhDFD-X3t.js} +1 -1
- package/assets/{C_0RM0w6Pw70Bx_Y.js → BvDcHHJvQMRHthm-.js} +1 -1
- package/assets/{4vS8pASPZSU7QcRZ.js → Bw_FtA-1886HMCLJ.js} +3 -3
- package/assets/{2GLqCzpAJP6jbaRx.js → Bxkx8QokmRNyXbOI.js} +5 -5
- package/assets/{B3MqN3t5naY3moOk.js → Bz1ImBvJwPwBrA5j.js} +1 -1
- package/assets/{BpgPKKZwxXklRyo7.js → C2NPIWe0pLs3PAZM.js} +2 -2
- package/assets/{DzkccbbE6iXMqQDO.js → C2ZX6ffXsMaEr2d2.js} +305 -305
- package/assets/{nmB0nnkFQf5NWo0i.js → C3Q-fjiZZ15waCq_.js} +2 -2
- package/assets/{CsjjeeOHE2624pGt.js → C46RpMrfF6FiEFI7.js} +1 -1
- package/assets/{LwFDS0HxPZKiiEnN.js → C4deMY87Q_haYyLF.js} +1 -1
- package/assets/{CW-ivE6pl3V7vKuT.js → C7iHn3y3HVBHflpA.js} +4 -4
- package/assets/{CVRc6jQcH155Z89u.js → CJF3P7U7yBQVF2Cg.js} +1 -1
- package/assets/{B16N6VSLY5HPgVkD.js → CLgvdaqeFlESLvbF.js} +1 -1
- package/assets/{BUAq-ENCmL0XGLIu.js → CLze192iF2o-aETZ.js} +1 -1
- package/assets/{CX-6eYkcr5y0VmQm.js → CMRLNLqYkiqCLMRa.js} +3 -3
- package/assets/{CAMrW5ypKhgn105y.js → COa691om4fLN4CUy.js} +1 -1
- package/assets/CSLLHl-zum7m1CJl.js +14 -0
- package/assets/{DJdRl2yX9DP_D8kh.js → CUbCBf24Ie4A2l4R.js} +2 -2
- package/assets/{CDqG64rXHp9-2tXr.js → CWLleOolFzyT0COW.js} +1 -1
- package/assets/{C3Wibs7QGFZ1FI7W.js → CaJ9j3l0cERnYqDS.js} +1 -1
- package/assets/{CrwtgrD7BbXyCkx0.js → CfA8o-FNret9-D6Y.js} +1 -1
- package/assets/{BbDKWV_FQAICqZjP.js → Cl7HHR6Vc9S4n3AP.js} +1 -1
- package/assets/{DKRa_Oc4XqB3DABB.js → CqjNsZ2OB4Kx6J3s.js} +8 -8
- package/assets/{soSlr334Fv1j5t2m.js → CqwEHSKivMYw7tRZ.js} +1 -1
- package/assets/{Dg4JXbd1yPGNZOtL.js → Cr6lm0oXZJaaoAmD.js} +1 -1
- package/assets/{Dp-dLoOaBndV2N5i.js → CshK6Ew7OQ7mngI3.js} +2 -2
- package/assets/{DBMZF6PRHCko9K9R.js → CsiIgnb_L2x2Go6g.js} +1 -1
- package/assets/{BYqyNLuwXl7GKuzh.js → CtmrBbpapaNwjwNB.js} +28 -28
- package/assets/{DvFwVzuc5YfagNnH.js → CwRhhoL5ynbe78dB.js} +1 -1
- package/assets/{C95HXhZkkhnUx_aE.js → CyI1eGGzJX8nJXaT.js} +2 -2
- package/assets/{DMhtIFfkX-DZT_e3.js → Cz4H3Qge2u8er3Ny.js} +3 -3
- package/assets/{BrtLeTsrulaU6osB.js → D0OQ6ka8so0BWPwL.js} +1 -1
- package/assets/{CJa8JVvKGVBz8Q7q.js → D336KioeSjd-T8n3.js} +2 -2
- package/assets/{DBANZf_eAzaCFdIj.js → D5L35C8cbX16BSCF.js} +227 -227
- package/assets/{DOZ40EyxD3m0gCos.js → D5VFuX1h50V2jLmZ.js} +305 -305
- package/assets/{5B_tapYOcjOv1wGO.js → D6ON3ZLcTAXV3fO6.js} +8353 -8352
- package/assets/{BsFWmVYPrLyh5Dre.js → DDhPOQPc-lpyZrUJ.js} +4 -4
- package/assets/{iULnLPcNKVpz00r7.js → DE4xC78p5UtS7wH6.js} +1 -1
- package/assets/{-PtBguqpLi7Nr4Df.js → DF7-oRscXc_vkMo8.js} +1 -1
- package/assets/{BIUUGUhypimIDg2a.js → DMuOMpgIhVgB3eG8.js} +1 -1
- package/assets/{TNQaiw20sEAEUiK5.js → DPKeRb9GKmh_WCPv.js} +1 -1
- package/assets/{9MXt8KXdWlbEJNc2.js → DSsH28SW8CMrSL-q.js} +1 -1
- package/assets/{D2YdqNWXwSHJMPbA.js → DV6WSFmSEKfb3d2s.js} +4 -4
- package/assets/{Bdt9nQs8gDIzu_IG.js → DYJcfrNUUJQtxXWX.js} +1 -1
- package/assets/{DLhlBqwsDnmscAuL.js → D_peM8fbRgGaWvpq.js} +1 -1
- package/assets/{D7ibkNIu_Pn4TeBD.js → DeEZvPW-VvlE28oE.js} +3 -3
- package/assets/{CL1-ziDI0aAaVbhJ.js → Dgi2xwb2DN2Gybj3.js} +2 -2
- package/assets/{BiE9M6RctwQ339_7.js → DidhZpf9qJAei29Y.js} +1 -1
- package/assets/{BlIrJwQGEASCgJdZ.js → Dkg-LQVsZlrHk7A8.js} +1 -1
- package/assets/{BBPjYcS8XKQREith.js → DnTfXqCnRCe-1QYI.js} +61 -61
- package/assets/{CVbRpT7QPHOMgwTx.js → DoBvgI3Ry8DlGzwQ.js} +1 -1
- package/assets/{BjDsx_FHl0mShqHX.js → DrHVew6gwOB6oxCn.js} +1 -1
- package/assets/{BRLA4pJWiYdpW-69.js → Dre79rTMoYYikNuB.js} +19 -19
- package/assets/{DaILIYfy-jPVTXjz.js → DsCNtBR5jCeqmLBS.js} +2 -2
- package/assets/{W2FU69Pfo4chpqtk.js → Dzz3yrKbECzg6caR.js} +1 -1
- package/assets/{nDmE2I07HvkpRdR0.js → FvxN6PPps-rNPDo8.js} +1 -1
- package/assets/{DfWWAHOjmhqvN3m_.js → G2Wjyx_ETCAcofwm.js} +130 -130
- package/assets/{YXC__Myl-BuIFW6s.js → IGAV8DdYH32cW8XU.js} +1 -1
- package/assets/{C-gN7uBg-MWHRo4g.js → Jd71-QCmFEcDcYSw.js} +1 -1
- package/assets/{CBPkPTmeaEokFPSI.js → Ljri8sTW3dWT4clD.js} +1 -1
- package/assets/{D3bxrF1Ys2GSVfQH.js → MW2nt7se27FlH9Yb.js} +1 -1
- package/assets/{8NrxfSWBHDaEJvhz.js → Mgs_OJP41a-Nfac3.js} +1 -1
- package/assets/{CvJkwRgwm80S2bcd.js → OHBzl-tZOi9Ni8YV.js} +1 -1
- package/assets/{BR66nPIzyzlOcP10.js → PbBzI4PlKpCgULLd.js} +1 -1
- package/assets/{DR9xHYH6v5G0lOqf.js → UH_biJmLrI9SvckA.js} +3 -3
- package/assets/{DFvs1LVzXKm1N5M2.js → Xe7sA_mEwDQpJjcF.js} +2 -2
- package/assets/{Dy67BUF2yd8VRPwL.js → YFiGplEq1G4XdCJ2.js} +1 -1
- package/assets/{BuhHuKVWppW4L8AV.js → YQtUMMGmb1_WFsh_.js} +1 -1
- package/assets/{BCSRsSAEPlwR59H5.js → dcvgOfBmWFTsXoT8.js} +4 -4
- package/assets/{Ci7-PIIhZwb2mVv5.js → iBgLe32XErisaUSr.js} +1 -1
- package/assets/{rfwqMukKbJBeJBuC.js → kpS1vY0DcE9p8JnI.js} +2 -2
- package/assets/{BdMebk9YSA0oxQ_d.js → lcIaYgz4tQGBlzlo.js} +67 -67
- package/assets/{CK9h6iDOreaI8GEt.js → nQbVdQrfdz3osBdi.js} +3 -3
- package/assets/{CoIjAX2gECGb3Wxl.js → oJNJQJEDQCsjHSmo.js} +1 -1
- package/assets/{3_NofB4A4Qhl-4YY.js → qgW-p2sFhMtuu5yw.js} +1 -1
- package/assets/{h6EQSu5n2vTsu2yd.js → z24-oIqP_fu2hsOt.js} +1 -1
- package/assets/{CIqJdIUKSLZkNwHy.js → z7nDK_gfX7G37XbZ.js} +34 -34
- package/index.js +205 -205
- package/lib.js +1 -1
- package/licenses/dependencies.txt +35 -35
- package/package.json +2 -2
- package/screenshot-page/assets/{D8s3sJnhFxbI3Dqn.js → 7Xk_eQAcM_HgWrOC.js} +1 -1
- package/screenshot-page/assets/{CQFj5AGXfIA9z9zI.js → B1W17rc9ilPFCh31.js} +1 -1
- package/screenshot-page/assets/B8UkvH0o9n_G5UO9.js +3 -0
- package/screenshot-page/assets/{CZa1rha3RnQUWyOk.js → BD96fN2dSVuoME09.js} +4 -4
- package/screenshot-page/assets/BE8ea8S0Q-qogeEs.js +2 -0
- package/screenshot-page/assets/{BU5S8KEzPmIA_Flm.js → BKwVcuWOKeH2xREA.js} +1 -1
- package/screenshot-page/assets/BNMBa8EZgWX2Eb3c.js +1 -0
- package/screenshot-page/assets/{Db6bZVJ-184DJIoe.js → BQCyH9YbEgnH78Ke.js} +2 -2
- package/screenshot-page/assets/BcDxaEii3arJqOym.js +1 -0
- package/screenshot-page/assets/Be-rukvcufhLamH5.js +1 -0
- package/screenshot-page/assets/{Dq7wGcTrNIshovlT.js → Bh33WyohJvbKZVQN.js} +2 -2
- package/screenshot-page/assets/C2ty_K_uix4ooip6.js +1 -0
- package/screenshot-page/assets/C9mUKjQ3yEzRu9j2.js +2 -0
- package/screenshot-page/assets/{DDkL9PZPXAggW2Yr.js → CB2mQ5rbaSw2W4ik.js} +23 -23
- package/screenshot-page/assets/{DLFFFQjTi5Ji1940.js → CCVAsuUimIJOkBnk.js} +1 -1
- package/screenshot-page/assets/{D7biuwkvm3zAwsBa.js → COoMVTzF50qBNFEu.js} +3 -3
- package/screenshot-page/assets/{Bir0SSOHX0w2yo8h.js → CSMEGhAHxl5-4FxB.js} +1 -1
- package/screenshot-page/assets/{rOzyaU7hqchMbhRL.js → CT7cY57t9j1sBhAy.js} +1 -1
- package/screenshot-page/assets/{BJ2r2WfEL3SgkBAX.js → CTjUtxDw6Z2I9OGc.js} +1 -1
- package/screenshot-page/assets/{BIrVK5hdDCUYmxGO.js → CUZobZ3mfNAdEisS.js} +1 -1
- package/screenshot-page/assets/{ClzJdxlUDDtBYjH8.js → C_OuKbe6z1it80cj.js} +1 -1
- package/screenshot-page/assets/Cbcv49b9jWyY4HKj.js +2 -0
- package/screenshot-page/assets/CtZFqwLoeJOvwFrl.js +42 -0
- package/screenshot-page/assets/Cz6KFmsp267l_VZS.js +1 -0
- package/screenshot-page/assets/{lgeNUp9cU20IAotv.js → D0koRjO2KnWQ1fNV.js} +1 -1
- package/screenshot-page/assets/{cTMKPkmZF8FWQaMn.js → DCP8JXEeiwAMiVD2.js} +1 -1
- package/screenshot-page/assets/DQAZPADvH5lhlMnK.js +1 -0
- package/screenshot-page/assets/DQBUH0j44Vtrykua.js +13 -0
- package/screenshot-page/assets/{DyiVrm8mEnEaoZHa.js → DSKOOgcJQeqIc9Us.js} +1 -1
- package/screenshot-page/assets/{CguXw0IcKNPbmAbj.js → DXaM3CulPA3aPGV1.js} +2 -2
- package/screenshot-page/assets/{CqyMYduWKFvmMs_Z.js → DcUOAH274IbYOuK1.js} +1 -1
- package/screenshot-page/assets/{CRsTnamLrPN5-Dsi.js → DdXSKhFUAsKUsQ1u.js} +1 -1
- package/screenshot-page/assets/Djl40tfWoPJSvqtv.js +1 -0
- package/screenshot-page/assets/TCImIYUUdVD4Z35I.js +1 -0
- package/screenshot-page/assets/dQsis-90Up-pIkSq.js +4 -0
- package/screenshot-page/assets/{Dn5PwRw7rrTKNnql.js → dXn1GWWjYmuLb1HF.js} +8 -8
- package/screenshot-page/index.html +5 -5
- package/assets/DsTi7zHk_Xl37bAD.js +0 -14
- package/screenshot-page/assets/B7eQ3rE-7Vayb_4O.js +0 -2
- package/screenshot-page/assets/B8i4Sr2kMQAXp0rb.js +0 -4
- package/screenshot-page/assets/BIHbD4jMsk3NetOd.js +0 -1
- package/screenshot-page/assets/BJviQwDXR5L6l1DA.js +0 -1
- package/screenshot-page/assets/BM78thqEW6HwXFAK.js +0 -13
- package/screenshot-page/assets/C2H2lX8eyKpxpP6M.js +0 -2
- package/screenshot-page/assets/CYfkL98Zu43S8-50.js +0 -42
- package/screenshot-page/assets/CzsoLbEIUVK5ia1C.js +0 -1
- package/screenshot-page/assets/D2IHCJ1QWDKwmhge.js +0 -1
- package/screenshot-page/assets/DMxrNtfw275en7pm.js +0 -1
- package/screenshot-page/assets/D_kJ3WunvjIINcHC.js +0 -1
- package/screenshot-page/assets/DhB6GjSJIeTmIODk.js +0 -1
- package/screenshot-page/assets/TilS2JSBGVkd1za3.js +0 -3
- package/screenshot-page/assets/UKFgEuwI1UMhPqKF.js +0 -2
- package/screenshot-page/assets/hlxJ87-H830aSZBQ.js +0 -1
package/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.
|
|
3
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.17
|
|
4
4
|
*
|
|
5
5
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
6
6
|
* License: SheetXL EULA — https://www.sheetxl.com/eula
|
|
7
7
|
*/
|
|
8
|
-
import { H as e, K as t, lt as n, z as o } from "./assets/
|
|
9
|
-
import { o as r } from "./assets/
|
|
10
|
-
import { Dt as s, F as a, G as i, ht as l, k as c, lt as u, p as d } from "./assets/
|
|
11
|
-
import { d as h, i as g, m, p } from "./assets/
|
|
12
|
-
import {
|
|
13
|
-
import { t as I } from "./assets/
|
|
14
|
-
import { b as T, d as N, j as A, m as M, o as F } from "./assets/
|
|
15
|
-
import { t as _ } from "./assets/
|
|
8
|
+
import { H as e, K as t, lt as n, z as o } from "./assets/CfA8o-FNret9-D6Y.js";
|
|
9
|
+
import { o as r } from "./assets/DsCNtBR5jCeqmLBS.js";
|
|
10
|
+
import { Dt as s, F as a, G as i, ht as l, k as c, lt as u, p as d } from "./assets/BJBoygm-gY68bLAP.js";
|
|
11
|
+
import { d as h, i as g, m, p } from "./assets/MW2nt7se27FlH9Yb.js";
|
|
12
|
+
import { $i as f, $r as w, Fa as $, Ft as y, Li as b, Mi as k, Nr as S, Sa as x, fa as v, fr as C, gr as E, q as R, yt as j } from "./assets/D6ON3ZLcTAXV3fO6.js";
|
|
13
|
+
import { t as I } from "./assets/0kfwZuOHUkJmVjg6.js";
|
|
14
|
+
import { b as T, d as N, j as A, m as M, o as F } from "./assets/D5VFuX1h50V2jLmZ.js";
|
|
15
|
+
import { t as _ } from "./assets/BX5xFncPLyeN7TqA.js";
|
|
16
16
|
import { createRequire as O } from "node:module";
|
|
17
17
|
import { StdioServerTransport as L } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
18
18
|
import * as P from "node:os";
|
|
19
19
|
import { tmpdir as D } from "node:os";
|
|
20
20
|
import * as W from "node:path";
|
|
21
|
-
import { basename as
|
|
21
|
+
import { basename as V, delimiter as B, dirname as H, extname as U, isAbsolute as q, join as z, normalize as J, resolve as X, sep as K } from "node:path";
|
|
22
22
|
import { appendFileSync as G, existsSync as Z, mkdirSync as Y, mkdtempSync as Q, readFileSync as ee, readdirSync as te, rmSync as ne, statSync as oe, writeFileSync as re } from "node:fs";
|
|
23
23
|
import { appendFile as se, mkdir as ae, readFile as ie, readdir as le, stat as ce, unlink as ue, writeFile as de } from "node:fs/promises";
|
|
24
24
|
import { fileURLToPath as he } from "node:url";
|
|
@@ -38,7 +38,7 @@ var ye = Object.defineProperty, be = (((e) => {
|
|
|
38
38
|
MAX_WORKBOOK_NAME_SIZE: () => 96,
|
|
39
39
|
isReservedFileNameChar: () => Se,
|
|
40
40
|
isValidFileName: () => xe
|
|
41
|
-
}), /^(con|prn|aux|nul|com\d|lpt\d)$/i), ke = /[<>:"/\\|?*\u0000-\u001F]/, Se = (e) => ke.test(e), xe = (e) => !(!e || e.length > 255 || ke.test(e) || be.test(e) || "." === e || ".." === e), ve = t("io:sxlReader", () => import("./assets/
|
|
41
|
+
}), /^(con|prn|aux|nul|com\d|lpt\d)$/i), ke = /[<>:"/\\|?*\u0000-\u001F]/, Se = (e) => ke.test(e), xe = (e) => !(!e || e.length > 255 || ke.test(e) || be.test(e) || "." === e || ".." === e), ve = t("io:sxlReader", () => import("./assets/nQbVdQrfdz3osBdi.js")), Ce = t("io:sxlWriter", () => import("./assets/CyI1eGGzJX8nJXaT.js")), Ee = async (e, t) => (await ve.load()).readSXL(e, t), Re = (e) => async (t, n) => (await Ce.load()).writeSXL(t, {
|
|
42
42
|
...n,
|
|
43
43
|
compress: n?.compress ?? e.compress,
|
|
44
44
|
whiteSpace: n?.whiteSpace ?? e.whiteSpace
|
|
@@ -75,13 +75,13 @@ var ye = Object.defineProperty, be = (((e) => {
|
|
|
75
75
|
})
|
|
76
76
|
}, Ae = {
|
|
77
77
|
name: "SXLPlugin",
|
|
78
|
-
version: "0.8.0-beta.
|
|
78
|
+
version: "0.8.0-beta.17",
|
|
79
79
|
description: "Import and export SXL format",
|
|
80
80
|
author: "SheetXL",
|
|
81
81
|
async register(e) {
|
|
82
82
|
await e.registerReadFormat(je), await e.registerReadFormat(Ie), await e.registerWriteFormat(Te), await e.registerWriteFormat(Ne);
|
|
83
83
|
}
|
|
84
|
-
}, Me = t("io:csvReader", () => import("./assets/
|
|
84
|
+
}, Me = t("io:csvReader", () => import("./assets/Bxkx8QokmRNyXbOI.js")), Fe = t("io:csvWriter", () => import("./assets/DeEZvPW-VvlE28oE.js")), _e = {
|
|
85
85
|
key: "CSV",
|
|
86
86
|
description: "Comma Separated Values",
|
|
87
87
|
mimeType: "text/csv",
|
|
@@ -95,7 +95,7 @@ var ye = Object.defineProperty, be = (((e) => {
|
|
|
95
95
|
handler: async (e, t) => (await Fe.load()).writeCSV(e, t)
|
|
96
96
|
}, Le = {
|
|
97
97
|
name: "CSVPlugin",
|
|
98
|
-
version: "0.8.0-beta.
|
|
98
|
+
version: "0.8.0-beta.17",
|
|
99
99
|
description: "Import and export CSV format",
|
|
100
100
|
author: "SheetXL",
|
|
101
101
|
async register(e) {
|
|
@@ -103,7 +103,7 @@ var ye = Object.defineProperty, be = (((e) => {
|
|
|
103
103
|
}
|
|
104
104
|
}, Pe = {
|
|
105
105
|
name: "@sheetxl/io",
|
|
106
|
-
version: "0.8.0-beta.
|
|
106
|
+
version: "0.8.0-beta.17",
|
|
107
107
|
description: "Built-in I/O formats for SheetXL",
|
|
108
108
|
author: "SheetXL",
|
|
109
109
|
async register(e) {
|
|
@@ -119,8 +119,8 @@ function De(e) {
|
|
|
119
119
|
function We(e, t) {
|
|
120
120
|
return e && "local" !== e ? e : t ? `local ${De(t)}` : "local";
|
|
121
121
|
}
|
|
122
|
-
var
|
|
123
|
-
async function
|
|
122
|
+
var Ve = () => W.join(P.homedir(), ".sheetxl", "locks");
|
|
123
|
+
async function Be(e) {
|
|
124
124
|
try {
|
|
125
125
|
return JSON.parse(await ie(e, "utf-8"));
|
|
126
126
|
} catch {
|
|
@@ -140,8 +140,8 @@ async function He(e) {
|
|
|
140
140
|
async function Ue() {
|
|
141
141
|
const e = (() => {
|
|
142
142
|
const e = process.env.SHEETXL_WORKSPACE ?? process.cwd(), t = ge("sha256").update(e).digest("hex").slice(0, 8);
|
|
143
|
-
return W.join(
|
|
144
|
-
})(), t = await
|
|
143
|
+
return W.join(Ve(), `${t}.lock`);
|
|
144
|
+
})(), t = await Be(e);
|
|
145
145
|
if (t) {
|
|
146
146
|
if (await He(t)) return t;
|
|
147
147
|
await ue(e).catch(() => {});
|
|
@@ -149,18 +149,18 @@ async function Ue() {
|
|
|
149
149
|
return async function() {
|
|
150
150
|
let e;
|
|
151
151
|
try {
|
|
152
|
-
e = (await le(
|
|
152
|
+
e = (await le(Ve())).filter((e) => e.endsWith(".lock"));
|
|
153
153
|
} catch {
|
|
154
154
|
return null;
|
|
155
155
|
}
|
|
156
156
|
if (!e.length) return null;
|
|
157
157
|
const t = await Promise.all(e.map(async (e) => ({
|
|
158
158
|
f: e,
|
|
159
|
-
mtime: (await ce(W.join(
|
|
159
|
+
mtime: (await ce(W.join(Ve(), e))).mtimeMs
|
|
160
160
|
})));
|
|
161
161
|
t.sort((e, t) => t.mtime - e.mtime);
|
|
162
162
|
for (const { f: e } of t) {
|
|
163
|
-
const t = W.join(
|
|
163
|
+
const t = W.join(Ve(), e), n = await Be(t);
|
|
164
164
|
if (n) {
|
|
165
165
|
if (await He(n)) return n;
|
|
166
166
|
await ue(t).catch(() => {});
|
|
@@ -417,7 +417,7 @@ function st(e) {
|
|
|
417
417
|
t.push(`- ${e}**${n.name}**: ${n.value}${o}`);
|
|
418
418
|
}
|
|
419
419
|
if (t.push(""), t.push(function(e) {
|
|
420
|
-
return e.attended ? "mcp" === e.surface ? "**Attended.** A human has that workbook open. When they are vague — \"fix this\", \"B10 looks wrong\" — they probably mean the workbook in front of them. Reach it through its session, never through the file on disk: what is on disk is stale the moment they have unsaved edits, and
|
|
420
|
+
return e.attended ? "mcp" === e.surface ? "**Attended.** A human has that workbook open and sees every change the moment it lands. When they are vague — \"fix this\", \"B10 looks wrong\" — they probably mean the workbook in front of them. Reach it through its session, never through the file on disk: what is on disk is stale the moment they have unsaved edits, and the session is where their undo lives. The session is yours to use: each `run` is one commit the user can step through and revert from the agent panel at the top right of their grid, so make the change, say what you changed, and `highlight` where — nothing about it needs a warning. In-grid `prompt`s are yours too." : "**Attended.** A human has that workbook open, and there is no session to reach from the CLI — `--in` opens the file, which is the one thing you must not write back. This is a *read* surface: query, calculate, report what you found, and let them make the change or hand the work to the MCP server." : "**Unattended.** Nobody is watching. The files are yours to open, change and save directly, and nobody will catch a mistake for you — so verify your own work: read back what you wrote, recount what you fixed.";
|
|
421
421
|
}(e)), e.sessions.length) {
|
|
422
422
|
t.push(""), t.push("**Sessions**"), t.push("");
|
|
423
423
|
for (const n of e.sessions) {
|
|
@@ -721,7 +721,7 @@ function Wt(e, t) {
|
|
|
721
721
|
return Dt(e);
|
|
722
722
|
}
|
|
723
723
|
}
|
|
724
|
-
function
|
|
724
|
+
function Vt(e, t) {
|
|
725
725
|
if (t === Lt.Mode.Formula) {
|
|
726
726
|
const t = e.getFormulaText();
|
|
727
727
|
if (t) return {
|
|
@@ -731,7 +731,7 @@ function Bt(e, t) {
|
|
|
731
731
|
}
|
|
732
732
|
const n = e.getValue();
|
|
733
733
|
if (t === Lt.Mode.Value || t === Lt.Mode.Formula || Ht(n)) {
|
|
734
|
-
const e =
|
|
734
|
+
const e = Bt(n);
|
|
735
735
|
return e?.match ? e : null;
|
|
736
736
|
}
|
|
737
737
|
const o = e.getText({ hideStringPrefix: !0 });
|
|
@@ -740,7 +740,7 @@ function Bt(e, t) {
|
|
|
740
740
|
display: e.getText()
|
|
741
741
|
} : null;
|
|
742
742
|
}
|
|
743
|
-
function
|
|
743
|
+
function Bt(e) {
|
|
744
744
|
if (null == e) return null;
|
|
745
745
|
if ("string" == typeof e) return {
|
|
746
746
|
match: e,
|
|
@@ -795,7 +795,7 @@ var Ht = (e) => "object" == typeof e && null !== e && !h.isError(e) && "function
|
|
|
795
795
|
"shape",
|
|
796
796
|
"chart",
|
|
797
797
|
"name"
|
|
798
|
-
], zt = (e, t) => e <= t + 3 ? e : t, Jt =
|
|
798
|
+
], zt = (e, t) => e <= t + 3 ? e : t, Jt = v.ErrorCheck, Xt = /* @__PURE__ */ new Map([
|
|
799
799
|
[Jt.InconsistentFormula, "inconsistent formula"],
|
|
800
800
|
[Jt.OmittedCells, "omits adjacent cells"],
|
|
801
801
|
[Jt.NumberAsText, "number stored as text"],
|
|
@@ -899,7 +899,7 @@ function nn(e, t) {
|
|
|
899
899
|
return null === r || null === s ? e : s + r;
|
|
900
900
|
});
|
|
901
901
|
}
|
|
902
|
-
var on = (e) => String(e + 1), rn = (e) => (
|
|
902
|
+
var on = (e) => String(e + 1), rn = (e) => (w.cellToString({
|
|
903
903
|
rowIndex: 0,
|
|
904
904
|
colIndex: e
|
|
905
905
|
}) ?? "").replace(/\d+$/, ""), sn = /(?<![A-Za-z0-9_.$])R(\[-?\d+\]|\d+)?C(\[-?\d+\]|\d+)?(?![A-Za-z0-9_(])/g;
|
|
@@ -980,7 +980,7 @@ var ln = (e) => {
|
|
|
980
980
|
return s !== ln(o.getColor()) && r.push(s ?? "no color"), r.length > 0 ? r.join(" · ") : null;
|
|
981
981
|
};
|
|
982
982
|
function fn(e, t, n) {
|
|
983
|
-
const o =
|
|
983
|
+
const o = C(e, t, n);
|
|
984
984
|
return o ? {
|
|
985
985
|
text: o.text,
|
|
986
986
|
address: o.address
|
|
@@ -1090,12 +1090,12 @@ function xn(e, t = []) {
|
|
|
1090
1090
|
const r = Math.max(10, ...n.map(([e]) => e.length + 2));
|
|
1091
1091
|
return n.map(([e, t]) => `${e.padEnd(r)}${t}`);
|
|
1092
1092
|
}
|
|
1093
|
-
var vn =
|
|
1093
|
+
var vn = x.Feature;
|
|
1094
1094
|
function Cn(e, t) {
|
|
1095
1095
|
const n = t?.maxSeries ?? 24, o = t?.maxProfileCells ?? 2e4, r = t?.maxCategories ?? 3, s = e.getRowCount(), a = e.getColumnCount();
|
|
1096
1096
|
if (1 === s && 1 === a) return {
|
|
1097
1097
|
shape: "cell",
|
|
1098
|
-
summary:
|
|
1098
|
+
summary: Vt(e.getCell(), Lt.Mode.Display)?.display ?? "(blank)",
|
|
1099
1099
|
series: []
|
|
1100
1100
|
};
|
|
1101
1101
|
const i = e.getRange(), l = i.getCoords(), c = s >= a;
|
|
@@ -1235,7 +1235,7 @@ function Tn(e) {
|
|
|
1235
1235
|
function Nn(e, t) {
|
|
1236
1236
|
const n = e.getRangeAt(t.rowIndex, t.colIndex).getCell();
|
|
1237
1237
|
if (n.getType() !== p.String) return null;
|
|
1238
|
-
const o =
|
|
1238
|
+
const o = Vt(n, Lt.Mode.Display)?.match;
|
|
1239
1239
|
return o ? {
|
|
1240
1240
|
text: o,
|
|
1241
1241
|
address: n.getAddress()
|
|
@@ -1249,7 +1249,7 @@ function Mn(e, t, n) {
|
|
|
1249
1249
|
const o = t.getRange().getCoords(), r = e.getCoords(), s = n ? o.colEnd - o.colStart + 1 : o.rowEnd - o.rowStart + 1, a = [];
|
|
1250
1250
|
for (let t = 0; t < s; t++) {
|
|
1251
1251
|
const s = n ? e.getRangeAt(r.rowStart, o.colStart + t).getCell() : e.getRangeAt(o.rowStart + t, r.colStart).getCell();
|
|
1252
|
-
a.push(
|
|
1252
|
+
a.push(Vt(s, Lt.Mode.Display)?.match ?? "");
|
|
1253
1253
|
}
|
|
1254
1254
|
return a;
|
|
1255
1255
|
}
|
|
@@ -1340,7 +1340,7 @@ function Wn(e, t, n) {
|
|
|
1340
1340
|
const s = Array.from(o.getValueCounts()).slice(0, t);
|
|
1341
1341
|
return `${r} unique (${s.map(([e, t]) => `${e} ${t}`).join(" · ")}${r > s.length ? " · …" : ""})`;
|
|
1342
1342
|
}
|
|
1343
|
-
var
|
|
1343
|
+
var Vn = x.Feature, Bn = (e) => (e.rowEnd - e.rowStart + 1) * (e.colEnd - e.colStart + 1), Hn = (e, t) => {
|
|
1344
1344
|
const n = Math.min(e.rowEnd, t.rowEnd) - Math.max(e.rowStart, t.rowStart) + 1;
|
|
1345
1345
|
if (n <= 0) return 0;
|
|
1346
1346
|
const o = Math.min(e.colEnd, t.colEnd) - Math.max(e.colStart, t.colStart) + 1;
|
|
@@ -1350,7 +1350,7 @@ var Bn = j.Feature, Vn = (e) => (e.rowEnd - e.rowStart + 1) * (e.colEnd - e.colS
|
|
|
1350
1350
|
return "times" === t || e.styled === e.content ? n : `${n} (+${Un(e.styled - e.content)} blank)`;
|
|
1351
1351
|
}, zn = (e) => {
|
|
1352
1352
|
if (0 === e.length) return "";
|
|
1353
|
-
const t =
|
|
1353
|
+
const t = w.rangeToString(e[0]);
|
|
1354
1354
|
if (1 === e.length) return t;
|
|
1355
1355
|
const n = e.length - 1;
|
|
1356
1356
|
return `${t}, +${n} block${1 === n ? "" : "s"}`;
|
|
@@ -1462,18 +1462,18 @@ function ro(e) {
|
|
|
1462
1462
|
return null != n ? `${t.category} ${n}dp` : t.category;
|
|
1463
1463
|
}
|
|
1464
1464
|
var so = {
|
|
1465
|
-
[
|
|
1466
|
-
[
|
|
1467
|
-
[
|
|
1468
|
-
[
|
|
1469
|
-
[
|
|
1465
|
+
[Vn.Font]: Kn,
|
|
1466
|
+
[Vn.NumberFormat]: Qn,
|
|
1467
|
+
[Vn.Fill]: eo,
|
|
1468
|
+
[Vn.Borders]: to,
|
|
1469
|
+
[Vn.Alignment]: no
|
|
1470
1470
|
}, ao = (e) => e in so;
|
|
1471
1471
|
function io(e, t, n, o) {
|
|
1472
1472
|
const r = so[t];
|
|
1473
1473
|
if (!r) return null;
|
|
1474
1474
|
const s = e.getEntireCoords(), a = e.getUsedRange()?.getCoords() ?? null, i = [...e.getEntireRange().getRegions(t)];
|
|
1475
1475
|
if (0 === i.length) return null;
|
|
1476
|
-
const l = o?.content ?? (a ? [...e.getEntireRange().getRegions(
|
|
1476
|
+
const l = o?.content ?? (a ? [...e.getEntireRange().getRegions(Vn.Contentful)].map((e) => e.getCoords()) : []), c = (e) => l.reduce((t, n) => t + Hn(e, n), 0), u = (e) => a ? Hn(e, a) : 0, d = (e) => {
|
|
1477
1477
|
const t = e.getRange().getStyle(), o = [];
|
|
1478
1478
|
for (const e of r) {
|
|
1479
1479
|
const r = e.project(t, n);
|
|
@@ -1531,10 +1531,10 @@ function io(e, t, n, o) {
|
|
|
1531
1531
|
}
|
|
1532
1532
|
return [...o.values()].map((e) => ({
|
|
1533
1533
|
...e,
|
|
1534
|
-
blocks: e.blocks.sort((e, t) =>
|
|
1534
|
+
blocks: e.blocks.sort((e, t) => Bn(t) - Bn(e))
|
|
1535
1535
|
}));
|
|
1536
1536
|
}, S = [];
|
|
1537
|
-
if (t ===
|
|
1537
|
+
if (t === Vn.NumberFormat) S.push(...function(e, t, n) {
|
|
1538
1538
|
const { top: o, rare: r, more: s } = Xn(e, n), a = [];
|
|
1539
1539
|
let i = -1;
|
|
1540
1540
|
for (const e of [...o, ...r]) {
|
|
@@ -1611,7 +1611,7 @@ function lo(e, t) {
|
|
|
1611
1611
|
label: e.label,
|
|
1612
1612
|
content: e.cells,
|
|
1613
1613
|
styled: e.cells,
|
|
1614
|
-
blocks: e.blocks.sort((e, t) =>
|
|
1614
|
+
blocks: e.blocks.sort((e, t) => Bn(t) - Bn(e))
|
|
1615
1615
|
})), i = [...o.entries()].map(([e, t]) => ({
|
|
1616
1616
|
label: e,
|
|
1617
1617
|
content: t,
|
|
@@ -1654,17 +1654,17 @@ function co(e, t) {
|
|
|
1654
1654
|
}
|
|
1655
1655
|
function uo(e, t) {
|
|
1656
1656
|
switch (e) {
|
|
1657
|
-
case
|
|
1657
|
+
case Vn.Font: return function(e) {
|
|
1658
1658
|
const t = e.getFont(), n = [t.getFamily(), `${t.getSize()}pt`], o = ln(t.getColor());
|
|
1659
1659
|
return o && n.push(o), t.getBold() && n.push("bold"), t.getItalic() && n.push("italic"), n.join(" · ");
|
|
1660
1660
|
}(t);
|
|
1661
|
-
case
|
|
1661
|
+
case Vn.NumberFormat: {
|
|
1662
1662
|
const e = gn(t);
|
|
1663
1663
|
return null === e ? null : `${Gn(e)} ${e}`;
|
|
1664
1664
|
}
|
|
1665
|
-
case
|
|
1666
|
-
case
|
|
1667
|
-
case
|
|
1665
|
+
case Vn.Fill: return cn(t);
|
|
1666
|
+
case Vn.Borders: return un(t);
|
|
1667
|
+
case Vn.Alignment: {
|
|
1668
1668
|
const e = t.getAlignment(), n = [];
|
|
1669
1669
|
return "general" !== e.getHorizontal() && n.push(`h ${e.getHorizontal()}`), "bottom" !== e.getVertical() && n.push(`v ${e.getVertical()}`), "visible" !== e.getOverflow() && n.push(String(e.getOverflow())), e.getIndent() && n.push(`indent ${e.getIndent()}`), e.getRotation() && n.push(`rotation ${e.getRotation()}`), n.length > 0 ? n.join(" · ") : null;
|
|
1670
1670
|
}
|
|
@@ -1696,8 +1696,8 @@ function po(e, t, n, o, r) {
|
|
|
1696
1696
|
const s = n.map((e) => {
|
|
1697
1697
|
const t = e.getCoords();
|
|
1698
1698
|
o += r ? t.colEnd - t.colStart + 1 : t.rowEnd - t.rowStart + 1;
|
|
1699
|
-
const n = r ?
|
|
1700
|
-
return 0 === s ? n : `${n} (from ${r ? `row ${s + 1}` : `column ${
|
|
1699
|
+
const n = r ? w.runToString(t.colStart, t.colEnd, !0) : w.runToString(t.rowStart, t.rowEnd, !1), s = r ? t.rowStart : t.colStart;
|
|
1700
|
+
return 0 === s ? n : `${n} (from ${r ? `row ${s + 1}` : `column ${w.runToString(s, s, !0).split(":")[0]}`})`;
|
|
1701
1701
|
});
|
|
1702
1702
|
2 * o > a ? i.push(`${"sheet".padEnd(10)}${t || "default"}`) : i.push(`${e.padEnd(10)}${s.join(", ")} ${t || "default"}`);
|
|
1703
1703
|
}
|
|
@@ -1733,14 +1733,14 @@ var fo = (e, t) => e.length > t ? `${e.slice(0, t - 1)}…` : e, wo = (e) => {
|
|
|
1733
1733
|
}
|
|
1734
1734
|
return e.borders && t.push("border"), e.alignment && t.push("alignment"), t.length > 0 ? t.join(" · ") : null;
|
|
1735
1735
|
}, yo = (e) => {
|
|
1736
|
-
const t = e.type ??
|
|
1736
|
+
const t = e.type ?? f.ColorStopType.Num, n = e.value, o = null == n || "" === n ? t : `${t} ${n}`, r = wo(e.color);
|
|
1737
1737
|
return r ? `${o} ${r}` : o;
|
|
1738
1738
|
}, bo = (e) => {
|
|
1739
1739
|
let t = e.type;
|
|
1740
|
-
if (e.type ===
|
|
1740
|
+
if (e.type === f.ScaleType.DataBar) {
|
|
1741
1741
|
const n = wo(e.color);
|
|
1742
1742
|
n && (t += ` ${n}`);
|
|
1743
|
-
} else e.type ===
|
|
1743
|
+
} else e.type === f.ScaleType.IconSet && (e.iconSet && (t += ` ${e.iconSet}`), e.reverse && (t += " reversed"), e.icon?.length && (t += " custom icons"));
|
|
1744
1744
|
const n = (e.stops ?? []).map(yo).join(" → ");
|
|
1745
1745
|
return n ? `${t} · ${n}` : t;
|
|
1746
1746
|
}, ko = "(no rule)", So = (e) => {
|
|
@@ -1759,7 +1759,7 @@ var fo = (e, t) => e.length > t ? `${e.slice(0, t - 1)}…` : e, wo = (e) => {
|
|
|
1759
1759
|
if (0 === e.length) return null;
|
|
1760
1760
|
const n = e.slice(0, 3).map(t), o = e.length - n.length;
|
|
1761
1761
|
return o > 0 ? `${n.join(" | ")} | +${o} more` : n.join(" | ");
|
|
1762
|
-
}, Co =
|
|
1762
|
+
}, Co = x.Feature, Eo = (e) => e.getRange().getStyle(), Ro = (e) => Vt(e.getCell(), Lt.Mode.Display)?.display ?? null;
|
|
1763
1763
|
function jo(e, t) {
|
|
1764
1764
|
switch (e) {
|
|
1765
1765
|
case Co.Formula: return (e) => e.getCell().getFormulaText();
|
|
@@ -1876,7 +1876,7 @@ var Mo = (e) => {
|
|
|
1876
1876
|
const t = e.getCell().getAnomalies();
|
|
1877
1877
|
return t.length > 0 ? JSON.stringify(t.map((e) => [e.check, e.evidence])) : null;
|
|
1878
1878
|
};
|
|
1879
|
-
var Fo =
|
|
1879
|
+
var Fo = x.Feature, _o = [
|
|
1880
1880
|
Fo.Error,
|
|
1881
1881
|
Fo.CalcError,
|
|
1882
1882
|
Fo.Anomalies,
|
|
@@ -1895,7 +1895,7 @@ var Fo = j.Feature, _o = [
|
|
|
1895
1895
|
Fo.Conditionals,
|
|
1896
1896
|
Fo.DataValidations
|
|
1897
1897
|
], Oo = new Map(Object.entries(Fo).map(([e, t]) => [t, e])), Lo = (e) => Oo.get(e) ?? e;
|
|
1898
|
-
var Po = (e) => `${e.toString()}, ${e.getRowCount()}×${e.getColumnCount()}`, Do = (e) =>
|
|
1898
|
+
var Po = (e) => `${e.toString()}, ${e.getRowCount()}×${e.getColumnCount()}`, Do = (e) => w.sheetNameToString(e) ?? "Untitled", Wo = (e) => `wb.getWorksheet(${JSON.stringify(e.getWorksheet().getName())})`, Vo = (e) => ((e) => {
|
|
1899
1899
|
if (!e.includes("$")) return e;
|
|
1900
1900
|
let t = "", n = !1;
|
|
1901
1901
|
for (const o of e) {
|
|
@@ -1904,8 +1904,8 @@ var Po = (e) => `${e.toString()}, ${e.getRowCount()}×${e.getColumnCount()}`, Do
|
|
|
1904
1904
|
t += o;
|
|
1905
1905
|
}
|
|
1906
1906
|
return t;
|
|
1907
|
-
})(e.getAddress()),
|
|
1908
|
-
const t =
|
|
1907
|
+
})(e.getAddress()), Bo = (e) => {
|
|
1908
|
+
const t = Vo(e);
|
|
1909
1909
|
return t.includes("!") ? t : `${Do(e.getWorksheet().getName())}!${t}`;
|
|
1910
1910
|
}, Ho = (e) => {
|
|
1911
1911
|
const t = e.toString();
|
|
@@ -1918,19 +1918,19 @@ function Uo(e, t) {
|
|
|
1918
1918
|
0 === n.length && e.fact("None"), e.blank();
|
|
1919
1919
|
}
|
|
1920
1920
|
var qo = [
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1921
|
+
v.Role.Label,
|
|
1922
|
+
v.Role.Input,
|
|
1923
|
+
v.Role.Link,
|
|
1924
|
+
v.Role.Reference,
|
|
1925
|
+
v.Role.Computed,
|
|
1926
|
+
v.Role.Output
|
|
1927
1927
|
];
|
|
1928
1928
|
var zo = 30, Jo = 4;
|
|
1929
1929
|
function Xo(e, t, n) {
|
|
1930
1930
|
const o = /* @__PURE__ */ new Map();
|
|
1931
1931
|
let r = 0;
|
|
1932
1932
|
for (const e of n) for (const t of e.getCell().getAnomalies()) {
|
|
1933
|
-
if (t.check !==
|
|
1933
|
+
if (t.check !== v.ErrorCheck.ConstantFrequency) continue;
|
|
1934
1934
|
const n = `${t.evidence.kind}:${t.evidence.value}`;
|
|
1935
1935
|
let s = o.get(n);
|
|
1936
1936
|
s || o.set(n, s = {
|
|
@@ -2150,7 +2150,7 @@ function cr(e) {
|
|
|
2150
2150
|
function ur(e, t, n, o) {
|
|
2151
2151
|
if (0 === n.length) return;
|
|
2152
2152
|
const r = n.length > 50 ? n.slice(0, 50) : n, s = r.map((e) => ({
|
|
2153
|
-
address: Zo(
|
|
2153
|
+
address: Zo(Vo(e.getRanges()), 40),
|
|
2154
2154
|
rule: o(e)
|
|
2155
2155
|
}));
|
|
2156
2156
|
e.h2(`${t} (${n.length})`);
|
|
@@ -2206,7 +2206,7 @@ async function hr(e, t) {
|
|
|
2206
2206
|
var gr = "#REF!", mr = (e) => {
|
|
2207
2207
|
const t = e.getContent();
|
|
2208
2208
|
return "chart" === t.getType() && "function" == typeof t.getSeries ? t : null;
|
|
2209
|
-
}, pr = (e, t) => `${Do(e.getName())}!${
|
|
2209
|
+
}, pr = (e, t) => `${Do(e.getName())}!${w.rangeToString(t) ?? ""}`, fr = (e, t) => e ? pr(e.getWorksheet(), e.getCoords()) : t, wr = (e) => e.replace(/\s*[\r\n]+\s*/g, " ⏎ ").trim(), $r = (e, t) => ({
|
|
2210
2210
|
colStart: Math.min(e.colStart, t.colStart),
|
|
2211
2211
|
rowStart: Math.min(e.rowStart, t.rowStart),
|
|
2212
2212
|
colEnd: Math.max(e.colEnd, t.colEnd),
|
|
@@ -2312,7 +2312,7 @@ var Cr = (e) => Sr(e) ?? "", Er = {
|
|
|
2312
2312
|
};
|
|
2313
2313
|
var Ir = (e, t) => e.colStart <= t.colEnd && t.colStart <= e.colEnd && e.rowStart <= t.rowEnd && t.rowStart <= e.rowEnd;
|
|
2314
2314
|
function Tr(e, t) {
|
|
2315
|
-
const n = e.getWorksheet(), o = n.getWorkbook()?.getWorksheets().getItems({ visibility:
|
|
2315
|
+
const n = e.getWorksheet(), o = n.getWorkbook()?.getWorksheets().getItems({ visibility: E.Visibility.VeryHidden }) ?? [n], r = /* @__PURE__ */ new Map();
|
|
2316
2316
|
for (let e = 0; e < (t?.length ?? 0); e++) {
|
|
2317
2317
|
const n = t.at(e);
|
|
2318
2318
|
if (n.isINamedRange) continue;
|
|
@@ -2449,12 +2449,12 @@ function Wr(e, t) {
|
|
|
2449
2449
|
const h = Object.entries(n.locks ?? {}).filter(([, e]) => e).map(([e]) => e);
|
|
2450
2450
|
h.length && e.fact(`Locks: ${h.join(", ")}`);
|
|
2451
2451
|
}
|
|
2452
|
-
var
|
|
2453
|
-
const t =
|
|
2452
|
+
var Vr = (e) => {
|
|
2453
|
+
const t = Br(e);
|
|
2454
2454
|
return !0 === t?.isIShape ? Mr(t.toJSON() ?? {}) : e.getContent().getType();
|
|
2455
|
-
},
|
|
2455
|
+
}, Br = (e) => e.getContent(), Hr = (e, t, n) => {
|
|
2456
2456
|
for (const o of t.getItems()) {
|
|
2457
|
-
const t =
|
|
2457
|
+
const t = Br(o), r = [Vr(o), t.getName?.() || "(unnamed)"];
|
|
2458
2458
|
!0 === t.isIPicture && r.push(t.getResource()?.getName?.() || "(no image)");
|
|
2459
2459
|
const s = t.getTextFrame?.()?.getText();
|
|
2460
2460
|
s && r.push(Ar(s, 120, "")), o.isHidden() && r.push("(hidden)"), e.text(`${" ".repeat(n + 2)}${r.join(" · ")}`);
|
|
@@ -2464,7 +2464,7 @@ var Br = (e) => {
|
|
|
2464
2464
|
};
|
|
2465
2465
|
var Ur = (e, t) => e.length > t ? `${e.slice(0, t - 1)}…` : e, qr = (e) => e.replace(/[\r\n]+/g, " ").trim(), zr = (e) => {
|
|
2466
2466
|
const t = e.getRange();
|
|
2467
|
-
return
|
|
2467
|
+
return w.rangeToString(t.getCoords()) ?? t.toString();
|
|
2468
2468
|
}, Jr = ({ movable: e, text: t }) => Ar(t, 300, ((e) => `${Wo(e.getRange())}.getRange(${JSON.stringify(zr(e))}).getMovables()`)(e)), Xr = (e) => {
|
|
2469
2469
|
const t = e.getContent();
|
|
2470
2470
|
return "function" == typeof t.getTextFrame ? t.getTextFrame()?.getText() ?? "" : null;
|
|
@@ -2618,8 +2618,8 @@ function ss(e, t) {
|
|
|
2618
2618
|
const d = e.getContent().getDescription();
|
|
2619
2619
|
d && n.fact(`Alt Text: ${qr(d)}`), n.fact(`Anchor: ${Po(o)}, ${((e) => {
|
|
2620
2620
|
switch (e) {
|
|
2621
|
-
case
|
|
2622
|
-
case
|
|
2621
|
+
case R.Type.Absolute: return "absolute — stays put when rows or columns move";
|
|
2622
|
+
case R.Type.OneCell: return "oneCell — moves with the cells, keeps its size";
|
|
2623
2623
|
default: return "twoCell — moves and resizes with the cells";
|
|
2624
2624
|
}
|
|
2625
2625
|
})(e.getAnchorType?.())}`), n.fact(`Bounds: ${((e) => {
|
|
@@ -2634,8 +2634,8 @@ function ss(e, t) {
|
|
|
2634
2634
|
}
|
|
2635
2635
|
var as = (e) => "visible" === e.getVisibility(), is = (e, t) => {
|
|
2636
2636
|
switch (t) {
|
|
2637
|
-
case "display": return
|
|
2638
|
-
case "value": return
|
|
2637
|
+
case "display": return Vt(e, Lt.Mode.Display);
|
|
2638
|
+
case "value": return Vt(e, Lt.Mode.Value);
|
|
2639
2639
|
case "formula": {
|
|
2640
2640
|
const t = e.getFormulaText();
|
|
2641
2641
|
return t ? {
|
|
@@ -2659,7 +2659,7 @@ var as = (e) => "visible" === e.getVisibility(), is = (e, t) => {
|
|
|
2659
2659
|
}
|
|
2660
2660
|
default: return null;
|
|
2661
2661
|
}
|
|
2662
|
-
}, ls = /* @__PURE__ */ new Map([["hyperlink",
|
|
2662
|
+
}, ls = /* @__PURE__ */ new Map([["hyperlink", x.Feature.Hyperlink], ["numberFormat", x.Feature.NumberFormat]]), cs = (e, t) => t && "" !== t.trim() ? [{
|
|
2663
2663
|
field: e,
|
|
2664
2664
|
text: {
|
|
2665
2665
|
match: t,
|
|
@@ -2892,13 +2892,13 @@ var Ss = {
|
|
|
2892
2892
|
address: r
|
|
2893
2893
|
}));
|
|
2894
2894
|
})(e, t.scope, a), u = n.filter((e) => !ls.has(e)), d = n.filter((e) => ls.has(e)), h = n.includes("display") && n.includes("value"), g = "content" === o || "addresses" === o, m = [], p = [];
|
|
2895
|
-
let f = 0,
|
|
2896
|
-
const
|
|
2895
|
+
let f = 0, $ = 0, y = 0, b = 0, k = !1;
|
|
2896
|
+
const S = (e) => {
|
|
2897
2897
|
const t = e.filter((t, n) => l.test(t.text.match) && e.findIndex((e) => e.field === t.field && e.text.display === t.text.display && l.test(e.text.match)) === n);
|
|
2898
2898
|
return s ? 0 === t.length && e.length > 0 ? [e[0]] : null : 0 === t.length ? null : "addresses" === o ? t.slice(0, 1) : t;
|
|
2899
|
-
},
|
|
2900
|
-
if (r > 0 &&
|
|
2901
|
-
if (
|
|
2899
|
+
}, x = (e, t, n, o, s, a = 1) => {
|
|
2900
|
+
if (r > 0 && y >= r) return k = !0, !1;
|
|
2901
|
+
if (y++, "cell" === e ? f += a : $++, g) for (const e of o) m.push({
|
|
2902
2902
|
sheet: t,
|
|
2903
2903
|
address: n,
|
|
2904
2904
|
field: e.field,
|
|
@@ -2908,9 +2908,9 @@ var Ss = {
|
|
|
2908
2908
|
return !0;
|
|
2909
2909
|
};
|
|
2910
2910
|
for (const { sheet: e, address: t } of c) {
|
|
2911
|
-
if (
|
|
2911
|
+
if (k) continue;
|
|
2912
2912
|
const r = e.getName();
|
|
2913
|
-
|
|
2913
|
+
b++, await e.getCalculation().ready();
|
|
2914
2914
|
const s = null !== t ? e.getRange(t) : e.getUsedRange(), l = s && i && "content" === o ? fs(i, r, s) : null, c = {
|
|
2915
2915
|
...null !== t ? { address: t } : {},
|
|
2916
2916
|
...a ? {} : { ignoreHidden: !0 }
|
|
@@ -2936,10 +2936,10 @@ var Ss = {
|
|
|
2936
2936
|
text: t
|
|
2937
2937
|
}));
|
|
2938
2938
|
}
|
|
2939
|
-
const i =
|
|
2939
|
+
const i = S(s);
|
|
2940
2940
|
if (!i) return;
|
|
2941
2941
|
const c = l?.resolve(n, o);
|
|
2942
|
-
if (!
|
|
2942
|
+
if (!x("cell", r, t.getAddress(), i, c)) return { break: !0 };
|
|
2943
2943
|
m++;
|
|
2944
2944
|
}, { ignoreHidden: !a });
|
|
2945
2945
|
const f = [...g.values()].map((e) => ({
|
|
@@ -2947,23 +2947,23 @@ var Ss = {
|
|
|
2947
2947
|
at: e.getRange().getCoords()
|
|
2948
2948
|
})).sort((e, t) => ps(e.at, t.at));
|
|
2949
2949
|
for (const { comment: e, at: t } of f) {
|
|
2950
|
-
if (
|
|
2951
|
-
const n =
|
|
2950
|
+
if (k) break;
|
|
2951
|
+
const n = S(us(e));
|
|
2952
2952
|
if (!n) continue;
|
|
2953
2953
|
const o = l?.resolve(e.getRange().getCell(), {
|
|
2954
2954
|
rowIndex: t.rowStart,
|
|
2955
2955
|
colIndex: t.colStart
|
|
2956
2956
|
});
|
|
2957
|
-
|
|
2957
|
+
x("cell", r, w.rangeToString(t) ?? e.getRange().toString(), n, o) && m++;
|
|
2958
2958
|
}
|
|
2959
2959
|
for (const e of d) {
|
|
2960
|
-
if (
|
|
2960
|
+
if (k || !s) break;
|
|
2961
2961
|
const t = [...s.getRegions(ls.get(e), { ignoreHidden: !a })].map((e) => ({
|
|
2962
2962
|
region: e,
|
|
2963
2963
|
at: e.getCoords()
|
|
2964
2964
|
})).sort((e, t) => ps(e.at, t.at));
|
|
2965
2965
|
for (const { region: n, at: o } of t) {
|
|
2966
|
-
const t = n.getCell(), s = is(t, e), a =
|
|
2966
|
+
const t = n.getCell(), s = is(t, e), a = S(s ? [{
|
|
2967
2967
|
field: e,
|
|
2968
2968
|
text: s
|
|
2969
2969
|
}] : []);
|
|
@@ -2972,36 +2972,36 @@ var Ss = {
|
|
|
2972
2972
|
rowIndex: o.rowStart,
|
|
2973
2973
|
colIndex: o.colStart
|
|
2974
2974
|
}), c = (o.rowEnd - o.rowStart + 1) * (o.colEnd - o.colStart + 1);
|
|
2975
|
-
if (!
|
|
2975
|
+
if (!x("cell", r, n.toString(), a, i, c)) break;
|
|
2976
2976
|
m += c;
|
|
2977
2977
|
}
|
|
2978
2978
|
}
|
|
2979
|
-
let
|
|
2980
|
-
if (!
|
|
2979
|
+
let $ = 0;
|
|
2980
|
+
if (!k && (n.includes("shape") || n.includes("chart"))) {
|
|
2981
2981
|
const t = e.getMovables().getItems(c).filter((e) => "note" !== e.getContent().getType()).filter((e) => a || !e.isHidden()).map((e) => ({
|
|
2982
2982
|
movable: e,
|
|
2983
2983
|
at: e.getRange().getCoords()
|
|
2984
2984
|
})).sort((e, t) => ps(e.at, t.at));
|
|
2985
2985
|
for (const { movable: e, at: o } of t) {
|
|
2986
|
-
const t =
|
|
2986
|
+
const t = S(ds(e, n));
|
|
2987
2987
|
if (t) {
|
|
2988
|
-
if (!
|
|
2989
|
-
|
|
2988
|
+
if (!x("object", r, w.rangeToString(o) ?? e.getRange().toString(), t)) break;
|
|
2989
|
+
$++;
|
|
2990
2990
|
}
|
|
2991
2991
|
}
|
|
2992
2992
|
}
|
|
2993
|
-
(m > 0 ||
|
|
2993
|
+
(m > 0 || $ > 0) && p.push({
|
|
2994
2994
|
sheet: r,
|
|
2995
2995
|
cells: m,
|
|
2996
|
-
objects:
|
|
2996
|
+
objects: $
|
|
2997
2997
|
});
|
|
2998
2998
|
}
|
|
2999
|
-
if (!
|
|
2999
|
+
if (!k && n.includes("name")) {
|
|
3000
3000
|
const n = Boolean(t.scope?.trim()), o = e.getNames().getItems(a ? { includeHidden: !0 } : void 0) ?? [];
|
|
3001
3001
|
for (const e of o) {
|
|
3002
3002
|
if (n && !ms(e, c)) continue;
|
|
3003
|
-
const t =
|
|
3004
|
-
if (t && !
|
|
3003
|
+
const t = S(hs(e));
|
|
3004
|
+
if (t && !x("object", e.getScope() ?? "", e.getName(), t)) break;
|
|
3005
3005
|
}
|
|
3006
3006
|
}
|
|
3007
3007
|
return {
|
|
@@ -3010,11 +3010,11 @@ var Ss = {
|
|
|
3010
3010
|
scope: t.scope?.trim() || "workbook",
|
|
3011
3011
|
matches: m,
|
|
3012
3012
|
cellCount: f,
|
|
3013
|
-
objectCount:
|
|
3013
|
+
objectCount: $,
|
|
3014
3014
|
sheets: p,
|
|
3015
|
-
sheetsSearched:
|
|
3015
|
+
sheetsSearched: b,
|
|
3016
3016
|
sheetsMatched: p.length,
|
|
3017
|
-
truncated:
|
|
3017
|
+
truncated: k,
|
|
3018
3018
|
output: o
|
|
3019
3019
|
};
|
|
3020
3020
|
},
|
|
@@ -3218,12 +3218,12 @@ function Ds(e, t, n) {
|
|
|
3218
3218
|
return i.length > 0 ? i.join("\n") : null;
|
|
3219
3219
|
}
|
|
3220
3220
|
var Ws = (e, t, n = `${t}s`) => `${e.toLocaleString("en-US")} ${1 === e ? t : n}`;
|
|
3221
|
-
function
|
|
3221
|
+
function Vs(e, t) {
|
|
3222
3222
|
const n = t ? `${t} · ` : "", o = e.summary ? ` — ${e.summary}` : "", r = e.deprecated ? " (deprecated)" : "";
|
|
3223
3223
|
return `- ${n}\`${s = e.signature, s.replace(/;$/, "")}\`${r}${o}`;
|
|
3224
3224
|
var s;
|
|
3225
3225
|
}
|
|
3226
|
-
async function
|
|
3226
|
+
async function Bs(e) {
|
|
3227
3227
|
const t = function(e, t) {
|
|
3228
3228
|
const n = function(e) {
|
|
3229
3229
|
return e.trim().replace(/^SheetXL\./, "").replace(/\(\)$/, "").replace(/#/g, ".");
|
|
@@ -3339,7 +3339,7 @@ var Hs = {
|
|
|
3339
3339
|
description: "A type (`ICellRange`), a member (`ICellRange.setValues`), or a word to search for. Omit for the overview. A leading `SheetXL.` is accepted.",
|
|
3340
3340
|
positional: 0
|
|
3341
3341
|
}],
|
|
3342
|
-
run: (e) =>
|
|
3342
|
+
run: (e) => Bs(e?.name),
|
|
3343
3343
|
render: function(e, t) {
|
|
3344
3344
|
const n = t?.command ?? "api";
|
|
3345
3345
|
switch (e.kind) {
|
|
@@ -3365,7 +3365,7 @@ var Hs = {
|
|
|
3365
3365
|
}
|
|
3366
3366
|
if (o.members) {
|
|
3367
3367
|
i.push(""), e.filter && i.push(`${Ws(r.length, "member")} of ${s} matching '${e.filter}':`);
|
|
3368
|
-
for (const e of r) i.push(
|
|
3368
|
+
for (const e of r) i.push(Vs(e));
|
|
3369
3369
|
}
|
|
3370
3370
|
return o.nested && o.nested.length > 0 && !e.filter && i.push("", `Nested types — \`${t} ${n}.<name>\`: ${o.nested.join(", ")}`), i.push("", o.members ? `Full documentation for one member: \`${t} ${n}.<member>\` · scripting.d.ts:${o.lines[0]}-${o.lines[1]}` : `scripting.d.ts:${o.lines[0]}-${o.lines[1]}`), i.join("\n");
|
|
3371
3371
|
}(e, n);
|
|
@@ -3385,7 +3385,7 @@ var Hs = {
|
|
|
3385
3385
|
}
|
|
3386
3386
|
if (e.members.length > 0) {
|
|
3387
3387
|
n.push("", "Members:");
|
|
3388
|
-
for (const { key: t, member: o } of e.members) n.push(
|
|
3388
|
+
for (const { key: t, member: o } of e.members) n.push(Vs(o, t));
|
|
3389
3389
|
}
|
|
3390
3390
|
return e.omitted > 0 && n.push("", `…and ${Ws(e.omitted, "more match", "more matches")}; a longer word narrows it.`), n.push("", `\`${t} <Type>\` lists a type's members; \`${t} <Type>.<member>\` prints one in full.`), n.join("\n");
|
|
3391
3391
|
}(e, n);
|
|
@@ -3394,7 +3394,7 @@ var Hs = {
|
|
|
3394
3394
|
if (n.key) {
|
|
3395
3395
|
if (r.push(`\`${n.key}\` has no member \`${o}\`.`), e.nearest.length > 0) {
|
|
3396
3396
|
r.push("", `Closest on \`${n.key}\`:`);
|
|
3397
|
-
for (const t of e.nearest) r.push(
|
|
3397
|
+
for (const t of e.nearest) r.push(Vs(t));
|
|
3398
3398
|
}
|
|
3399
3399
|
} else if (r.push(`No type is named \`${n.text}\`.`), e.nearestTypes.length > 0) {
|
|
3400
3400
|
r.push("", "Nearest:");
|
|
@@ -3409,7 +3409,7 @@ var Hs = {
|
|
|
3409
3409
|
}(e, n);
|
|
3410
3410
|
}
|
|
3411
3411
|
}
|
|
3412
|
-
}, Us =
|
|
3412
|
+
}, Us = x.Feature;
|
|
3413
3413
|
async function qs(e, t, n, o) {
|
|
3414
3414
|
await zs(e, t, "precedents", n, o), await zs(e, t, "dependents", n, o);
|
|
3415
3415
|
}
|
|
@@ -3555,7 +3555,7 @@ async function zs(e, t, n, o, r) {
|
|
|
3555
3555
|
const { address: n, sheet: o } = oa(e);
|
|
3556
3556
|
return [
|
|
3557
3557
|
null !== t && o !== t ? `${Do(o)}!${n}` : n,
|
|
3558
|
-
e.isSingleCell() ?
|
|
3558
|
+
e.isSingleCell() ? Vt(e.getCell(), Lt.Mode.Display)?.display ?? "" : `${e.getRowCount()}×${e.getColumnCount()}`,
|
|
3559
3559
|
ta(e)
|
|
3560
3560
|
].filter(Boolean).join(" ");
|
|
3561
3561
|
}), o = e.ranges.length - n.length;
|
|
@@ -3662,7 +3662,7 @@ function ra(e) {
|
|
|
3662
3662
|
return t ? `name → ${t.getAddress()}` : "name";
|
|
3663
3663
|
}
|
|
3664
3664
|
if (e.isSingleCell()) {
|
|
3665
|
-
const t = e.getCell(), n =
|
|
3665
|
+
const t = e.getCell(), n = Vt(t, Lt.Mode.Display), o = t.getFormulaText(), r = n ? n.display : "(empty)";
|
|
3666
3666
|
return o ? `${r} ${o}` : r;
|
|
3667
3667
|
}
|
|
3668
3668
|
const t = `${e.getRowCount()}×${e.getColumnCount()}`, n = [...e.getRegions(Us.Formula)];
|
|
@@ -3743,7 +3743,7 @@ function ua(e, t) {
|
|
|
3743
3743
|
function da(e) {
|
|
3744
3744
|
return e.map((e) => `cites ${e.scope}: ${e.reason}`).join("; ");
|
|
3745
3745
|
}
|
|
3746
|
-
var ha =
|
|
3746
|
+
var ha = x.Feature, ga = [
|
|
3747
3747
|
["formatCells", "format cells"],
|
|
3748
3748
|
["formatColumns", "format columns"],
|
|
3749
3749
|
["formatRows", "format rows"],
|
|
@@ -3788,15 +3788,15 @@ var ha = j.Feature, ga = [
|
|
|
3788
3788
|
colEnd: Math.max(t.colEnd, e.colEnd)
|
|
3789
3789
|
} : { ...e };
|
|
3790
3790
|
}
|
|
3791
|
-
return t ?
|
|
3791
|
+
return t ? w.rangeToString(t) ?? "" : "";
|
|
3792
3792
|
}, ka = (e, t) => `${e} ${t}${1 !== e ? "s" : ""}`;
|
|
3793
3793
|
function Sa(e) {
|
|
3794
3794
|
const t = new yn(), n = e.getRanges();
|
|
3795
|
-
t.h1(`Unlocked Range — ${e.getName()}`), t.blank(), t.fact(`Ranges: ${
|
|
3795
|
+
t.h1(`Unlocked Range — ${e.getName()}`), t.blank(), t.fact(`Ranges: ${Bo(n)}`), t.fact(`Cells: ${n.size}`), t.fact("Password: " + (e.hasPassword() ? e.isUnlocked() ? "set · unlocked for this session" : "set · unlock(password) grants access" : "none"));
|
|
3796
3796
|
const o = n.getWorksheet().getProtection().isLocked();
|
|
3797
3797
|
return t.fact("In force: " + (o ? "true — the sheet is protected" : "false — the sheet is not protected, so every cell is editable")), e.getSecurityDescriptor() && t.fact("Security Descriptor: present · not evaluated"), t.toLines().join("\n").trimEnd();
|
|
3798
3798
|
}
|
|
3799
|
-
var xa =
|
|
3799
|
+
var xa = x.Feature;
|
|
3800
3800
|
async function va(e, t) {
|
|
3801
3801
|
const n = e.getWorksheet().getRange(e.getCoords());
|
|
3802
3802
|
e = n.getCell();
|
|
@@ -3804,7 +3804,7 @@ async function va(e, t) {
|
|
|
3804
3804
|
o.h1(`Cell — ${Do(e.getWorksheet().getName())}!${e.getAddress()}`), o.blank();
|
|
3805
3805
|
const r = !!e.getFormulaText(), s = e.getType();
|
|
3806
3806
|
(function(e, t) {
|
|
3807
|
-
const n =
|
|
3807
|
+
const n = Vt(t, Lt.Mode.Display), o = Vt(t, Lt.Mode.Value), r = t.getFormulaText(), s = e.toLines().length;
|
|
3808
3808
|
if (n || r) {
|
|
3809
3809
|
if (e.fact(`Type: ${t.getType()}`), n && e.fact(`Display: ${n.display}`), o && o.match !== n?.match) {
|
|
3810
3810
|
const r = function(e) {
|
|
@@ -3840,7 +3840,7 @@ async function va(e, t) {
|
|
|
3840
3840
|
return o.join(" · ");
|
|
3841
3841
|
}(d, t.getCoords())}`);
|
|
3842
3842
|
const h = dr(t.getWorksheet().getRange(t.getCoords()));
|
|
3843
|
-
h.length > 0 && e.fact(`Names: ${h.map((e) => `${e.getName()} (${
|
|
3843
|
+
h.length > 0 && e.fact(`Names: ${h.map((e) => `${e.getName()} (${Vo(e.getRanges())})`).join(" · ")}`);
|
|
3844
3844
|
const g = function(e) {
|
|
3845
3845
|
return e.getWorksheet().getProtection().isLocked() ? e.isEditAllowed() ? "true — unlocked on a protected sheet" : "false — the sheet is protected and this cell is locked" : null;
|
|
3846
3846
|
}(t);
|
|
@@ -3931,7 +3931,7 @@ async function va(e, t) {
|
|
|
3931
3931
|
const t = u >= e.start && u <= e.end, n = e.range.getAddress();
|
|
3932
3932
|
let o;
|
|
3933
3933
|
if (null === e.r1c1) o = e.range.isSingleCell() ? function(e) {
|
|
3934
|
-
const t =
|
|
3934
|
+
const t = Vt(e, Lt.Mode.Display);
|
|
3935
3935
|
return t ? `${t.display} typed` : "blank";
|
|
3936
3936
|
}(e.range.getCell()) : e.end - e.start + 1 + " cells, no formula";
|
|
3937
3937
|
else {
|
|
@@ -3948,7 +3948,7 @@ async function va(e, t) {
|
|
|
3948
3948
|
}
|
|
3949
3949
|
e.blank();
|
|
3950
3950
|
}(o, e, a), function(e, t) {
|
|
3951
|
-
const n = t.getAnomalies().filter((e) => e.check !==
|
|
3951
|
+
const n = t.getAnomalies().filter((e) => e.check !== v.ErrorCheck.ConstantFrequency);
|
|
3952
3952
|
if (0 !== n.length) {
|
|
3953
3953
|
e.h2(`Anomalies (${n.length})`);
|
|
3954
3954
|
for (const o of n) e.text(` ${Kt(o, t)}`);
|
|
@@ -4050,7 +4050,7 @@ async function Ia(e, t) {
|
|
|
4050
4050
|
let g = 0, m = !1;
|
|
4051
4051
|
t.forEach((e, t) => {
|
|
4052
4052
|
if (g >= a) return m = !0, { break: !0 };
|
|
4053
|
-
const n = t.getCell(), r = n.getFormulaText(), s =
|
|
4053
|
+
const n = t.getCell(), r = n.getFormulaText(), s = Vt(n, o);
|
|
4054
4054
|
if (!s && !r) return;
|
|
4055
4055
|
const i = {
|
|
4056
4056
|
text: (s?.display ?? "").replace(/\|/g, "\\|").replace(/[\r\n]+/g, " "),
|
|
@@ -4084,7 +4084,7 @@ async function Ia(e, t) {
|
|
|
4084
4084
|
}(n, e, t);
|
|
4085
4085
|
return function(e, t, n) {
|
|
4086
4086
|
const o = [];
|
|
4087
|
-
for (const e of t.getRegions(
|
|
4087
|
+
for (const e of t.getRegions(x.Feature.Formula)) {
|
|
4088
4088
|
const t = e.getCell(), r = t.getFormulaText();
|
|
4089
4089
|
if (r && (o.push({
|
|
4090
4090
|
address: e.getAddress(),
|
|
@@ -4145,16 +4145,16 @@ function Aa(e) {
|
|
|
4145
4145
|
}
|
|
4146
4146
|
function Ma(e) {
|
|
4147
4147
|
const t = new yn(), n = e.getRanges();
|
|
4148
|
-
t.h1(`Data Validation — ${
|
|
4148
|
+
t.h1(`Data Validation — ${Bo(n)}`), t.blank();
|
|
4149
4149
|
const o = e.getCondition();
|
|
4150
4150
|
t.fact(`Rule: ${o?.toString() || "none — anything is accepted here"}`);
|
|
4151
4151
|
const r = ((e) => {
|
|
4152
|
-
if (e?.getOperator()?.getName() !==
|
|
4152
|
+
if (e?.getOperator()?.getName() !== b.BuiltInOperatorNames.InSet) return null;
|
|
4153
4153
|
const t = e.getParam();
|
|
4154
4154
|
if (!t) return null;
|
|
4155
4155
|
const n = [], o = t.source;
|
|
4156
4156
|
null != o && n.push("string" == typeof o ? o : o.getExpression());
|
|
4157
|
-
const r = (t.items ?? []).map((e) =>
|
|
4157
|
+
const r = (t.items ?? []).map((e) => Bt(e)?.match ?? "").concat(t.additions ?? []);
|
|
4158
4158
|
if (r.length > 0) {
|
|
4159
4159
|
const e = r.slice(0, 20), t = r.length - e.length;
|
|
4160
4160
|
n.push(t > 0 ? `${e.join(", ")}, +${t} more` : e.join(", "));
|
|
@@ -4163,7 +4163,7 @@ function Ma(e) {
|
|
|
4163
4163
|
})(o);
|
|
4164
4164
|
r && t.fact(`Allowed: ${r}`), t.fact("Blanks: " + (e.isIncludeBlanks() ? "allowed" : "rejected"));
|
|
4165
4165
|
const s = e.getAlertStyle();
|
|
4166
|
-
if (t.fact(`Alert: ${s}${s ===
|
|
4166
|
+
if (t.fact(`Alert: ${s}${s === j.AlertStyle.Stop ? " — the entry is refused" : " — the entry is accepted anyway"}`), e.isShowAlertMessage()) {
|
|
4167
4167
|
const n = Fa(e.getAlertTitle(), e.getAlertMessage());
|
|
4168
4168
|
n && t.fact(`Alert Message: ${n}`);
|
|
4169
4169
|
}
|
|
@@ -4237,16 +4237,16 @@ var Pa = [
|
|
|
4237
4237
|
} catch {
|
|
4238
4238
|
return [];
|
|
4239
4239
|
}
|
|
4240
|
-
},
|
|
4240
|
+
}, Va = (e) => {
|
|
4241
4241
|
const t = e.getScope();
|
|
4242
4242
|
return t ? !0 === t.isIWorksheet ? `sheet '${t.getName()}'` : "workbook" : "global";
|
|
4243
|
-
},
|
|
4243
|
+
}, Ba = (e) => {
|
|
4244
4244
|
const t = ((e) => e.getSource()?.trim() ?? "")(e);
|
|
4245
4245
|
return {
|
|
4246
4246
|
module: e,
|
|
4247
4247
|
name: e.getName(),
|
|
4248
4248
|
language: e.getLanguage(),
|
|
4249
|
-
scope:
|
|
4249
|
+
scope: Va(e),
|
|
4250
4250
|
body: t,
|
|
4251
4251
|
lines: 0 === t.length ? 0 : t.split("\n").length,
|
|
4252
4252
|
runsInExcel: Da(t),
|
|
@@ -4256,7 +4256,7 @@ var Pa = [
|
|
|
4256
4256
|
};
|
|
4257
4257
|
function Ha(e, t, n) {
|
|
4258
4258
|
if (0 === t.length) return;
|
|
4259
|
-
const o = t.map(
|
|
4259
|
+
const o = t.map(Ba), r = o.filter((e) => e.lines > 0);
|
|
4260
4260
|
if (0 === r.length) return e.h2("Code (none)"), e.text(`${o.length} module${1 !== o.length ? "s" : ""}, none with any source.`), void e.blank();
|
|
4261
4261
|
e.h2(`Code (${r.length} module${1 !== r.length ? "s" : ""})`);
|
|
4262
4262
|
const s = r.filter((e) => !e.executable);
|
|
@@ -4335,16 +4335,16 @@ var za = [
|
|
|
4335
4335
|
}, Qa = (e) => Ja.every(([, t], n) => Ga(t(e)) === za[n]), ei = (e, t) => {
|
|
4336
4336
|
if (!e) return null;
|
|
4337
4337
|
const n = e.getCoords();
|
|
4338
|
-
return t ?
|
|
4338
|
+
return t ? w.runToString(n.colStart, n.colEnd, !0) : w.runToString(n.rowStart, n.rowEnd, !1);
|
|
4339
4339
|
}, ti = (e, t) => {
|
|
4340
4340
|
if (0 === e.length) return null;
|
|
4341
4341
|
const n = e.slice(0, 20).map((e) => {
|
|
4342
4342
|
const n = t ? e.getColumnIndex() : e.getRowIndex();
|
|
4343
|
-
return
|
|
4343
|
+
return w.runToString(n, n, t).split(":")[0];
|
|
4344
4344
|
}), o = e.length > 20 ? `, …and ${e.length - 20} more` : "";
|
|
4345
4345
|
return `before ${t ? "columns" : "rows"} ${n.join(", ")}${o}`;
|
|
4346
4346
|
}, ni = (e) => {
|
|
4347
|
-
const t = e.getHeadersFooters(), n = t.getState(), o =
|
|
4347
|
+
const t = e.getHeadersFooters(), n = t.getState(), o = S.HeaderFooterState, r = n === o.FirstAndDefault || n === o.FirstOddAndEven, s = n === o.OddAndEven || n === o.FirstOddAndEven, a = [];
|
|
4348
4348
|
return r && a.push(["first page", t.getFirstPage()]), s ? (a.push(["odd pages", t.getOddPages()]), a.push(["even pages", t.getEvenPages()])) : a.push([r ? "other pages" : "every page", t.getDefaultForAllPages()]), a;
|
|
4349
4349
|
}, oi = (e, t, n) => {
|
|
4350
4350
|
const o = [];
|
|
@@ -4403,7 +4403,7 @@ var ai = (e, t) => {
|
|
|
4403
4403
|
return n && "Object" !== n ? n : t;
|
|
4404
4404
|
}, li = (e) => {
|
|
4405
4405
|
try {
|
|
4406
|
-
return
|
|
4406
|
+
return Bt(e)?.match ?? String(e);
|
|
4407
4407
|
} catch {
|
|
4408
4408
|
return String(e);
|
|
4409
4409
|
}
|
|
@@ -4418,7 +4418,7 @@ var ui = (e) => {
|
|
|
4418
4418
|
}, di = /^\s*=\s*TABLE\s*\(([^()]*)\)\s*$/i;
|
|
4419
4419
|
function hi(e) {
|
|
4420
4420
|
const t = [];
|
|
4421
|
-
for (const n of e.getEntireRange().getRegions(
|
|
4421
|
+
for (const n of e.getEntireRange().getRegions(x.Feature.Formula)) {
|
|
4422
4422
|
if (!di.test(n.getCell().getFormulaText() ?? "")) continue;
|
|
4423
4423
|
const o = n.getCoords();
|
|
4424
4424
|
for (let n = o.rowStart; n <= o.rowEnd; n++) for (let r = o.colStart; r <= o.colEnd; r++) {
|
|
@@ -4471,19 +4471,19 @@ async function fi(e, t) {
|
|
|
4471
4471
|
let n = "";
|
|
4472
4472
|
t && t.getSelectedWorksheet()?.getId() === e.getId() && (n += " (selected)");
|
|
4473
4473
|
const o = e.getVisibility();
|
|
4474
|
-
return o ===
|
|
4474
|
+
return o === E.Visibility.Hidden ? n += " (hidden)" : o === E.Visibility.VeryHidden && (n += " (very hidden)"), e.getProtection().isLocked() && (n += " (protected)"), n;
|
|
4475
4475
|
}(e)}`), n.text(`Used: ${r ? Po(r) : "empty"}`), n.text(`Selection: ${Po(o)}`);
|
|
4476
4476
|
const s = cr(e);
|
|
4477
4477
|
s && n.text(`Outline: ${s}`);
|
|
4478
4478
|
const a = function(e) {
|
|
4479
4479
|
const t = e.getPageLayout(), n = [];
|
|
4480
|
-
t.getOrientation() !==
|
|
4480
|
+
t.getOrientation() !== S.Orientation.Portrait && n.push(t.getOrientation());
|
|
4481
4481
|
const o = Ya(t);
|
|
4482
4482
|
o && n.push(o);
|
|
4483
4483
|
const r = Za(t);
|
|
4484
4484
|
r && n.push(r);
|
|
4485
4485
|
const s = t.getPrintArea();
|
|
4486
|
-
s && n.push(`print area ${
|
|
4486
|
+
s && n.push(`print area ${Vo(s)}`);
|
|
4487
4487
|
const a = ei(t.getPrintTitleRows(), !1);
|
|
4488
4488
|
a && n.push(`title rows ${a}`);
|
|
4489
4489
|
const i = ei(t.getPrintTitleColumns(), !0);
|
|
@@ -4624,12 +4624,12 @@ function yi(e, t) {
|
|
|
4624
4624
|
}
|
|
4625
4625
|
var bi = (e) => !!e && "object" == typeof e && !0 === e.isIRange, ki = (e) => {
|
|
4626
4626
|
if (null == e) return { text: "" };
|
|
4627
|
-
const t = (
|
|
4627
|
+
const t = (Bt(e)?.display ?? "").replace(/[\r\n]+/g, " ");
|
|
4628
4628
|
return "number" == typeof e ? {
|
|
4629
4629
|
text: t,
|
|
4630
4630
|
alignment: "right"
|
|
4631
4631
|
} : { text: t };
|
|
4632
|
-
}, Si =
|
|
4632
|
+
}, Si = x.Feature, xi = [
|
|
4633
4633
|
[Si.Font, "fonts"],
|
|
4634
4634
|
[Si.NumberFormat, "formats"],
|
|
4635
4635
|
[Si.Fill, "fills"],
|
|
@@ -4640,7 +4640,7 @@ async function vi(e, t) {
|
|
|
4640
4640
|
const n = new yn();
|
|
4641
4641
|
n.h1(`Workbook — ${e.getName() ?? "Untitled"}`), n.text(`Locale: ${e.getRuntime().getLocale()}`);
|
|
4642
4642
|
const o = e.getCalculation();
|
|
4643
|
-
o.getStatus() ===
|
|
4643
|
+
o.getStatus() === k.Status.Off ? n.text("Calculation: off — formulas have not been evaluated; values are as loaded. wb.getCalculation().calculate() evaluates them") : o.getStatus() === k.Status.Error ? n.text("Calculation: error — the engine failed to start; values are as loaded. wb.getCalculation().start() tries again") : o.getCalculationMode() === k.CalculationMode.Manual && n.text("Calculation: manual — values are as of the last calculation. wb.getCalculation().calculate() refreshes them");
|
|
4644
4644
|
const r = ((e) => {
|
|
4645
4645
|
const t = pa(e);
|
|
4646
4646
|
if (!t) return null;
|
|
@@ -4648,7 +4648,7 @@ async function vi(e, t) {
|
|
|
4648
4648
|
return n ? `${n} ${t}` : t;
|
|
4649
4649
|
})(e.getProtection());
|
|
4650
4650
|
r && n.text(`Protection: ${r}`), n.blank();
|
|
4651
|
-
const s = e.getWorksheets().getItems({ visibility:
|
|
4651
|
+
const s = e.getWorksheets().getItems({ visibility: E.Visibility.VeryHidden }), a = e.getSelectedSheet(), i = e.getStyles().getNormal(), l = [];
|
|
4652
4652
|
for (const e of s) {
|
|
4653
4653
|
const t = Ci(e, i);
|
|
4654
4654
|
l.push({
|
|
@@ -4690,7 +4690,7 @@ async function vi(e, t) {
|
|
|
4690
4690
|
n.blank();
|
|
4691
4691
|
}
|
|
4692
4692
|
u.length < l.length && (n.text(`…and ${l.length - u.length} more sheets · wb.getWorksheets().getItems() lists all`), n.blank());
|
|
4693
|
-
const m = e.getSheets({ visibility:
|
|
4693
|
+
const m = e.getSheets({ visibility: E.Visibility.VeryHidden }).filter((e) => e.getKind() !== E.Kind.Worksheet);
|
|
4694
4694
|
if (m.length > 0) {
|
|
4695
4695
|
n.h2(`Other sheets (${m.length})`), n.blank();
|
|
4696
4696
|
for (const e of m) n.text(` ${Mi(e, e.getId() === a.getId())}`);
|
|
@@ -4791,7 +4791,7 @@ function Ci(e, t) {
|
|
|
4791
4791
|
for (const n of l) {
|
|
4792
4792
|
const o = n.getRowCount() * n.getColumnCount();
|
|
4793
4793
|
t += o;
|
|
4794
|
-
for (const t of n.getCell().getAnomalies()) t.check !==
|
|
4794
|
+
for (const t of n.getCell().getAnomalies()) t.check !== v.ErrorCheck.ConstantFrequency && e.set(t.check, (e.get(t.check) ?? 0) + o);
|
|
4795
4795
|
}
|
|
4796
4796
|
r.push({
|
|
4797
4797
|
label: "anomalies",
|
|
@@ -4910,18 +4910,18 @@ function Ti(e) {
|
|
|
4910
4910
|
colEnd: Math.max(t.colEnd, e.colEnd)
|
|
4911
4911
|
} : e;
|
|
4912
4912
|
}
|
|
4913
|
-
return t ?
|
|
4913
|
+
return t ? w.rangeToString(t) ?? "" : "";
|
|
4914
4914
|
}
|
|
4915
4915
|
var Ni = (e, t) => `${e} ${t}${1 !== e ? "s" : ""}`;
|
|
4916
4916
|
function Ai(e, t) {
|
|
4917
4917
|
const n = e.getVisibility();
|
|
4918
4918
|
let o = "";
|
|
4919
|
-
return t && (o += " (selected)"), n ===
|
|
4919
|
+
return t && (o += " (selected)"), n === E.Visibility.Hidden ? o += " (hidden)" : n === E.Visibility.VeryHidden && (o += " (very hidden)"), e.getProtection().isLocked() && (o += " (protected)"), `${Do(e.getName())}${o}`;
|
|
4920
4920
|
}
|
|
4921
4921
|
function Mi(e, t) {
|
|
4922
|
-
const n = e.getKind(), o = n ===
|
|
4922
|
+
const n = e.getKind(), o = n === E.Kind.Chart ? "chart sheet" : n === E.Kind.Macro ? "Excel 4.0 macro sheet" : "dialog sheet", r = e.getVisibility();
|
|
4923
4923
|
let s = ` (${o})`;
|
|
4924
|
-
return t && (s += " (selected)"), r ===
|
|
4924
|
+
return t && (s += " (selected)"), r === E.Visibility.Hidden ? s += " (hidden)" : r === E.Visibility.VeryHidden && (s += " (very hidden)"), `${Do(e.getName())}${s}`;
|
|
4925
4925
|
}
|
|
4926
4926
|
var Fi = 6;
|
|
4927
4927
|
function _i(e, t, n, o, r) {
|
|
@@ -4993,7 +4993,7 @@ function _i(e, t, n, o, r) {
|
|
|
4993
4993
|
for (const { movable: e, detail: t } of m) {
|
|
4994
4994
|
const n = e.getRange();
|
|
4995
4995
|
l.push({
|
|
4996
|
-
address: `${Do(n.getWorksheet().getName())}!${
|
|
4996
|
+
address: `${Do(n.getWorksheet().getName())}!${w.rangeToString(n.getCoords()) ?? ""}`,
|
|
4997
4997
|
size: "chart",
|
|
4998
4998
|
payload: `${e.getContent().getName?.() || "(unnamed)"} · ${t}`
|
|
4999
4999
|
});
|
|
@@ -5001,13 +5001,13 @@ function _i(e, t, n, o, r) {
|
|
|
5001
5001
|
if (0 === a && 0 === i.length) return;
|
|
5002
5002
|
const p = [];
|
|
5003
5003
|
a > 0 && p.push(String(a)), i.length > 0 && p.push(`${i.length} in charts`), e.h2(`${t} (${p.join(" · ")})`);
|
|
5004
|
-
const f = Math.max(0, ...l.map((e) => e.address.length)),
|
|
5005
|
-
for (const t of l) e.text(` ${t.address.padEnd(f)} ${t.size.padEnd(
|
|
5006
|
-
const
|
|
5007
|
-
c >
|
|
5004
|
+
const f = Math.max(0, ...l.map((e) => e.address.length)), $ = Math.max(0, ...l.map((e) => e.size.length));
|
|
5005
|
+
for (const t of l) e.text(` ${t.address.padEnd(f)} ${t.size.padEnd($)} ${t.payload}`.trimEnd());
|
|
5006
|
+
const y = l.length - m.length + g;
|
|
5007
|
+
c > y && e.text(` …and ${c - y} more · getRegions('${o}') on a sheet's used range lists the rest`), i.length > m.length && e.text(` …and ${i.length - m.length} more in charts · a sheet's report lists its charts under Charts`), e.blank();
|
|
5008
5008
|
}
|
|
5009
5009
|
function Oi(e) {
|
|
5010
|
-
const t = e.getCell(), n =
|
|
5010
|
+
const t = e.getCell(), n = Vt(t, Lt.Mode.Display)?.display ?? "", o = t.getFormulaText();
|
|
5011
5011
|
if (!o) return n;
|
|
5012
5012
|
const r = da(ua(t.getFormula()?.getTokens() ?? [], t.getWorksheet().getWorkbook()));
|
|
5013
5013
|
return [`${n} ${o}`.trim(), r].filter(Boolean).join(" · ");
|
|
@@ -5035,7 +5035,7 @@ function Di(e) {
|
|
|
5035
5035
|
const r = o[0].replace(/^#+\s*/, ""), s = o.slice(1);
|
|
5036
5036
|
return s.length <= 2 ? [r, ...s].join(" · ") : `${r} · ${s.length} more lines — return it on its own`;
|
|
5037
5037
|
}
|
|
5038
|
-
var Wi = 20,
|
|
5038
|
+
var Wi = 20, Vi = [
|
|
5039
5039
|
{
|
|
5040
5040
|
kind: "workbook",
|
|
5041
5041
|
is: (e) => Li(e, "isIWorkbook"),
|
|
@@ -5078,7 +5078,7 @@ var Wi = 20, Bi = [
|
|
|
5078
5078
|
render: (e, t) => function(e, t) {
|
|
5079
5079
|
const n = new yn(), o = e.getItems({ language: null }) ?? [];
|
|
5080
5080
|
if (n.h1(`Modules — ${o.length} module${1 !== o.length ? "s" : ""}`), n.blank(), 0 === o.length) return n.text("None"), n.toLines().join("\n").trimEnd();
|
|
5081
|
-
const r = o.map(
|
|
5081
|
+
const r = o.map(Ba);
|
|
5082
5082
|
Ha(n, o, t);
|
|
5083
5083
|
for (const e of r) 0 !== e.lines && (Ua(n, e, (e) => n.h2(e), t), n.blank());
|
|
5084
5084
|
return n.toLines().join("\n").trimEnd();
|
|
@@ -5089,7 +5089,7 @@ var Wi = 20, Bi = [
|
|
|
5089
5089
|
is: (e) => Li(e, "isIModule"),
|
|
5090
5090
|
render: (e, t) => function(e, t) {
|
|
5091
5091
|
const n = new yn();
|
|
5092
|
-
return Ua(n,
|
|
5092
|
+
return Ua(n, Ba(e), (e) => n.h1(e), t), n.toLines().join("\n").trimEnd();
|
|
5093
5093
|
}(e, t)
|
|
5094
5094
|
},
|
|
5095
5095
|
{
|
|
@@ -5114,7 +5114,7 @@ var Wi = 20, Bi = [
|
|
|
5114
5114
|
}
|
|
5115
5115
|
if ((o = n) && "object" == typeof o && !0 === o.isIRange) return void e.fact(`Value: spills ${n.getRowCount()}×${n.getColumnCount()} — an array result`);
|
|
5116
5116
|
var o;
|
|
5117
|
-
const r =
|
|
5117
|
+
const r = Bt(n);
|
|
5118
5118
|
e.fact(`Value: ${r ? r.display : "(empty)"}`);
|
|
5119
5119
|
}(o, e), o.fact(`Status: ${e.getCalculationStatus()}`), e.isValid() || o.fact("Valid: false — the text did not parse as a complete expression");
|
|
5120
5120
|
const s = _a.filter(([t]) => e[t]()).map(([, e]) => e);
|
|
@@ -5239,7 +5239,7 @@ var Wi = 20, Bi = [
|
|
|
5239
5239
|
is: (e) => Li(e, "isIConditionalFormat"),
|
|
5240
5240
|
render: (e) => function(e) {
|
|
5241
5241
|
const t = new yn(), n = e.getRanges();
|
|
5242
|
-
t.h1(`Conditional Format — ${
|
|
5242
|
+
t.h1(`Conditional Format — ${Bo(n)}`), t.blank(), t.fact(`Order: ${e.getIndex() + 1}`);
|
|
5243
5243
|
const o = e.getScale();
|
|
5244
5244
|
if (o) t.fact(`Rule: ${bo(o)}`);
|
|
5245
5245
|
else {
|
|
@@ -5288,11 +5288,11 @@ var Wi = 20, Bi = [
|
|
|
5288
5288
|
const t = new yn();
|
|
5289
5289
|
t.h1("Page Layout"), t.blank();
|
|
5290
5290
|
const n = e.getOrientation();
|
|
5291
|
-
t.fact(`Orientation: ${n}${n ===
|
|
5291
|
+
t.fact(`Orientation: ${n}${n === S.Orientation.Portrait ? " (default)" : ""}`), t.fact(`Paper: ${Ya(e) ?? "letter (default)"}`), t.fact(`Zoom: ${Za(e) ?? "100% (default)"}`);
|
|
5292
5292
|
const o = Ja.map(([t, n]) => `${t} ${Ga(n(e))}`).join(" · ");
|
|
5293
5293
|
t.fact(`Margins (inches): ${o}${Qa(e) ? " (default)" : ""}`);
|
|
5294
5294
|
const r = e.getPrintArea();
|
|
5295
|
-
t.fact(`Print area: ${r ?
|
|
5295
|
+
t.fact(`Print area: ${r ? Vo(r) : "none — the used range prints"}`), t.fact(`Title rows: ${ei(e.getPrintTitleRows(), !1) ?? "none"}`), t.fact(`Title columns: ${ei(e.getPrintTitleColumns(), !0) ?? "none"}`);
|
|
5296
5296
|
const s = e.getHorizontalPageBreaks(), a = e.getVerticalPageBreaks();
|
|
5297
5297
|
t.fact("Row breaks: " + (s.length > 0 ? `${s.length} · ${ti(s, !1)}` : "none")), t.fact("Column breaks: " + (a.length > 0 ? `${a.length} · ${ti(a, !0)}` : "none"));
|
|
5298
5298
|
const i = [];
|
|
@@ -5300,7 +5300,7 @@ var Wi = 20, Bi = [
|
|
|
5300
5300
|
const l = Xa.filter(([, t]) => t(e)).map(([e]) => e);
|
|
5301
5301
|
l.length > 0 && t.fact(`Also prints: ${l.join(", ")}`);
|
|
5302
5302
|
const c = e.getFirstPageNumber();
|
|
5303
|
-
"" !== c && t.fact(`First page number: ${c}`), e.getPrintOrder() !==
|
|
5303
|
+
"" !== c && t.fact(`First page number: ${c}`), e.getPrintOrder() !== S.PrintOrder.DownThenOver && t.fact(`Page order: ${e.getPrintOrder()}`), e.getPrintComments() !== S.PrintComments.NoComments && t.fact(`Notes: ${e.getPrintComments()}`), e.getPrintErrors() !== S.PrintErrorType.AsDisplayed && t.fact(`Errors print as: ${e.getPrintErrors()}`);
|
|
5304
5304
|
const u = ni(e).flatMap(([e, t]) => {
|
|
5305
5305
|
const n = [], o = oi(t.getLeftHeader(), t.getCenterHeader(), t.getRightHeader());
|
|
5306
5306
|
o && n.push(`${e} header: ${o}`);
|
|
@@ -5314,7 +5314,7 @@ var Wi = 20, Bi = [
|
|
|
5314
5314
|
kind: "stats",
|
|
5315
5315
|
is: (e) => Li(e, "isIRangeStats"),
|
|
5316
5316
|
render: (e) => function(e) {
|
|
5317
|
-
const t = new yn(), n = e.getCoords(), o = n ?
|
|
5317
|
+
const t = new yn(), n = e.getCoords(), o = n ? w.rangeToString(n) : null;
|
|
5318
5318
|
t.h1(o ? `Stats — ${o}` : "Stats");
|
|
5319
5319
|
const r = e.getTypedCounts();
|
|
5320
5320
|
t.fact(`Cells: ${e.getSize()}`), t.fact(`Values: ${e.getCount()}`);
|
|
@@ -5329,7 +5329,7 @@ var Wi = 20, Bi = [
|
|
|
5329
5329
|
for (const [e, n] of t.getValueCounts()) {
|
|
5330
5330
|
const r = t.getExtent(e);
|
|
5331
5331
|
o.push({
|
|
5332
|
-
label:
|
|
5332
|
+
label: Bt(e)?.display ?? "",
|
|
5333
5333
|
content: n,
|
|
5334
5334
|
styled: n,
|
|
5335
5335
|
blocks: r && $i(r) === n ? [r] : []
|
|
@@ -5382,9 +5382,9 @@ var Wi = 20, Bi = [
|
|
|
5382
5382
|
kind: "regions",
|
|
5383
5383
|
is: (e) => Li(e, "isICellRegions"),
|
|
5384
5384
|
render: (e, t) => function(e, t) {
|
|
5385
|
-
const n = [...e], o = e.getFeatures(), r = o.join(", "), s = 1 === o.length && o[0] ===
|
|
5385
|
+
const n = [...e], o = e.getFeatures(), r = o.join(", "), s = 1 === o.length && o[0] === x.Feature.Contentful, a = e.getRange().getWorksheet().getWorkbook()?.getStyles().getNormal() ?? null, i = new yn();
|
|
5386
5386
|
i.h1(`Regions — ${r} (${n.length})`);
|
|
5387
|
-
const l = 1 === o.length && o[0] ===
|
|
5387
|
+
const l = 1 === o.length && o[0] === x.Feature.Anomalies;
|
|
5388
5388
|
return To(i, n, {
|
|
5389
5389
|
...t,
|
|
5390
5390
|
profile: s,
|
|
@@ -5452,13 +5452,13 @@ var Wi = 20, Bi = [
|
|
|
5452
5452
|
return n.length < e.length && o.push(`…and ${e.length - n.length} more · render one at a time to see them`), o.join("\n\n");
|
|
5453
5453
|
}
|
|
5454
5454
|
}
|
|
5455
|
-
],
|
|
5455
|
+
], Bi = Vi.map((e) => e.kind), Hi = class extends Error {
|
|
5456
5456
|
constructor(e) {
|
|
5457
5457
|
super(e), this.name = "NoRendererError";
|
|
5458
5458
|
}
|
|
5459
5459
|
};
|
|
5460
5460
|
function Ui(e) {
|
|
5461
|
-
for (const t of
|
|
5461
|
+
for (const t of Vi) if (t.is(e)) return t;
|
|
5462
5462
|
return null;
|
|
5463
5463
|
}
|
|
5464
5464
|
async function qi(e, t, n) {
|
|
@@ -5469,18 +5469,18 @@ async function qi(e, t, n) {
|
|
|
5469
5469
|
for (const t of r) if (e.push(t), e.length >= 1e3) break;
|
|
5470
5470
|
r = e, o = Ui(r);
|
|
5471
5471
|
}
|
|
5472
|
-
if (!o) throw new Hi(`No markdown renderer for this value. Renderable kinds: ${
|
|
5472
|
+
if (!o) throw new Hi(`No markdown renderer for this value. Renderable kinds: ${Bi.join(", ")}.`);
|
|
5473
5473
|
const s = e?.getCalculation() ?? null;
|
|
5474
5474
|
let a = await o.render(r, n);
|
|
5475
5475
|
for (let e = 0; e < zi && "calculating" === s?.getCalculationState(); e++) await s.ready(), a = await o.render(r, n);
|
|
5476
5476
|
return a;
|
|
5477
5477
|
}
|
|
5478
5478
|
var zi = 2;
|
|
5479
|
-
var Ji =
|
|
5479
|
+
var Ji = x.Feature;
|
|
5480
5480
|
function Xi(e, t, n, o, r, s) {
|
|
5481
5481
|
const a = o?.getRanges() ?? null, i = {
|
|
5482
5482
|
sheet: Do(e.getName()),
|
|
5483
|
-
written: n ?
|
|
5483
|
+
written: n ? Bo(n) : null,
|
|
5484
5484
|
cells: 0,
|
|
5485
5485
|
formulas: 0,
|
|
5486
5486
|
values: 0,
|
|
@@ -5497,11 +5497,11 @@ function Xi(e, t, n, o, r, s) {
|
|
|
5497
5497
|
return {
|
|
5498
5498
|
kind: t.getKind(),
|
|
5499
5499
|
axis: r,
|
|
5500
|
-
address: a.length > 0 ?
|
|
5500
|
+
address: a.length > 0 ? Bo(e.getRanges(a)) : null,
|
|
5501
5501
|
whole: s
|
|
5502
5502
|
};
|
|
5503
5503
|
}(e, t)) : [],
|
|
5504
|
-
styles: a ?
|
|
5504
|
+
styles: a ? Bo(a) : null,
|
|
5505
5505
|
blocks: [],
|
|
5506
5506
|
blocksMore: 0
|
|
5507
5507
|
};
|
|
@@ -5568,10 +5568,10 @@ function Zi(e, t) {
|
|
|
5568
5568
|
const n = e.getRowCount() * e.getColumnCount(), o = n > t, r = [];
|
|
5569
5569
|
let s = null;
|
|
5570
5570
|
return e.forEach((e, t) => {
|
|
5571
|
-
const n =
|
|
5571
|
+
const n = Vt(t.getCell(), Lt.Mode.Display)?.display ?? "";
|
|
5572
5572
|
!o || r.length < 3 ? r.push(n) : s = n;
|
|
5573
5573
|
}), o && null !== s && r.push(s), {
|
|
5574
|
-
address:
|
|
5574
|
+
address: Bo(e.getWorksheet().getRanges(e.getAddress())),
|
|
5575
5575
|
formula: e.getCell().getFormulaText() ?? "",
|
|
5576
5576
|
cells: n,
|
|
5577
5577
|
values: r,
|
|
@@ -5601,15 +5601,15 @@ function Qi(e, t) {
|
|
|
5601
5601
|
sheet: e,
|
|
5602
5602
|
cells: t
|
|
5603
5603
|
})),
|
|
5604
|
-
areas: o.slice(0, s).map((e) =>
|
|
5604
|
+
areas: o.slice(0, s).map((e) => Bo(e.getWorksheet().getRanges(e.getAddress()))),
|
|
5605
5605
|
areasMore: o.length - s
|
|
5606
5606
|
};
|
|
5607
5607
|
}
|
|
5608
5608
|
function el(e, t) {
|
|
5609
5609
|
const n = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map(), a = (e) => {
|
|
5610
5610
|
for (const t of dr(e)) n.add(Qo(t));
|
|
5611
|
-
for (const t of e.getConditionalFormats()) o.add(
|
|
5612
|
-
for (const t of e.getDataValidations()) r.add(
|
|
5611
|
+
for (const t of e.getConditionalFormats()) o.add(Bo(t.getRanges()));
|
|
5612
|
+
for (const t of e.getDataValidations()) r.add(Bo(t.getRanges()));
|
|
5613
5613
|
};
|
|
5614
5614
|
for (const n of e) for (let e = 0; e < n.length; e++) {
|
|
5615
5615
|
const o = n.at(e);
|
|
@@ -5712,10 +5712,10 @@ async function il(e, t, n) {
|
|
|
5712
5712
|
const h = function(e) {
|
|
5713
5713
|
const t = /* @__PURE__ */ new Set(), n = [];
|
|
5714
5714
|
for (const o of e) if (0 !== (o.getCounts([Ji.Error])[Ji.Error] ?? 0)) for (const e of o.getRegions(Ji.Error)) {
|
|
5715
|
-
const r =
|
|
5715
|
+
const r = Bo(o.getWorksheet().getRanges(e.getAddress()));
|
|
5716
5716
|
t.has(r) || (t.add(r), n.push({
|
|
5717
5717
|
address: r,
|
|
5718
|
-
error:
|
|
5718
|
+
error: Vt(e.getCell(), Lt.Mode.Display)?.display ?? "",
|
|
5719
5719
|
cells: e.getRowCount() * e.getColumnCount()
|
|
5720
5720
|
}));
|
|
5721
5721
|
}
|
|
@@ -6012,7 +6012,7 @@ async function Al(e, t) {
|
|
|
6012
6012
|
try {
|
|
6013
6013
|
const n = "snippet" === await xl(e) ? await Rl(e) : null;
|
|
6014
6014
|
if ("undefined" === t && !n?.expectsValue) return [];
|
|
6015
|
-
const [{ ScriptCompiler: o }, { getScriptingDeclarations: r }] = await Promise.all([import("./assets/
|
|
6015
|
+
const [{ ScriptCompiler: o }, { getScriptingDeclarations: r }] = await Promise.all([import("./assets/Xe7sA_mEwDQpJjcF.js"), import("./assets/CSLLHl-zum7m1CJl.js")]), { diagnostics: s } = await o.compile({
|
|
6016
6016
|
source: n?.source ?? e,
|
|
6017
6017
|
ambientTypes: await r(),
|
|
6018
6018
|
lenient: !0,
|
|
@@ -6047,7 +6047,7 @@ var Ml = (e, t) => {
|
|
|
6047
6047
|
throw new Error(`Unable to read workbook from '${o.path}' — ${e?.message ?? String(e)}`, { cause: e });
|
|
6048
6048
|
}
|
|
6049
6049
|
if (!r) throw new Error(`Unable to read workbook from '${o.path}' — no content.`);
|
|
6050
|
-
return new t(e, o.name ??
|
|
6050
|
+
return new t(e, o.name ?? V(o.path), n, r, { path: o.path });
|
|
6051
6051
|
}
|
|
6052
6052
|
if ("fork" === n) {
|
|
6053
6053
|
if (!o.json) throw new Error("origin 'fork' requires source workbook json.");
|
|
@@ -6167,7 +6167,7 @@ var Ml = (e, t) => {
|
|
|
6167
6167
|
switch (typeof e) {
|
|
6168
6168
|
case "number":
|
|
6169
6169
|
case "boolean": return {
|
|
6170
|
-
text:
|
|
6170
|
+
text: Bt(e)?.display ?? String(e),
|
|
6171
6171
|
rendered: !0
|
|
6172
6172
|
};
|
|
6173
6173
|
case "bigint":
|
|
@@ -6182,7 +6182,7 @@ var Ml = (e, t) => {
|
|
|
6182
6182
|
}
|
|
6183
6183
|
const t = e;
|
|
6184
6184
|
if (!0 === t.isFormulaError || !0 === t.isIRichData) return {
|
|
6185
|
-
text:
|
|
6185
|
+
text: Bt(e)?.display ?? "",
|
|
6186
6186
|
rendered: !0
|
|
6187
6187
|
};
|
|
6188
6188
|
let n;
|
|
@@ -6284,7 +6284,7 @@ function Wl(e) {
|
|
|
6284
6284
|
ordinal: Number.parseInt(t[2], 10)
|
|
6285
6285
|
} : null;
|
|
6286
6286
|
}
|
|
6287
|
-
var
|
|
6287
|
+
var Vl = class e {
|
|
6288
6288
|
static {
|
|
6289
6289
|
this.CLOSED_LIMIT = 20;
|
|
6290
6290
|
}
|
|
@@ -6518,7 +6518,7 @@ var Bl = class e {
|
|
|
6518
6518
|
}));
|
|
6519
6519
|
return [...e, ...n];
|
|
6520
6520
|
}
|
|
6521
|
-
},
|
|
6521
|
+
}, Bl = class extends Error {
|
|
6522
6522
|
constructor(e, t, n = []) {
|
|
6523
6523
|
super(`Screenshot unavailable: ${t}`), this.name = "ScreenshotUnavailableError", this.reason = e, this.tried = n;
|
|
6524
6524
|
}
|
|
@@ -6532,7 +6532,7 @@ var Ul = class e {
|
|
|
6532
6532
|
path: e,
|
|
6533
6533
|
source: "env"
|
|
6534
6534
|
};
|
|
6535
|
-
throw new
|
|
6535
|
+
throw new Bl("not-found", `${Hl} is set to '${e}', which does not exist.`);
|
|
6536
6536
|
}
|
|
6537
6537
|
const t = (() => {
|
|
6538
6538
|
const e = process.env;
|
|
@@ -6552,7 +6552,7 @@ var Ul = class e {
|
|
|
6552
6552
|
...t.map((e) => z(e, "Chromium.app", "Contents", "MacOS", "Chromium"))
|
|
6553
6553
|
];
|
|
6554
6554
|
}
|
|
6555
|
-
const t = (e.PATH ?? "").split(
|
|
6555
|
+
const t = (e.PATH ?? "").split(B).filter(Boolean);
|
|
6556
6556
|
return [
|
|
6557
6557
|
"google-chrome",
|
|
6558
6558
|
"google-chrome-stable",
|
|
@@ -6566,7 +6566,7 @@ var Ul = class e {
|
|
|
6566
6566
|
path: n,
|
|
6567
6567
|
source: "search"
|
|
6568
6568
|
};
|
|
6569
|
-
throw new
|
|
6569
|
+
throw new Bl("not-found", `No Chrome or Edge found. Install one, or set ${Hl} to a Chromium-family executable.`, t);
|
|
6570
6570
|
}(), o = t?.launchTimeoutMs ?? 15e3;
|
|
6571
6571
|
(function() {
|
|
6572
6572
|
const e = D(), t = Date.now();
|
|
@@ -6605,7 +6605,7 @@ var Ul = class e {
|
|
|
6605
6605
|
windowsHide: !0
|
|
6606
6606
|
});
|
|
6607
6607
|
} catch (e) {
|
|
6608
|
-
throw Jl(r), new
|
|
6608
|
+
throw Jl(r), new Bl("launch-failed", `${n.path} could not be started: ${e?.message ?? e}`);
|
|
6609
6609
|
}
|
|
6610
6610
|
const a = new e(s, n, r, t?.commandTimeoutMs ?? 3e4);
|
|
6611
6611
|
try {
|
|
@@ -6616,7 +6616,7 @@ var Ul = class e {
|
|
|
6616
6616
|
})]).finally(() => clearTimeout(o));
|
|
6617
6617
|
}(a.send("Browser.getVersion"), o, `did not answer within ${o} ms`)).product, a;
|
|
6618
6618
|
} catch (e) {
|
|
6619
|
-
throw await a.close(), new
|
|
6619
|
+
throw await a.close(), new Bl("launch-failed", `${n.path} ${e?.message ?? e}`);
|
|
6620
6620
|
}
|
|
6621
6621
|
}
|
|
6622
6622
|
constructor(e, t, n, o) {
|
|
@@ -6722,9 +6722,9 @@ var Gl = class e {
|
|
|
6722
6722
|
const e = {
|
|
6723
6723
|
origin: "http://screenshot.sheetxl.invalid",
|
|
6724
6724
|
key: null
|
|
6725
|
-
}, t = await
|
|
6725
|
+
}, t = await $.getDetails();
|
|
6726
6726
|
if (t.isEval() || !t.getRuntimes().includes("browser")) return e;
|
|
6727
|
-
const n = await
|
|
6727
|
+
const n = await $.getLicenseKey();
|
|
6728
6728
|
if (!n) return e;
|
|
6729
6729
|
for (const e of t.getDomains()) if (!e.includes("*")) try {
|
|
6730
6730
|
const t = new URL(e);
|
|
@@ -6752,7 +6752,7 @@ var Gl = class e {
|
|
|
6752
6752
|
async capture(e, t) {
|
|
6753
6753
|
if (!Zl(e)) {
|
|
6754
6754
|
const n = e.getCalculation();
|
|
6755
|
-
n.getStatus() ===
|
|
6755
|
+
n.getStatus() === k.Status.Running && await n.whenPendingDone({ timeout: t?.answerTimeout ?? 1e4 });
|
|
6756
6756
|
}
|
|
6757
6757
|
const n = new Uint8Array(Zl(e) ? e : await A.writeArrayBuffer(e, { format: "sxl" })), o = t?.maxEdge ?? 1600, r = t?.scale ?? 1, s = {
|
|
6758
6758
|
range: t?.range,
|
|
@@ -7016,7 +7016,7 @@ async function ac(e, t = function(e = process.env.SHEETXL_RUN_TIMEOUT) {
|
|
|
7016
7016
|
const t = Number(e);
|
|
7017
7017
|
return !Number.isFinite(t) || t < 0 ? sc : 0 === t ? null : Math.round(1e3 * t);
|
|
7018
7018
|
}()) {
|
|
7019
|
-
const { ScriptCompiler: n, DiagnosticCode: o } = await import("./assets/
|
|
7019
|
+
const { ScriptCompiler: n, DiagnosticCode: o } = await import("./assets/Xe7sA_mEwDQpJjcF.js"), r = await T(), s = null !== t ? {
|
|
7020
7020
|
key: me(),
|
|
7021
7021
|
timeoutMs: t
|
|
7022
7022
|
} : void 0, a = async (e) => {
|
|
@@ -7206,7 +7206,7 @@ var kc = function(e) {
|
|
|
7206
7206
|
if (!t) return lt = null, null;
|
|
7207
7207
|
const n = /* @__PURE__ */ new Date(), o = `${n.getFullYear()}${String(n.getMonth() + 1).padStart(2, "0")}${String(n.getDate()).padStart(2, "0")}`, r = e.tag ? `${o}-${e.tag}-${process.pid}.jsonl` : `${o}-${process.pid}.jsonl`;
|
|
7208
7208
|
return lt = W.join(t, r), dt = { transport: e.transport }, lt;
|
|
7209
|
-
}({ transport: "mcp" }), Sc = new
|
|
7209
|
+
}({ transport: "mcp" }), Sc = new Vl(async function() {
|
|
7210
7210
|
const e = await Ue();
|
|
7211
7211
|
return e ? new kt(e.port, e.token) : null;
|
|
7212
7212
|
});
|
|
@@ -7254,7 +7254,7 @@ var xc = process.env.SHEETXL_WORKSPACE ?? process.cwd(), vc = function(e, t, n,
|
|
|
7254
7254
|
}(Pl, xc, /* @__PURE__ */ new Date(), kc), Cc = function(e, t) {
|
|
7255
7255
|
const n = new Yl(), o = /* @__PURE__ */ new Map(), r = new ic(), s = new fe({
|
|
7256
7256
|
name: "sheetxl-mcp",
|
|
7257
|
-
version: "0.8.0-beta.
|
|
7257
|
+
version: "0.8.0-beta.17"
|
|
7258
7258
|
}, {
|
|
7259
7259
|
instructions: `${pc}\n\n${fc}`,
|
|
7260
7260
|
capabilities: { tasks: {
|
|
@@ -7319,10 +7319,10 @@ var xc = process.env.SHEETXL_WORKSPACE ?? process.cwd(), vc = function(e, t, n,
|
|
|
7319
7319
|
}, ...t.content ?? []]);
|
|
7320
7320
|
}
|
|
7321
7321
|
const a = await (async () => {
|
|
7322
|
-
const e = await
|
|
7322
|
+
const e = await $.getEvalState().catch(() => null);
|
|
7323
7323
|
if (!e || e === c) return null;
|
|
7324
7324
|
if (c = e, "grace" !== e && "stopped" !== e) return null;
|
|
7325
|
-
const t = (await
|
|
7325
|
+
const t = (await $.getDetails()).getEvalStopDate()?.toISOString().slice(0, 10);
|
|
7326
7326
|
return `⚠ This SheetXL build is past its evaluation period: ${"grace" === e ? `exports (xlsx, csv — every format but .sxl) are refused, and on ${t} it stops calculating and running scripts` : "it no longer calculates, runs scripts or exports"}. Saving as .sxl always works. Tell the user before you edit anything they will need to export. Fix: update — restart this server on the latest release (\`npx -y @sheetxl/mcp@latest\`, or update the SheetXL VS Code extension) — or set a license key (\`SHEETXL_LICENSE_KEY\`).`;
|
|
7327
7327
|
})();
|
|
7328
7328
|
return a && (t.content = [{
|
|
@@ -7573,7 +7573,7 @@ var xc = process.env.SHEETXL_WORKSPACE ?? process.cwd(), vc = function(e, t, n,
|
|
|
7573
7573
|
};
|
|
7574
7574
|
}({
|
|
7575
7575
|
surface: "mcp",
|
|
7576
|
-
license: () =>
|
|
7576
|
+
license: () => $.getDetails(),
|
|
7577
7577
|
serverCount: t ? Ft(t.workspace).filter(_t).length + 1 : void 0,
|
|
7578
7578
|
sessions: async () => (await e.list()).map((e) => ({
|
|
7579
7579
|
id: e.id,
|
|
@@ -7969,7 +7969,7 @@ var xc = process.env.SHEETXL_WORKSPACE ?? process.cwd(), vc = function(e, t, n,
|
|
|
7969
7969
|
return {
|
|
7970
7970
|
content: [{
|
|
7971
7971
|
type: "text",
|
|
7972
|
-
text: e instanceof
|
|
7972
|
+
text: e instanceof Bl ? `${e.message} Every other tool works as before; describe the range from the read tools instead.` : String(e)
|
|
7973
7973
|
}],
|
|
7974
7974
|
isError: !0
|
|
7975
7975
|
};
|